gematik_schemes.vzd.DirectoryAdministration.yaml Maven / Gradle / Ivy
openapi: 3.0.1
info:
title: I_Directory_Administration
description: REST Schnittstelle zur Pflege der Verzeichniseinträge.
Über diese Schnittstelle können Verzeichniseinträge inklusive Zertifikaten erzeugt, aktualisiert und gelöscht werden. Die Administration von Fachdaten erfolgt über Schnittstelle I_Directory_Application_Maintenance und wird durch die Fachanwendungen durchgeführt. Lesender Zugriff auf die Fachdaten ist mit Operation getDirectoryEntries in vorliegender Schnittstelle möglich.
version: 1.5.0
# Änderungen in Version 1.5.0
# - Attribut "owner" in "holder" umbenannt ("owner" ist in LDAP vordefiniert und kann deshalb nicht für den vorgesehenen Zweck genutzt werden)
# Änderungen in Version 1.4.0
# - Operation read_Directory_Entry: Einschränkung auf 100 Suchergebnisse wieder eingeführt
# - Operation read_Directory_Entry_for_Sync: Für die Datensynchronisation der Herausgeber mit dem VZD wird diese Suchabfrage ohne Limitierung auf 100 Suchergebnisse ergänzt. Die parallele Ausführung dieser Operation wird vom Server aus Performancegründen eingeschränkt.
# - Attribut "usage" in Datenstruktur "userCertificate": "enum" im Format gestrichen.
#
# Änderungen in Version 1.3.0
# - Die direkte Suche von Verzeichniseinträgen (baseDirectoryEntry) mit dem
# Suchparameter telematikID wird unterstützt.
# o telematikID im baseDirectoryEntry hinzugefügt und in
# add_Directory_Entry, read_Directory_Entry und modify_Directory_Entry ergänzt
# - Paging Parameter entfernt (für eigene Verzeichniseinträge und Verzeichniseinträge
# ohne owner wird die Begrenzung auf 100 Suchergebnisse aufgehoben)
# - Operation read_Directory_Entry: Suchparameter telematikID-SubStr ergänzt
# - Operation read_Directory_Entry: Suchparameter telematikID-SubStr ergänzt
# - Datenmodell: "baseDirectoryEntry"
# o Ländercode "countryCode" ergänzt und in Operationen hinzugefügt
# o Änderungsdatum "changeDateTime" ergänzt
#
# Änderungen in Version 1.2.2
# Übernahme der Änderungen aus f_r313_hotfix_5 (version 1.1.2)
# - /DirectoryEntries
# get - Response Fehlercode 400 gestrichen.
# Bei mehr als 100 gefundenen Einträgen werden nur 100
# gefundenen Einträge zurückgegeben (Response 200), falls kein Paging genutzt wird.
# - /DirectoryEntries/Certificates
# get - Response Fehlercode 400 gestrichen.
# Bei mehr als 100 gefundenen Einträgen werden nur 100
# gefundenen Einträge zurückgegeben (Response 200).
#
# Änderungen in Version 1.2.1
# - /DirectoryEntries
# read_Directory_Entry:
# Suchparameter "baseEntryOnly" ergänzt
# Änderungen in Version 1.2.0
# - /DirectoryEntries
# read_Directory_Entry:
# Suchparameter "owner" ergänzt
# Paging Parameter ergänzt
# - searchControlValue für Paging der Suchergebnisse ergänzt
# - /DirectoryEntries/{uid}/baseDirectoryEntries:
# modify_Directory_Entry: Fehlerkode 422 ergänzt (ungültiger owner im Request Parameter)
# - /DirectoryEntries/{uid}/Certificates/{certificateEntryID}:
# put & delete - Operationen gestrichen
# - schemas:
# baseDirectoryEntry:
# Attribute "owner" und "maxKOMLEadr" mit Beschreibung der Auswirkungen auf die Operationen hinzugefügt
# Änderungen in Version 1.1.1
# - /DirectoryEntries/Certificates
# get - UID ist kein Pflichtparameter mehr um die Suche mit der TelematikID zu ermöglichen
# - Texte der HTTP Fehlercodes angepasst
externalDocs:
description: Schnittstelle zur Pflege der Verzeichniseinträge
url: http://www.gematik.de
servers:
- url: https://to.be.defined/
tags:
- name: DirectoryEntry Administration
description: Pflege der Verzeichniseinträge (Basiseinträge)
- name: Certificate Administration
description: Pflege der Zertifikatseinträge
- name: DirectoryEntry Synchronization
description: Synchronisation der Verzeichniseinträge (Basiseinträge) mit dem eigenen Datenbestand
paths:
/DirectoryEntries:
post:
tags:
- DirectoryEntry Administration
summary: Einen Eintrag zum Verzeichnisdienst hinzufügen
operationId: add_Directory_Entry
requestBody:
description: Datensatz für den neuen Eintrag. Die Attribute müssen wie folgt belegt sein
dn.* Leer/nicht vorhanden (wird vom Verzeichnisdienst belegt)
givenName Nicht vorhanden (wird vom Verzeichnisdienst belegt)
sn Nicht vorhanden (wird vom Verzeichnisdienst belegt)
cn Nicht vorhanden (wird vom Verzeichnisdienst belegt)
displayName Kann optional belegt werden.
streetAddress Kann optional belegt werden.
postalCode Kann optional belegt werden.
countryCode Kann optional belegt werden.
Falls nicht belegt, ergänzt der VZD den Code für Deutschland (Defaultwert).
localityName Kann optional belegt werden.
stateOrProvinceName Kann optional belegt werden.
title Kann optional belegt werden.
organization Kann optional belegt werden.
otherName Kann optional belegt werden.
telematikID Kann optional belegt werden.
Das ist die telematikID in den Basisdaten (baseDirectoryEntry).
Wird diese telematikID und userCertificate bzw. die telematikID in userCertificate angegeben, dann müssen diese telematikIDs übereinstimmen.
Bei unterschiedlichen telematikID wird die Operation mit Fehlercode 422 abgelehnt.
specialization Kann optional belegt werden.
domainID Kann optional belegt werden.
holder Kann optional belegt werden (falls nicht belegt, dann vom VZD aus dem ID_Token entnommen).
maxKOMLEadr Kann optional belegt werden.
personalEntry Nicht vorhanden (wird vom Verzeichnisdienst belegt)
dataFromAuthority Nicht vorhanden (wird vom Verzeichnisdienst belegt)
userCertificates Kann optional belegt werden.
dn.uid Leer/nicht vorhanden (wird vom Verzeichnisdienst belegt)
dn.dc Leer/nicht vorhanden (wird vom Verzeichnisdienst belegt)
dn.ou Leer/nicht vorhanden (wird vom Verzeichnisdienst belegt)
dn.cn Leer/nicht vorhanden (wird vom Verzeichnisdienst belegt)
telematikID Kann optional belegt werden.
Wird telematikID und userCertificate angegeben, dann muss diese telematikID mit der telematikID im userCertificate übereinstimmen.
Bei unterschiedlichen telematikID wird die Operation mit Fehlercode 422 abgelehnt.
entryType Nicht vorhanden (wird vom Verzeichnisdienst belegt)
professionOID Nicht vorhanden (wird vom Verzeichnisdienst belegt)
usage Kann optional belegt werden.
userCertificate Kann optional belegt werden (Format DER, Base64 kodiert)
description Kann optional belegt werden.
Entsprechend gemSpec_VZD wird ein Teil der Attribute durch den Verzeichnisdienst automatisch mit Werten aus dem Zertifikat gefüllt. Wenn in dieser Operation Attribute - für die dies erlaubt ist - mit einem Wert belegt werden, wird dieser Wert im Verzeichniseintrag gespeichert (auch wenn der Wert durch den Verzeichnisdienst aus dem Zertifikat entnommen werden kann).
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDirectoryEntry'
required: true
responses:
201:
description: Created
# Der Verzeichniseintrag wurde angelegt. Zurückgegeben wird der distinguishedName des erzeugten Eintrags.
content:
application/json:
schema:
$ref: '#/components/schemas/distinguishedName'
401:
description: Unauthorized
# Der WWW-Authenticate Header im Response muss auf OAuth gesetzt werden.
content: {}
403:
description: Forbidden
content: {}
405:
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
422:
description: Unprocessable Entity
# Z.B. Wert aus dem Request Attribut "holder" nicht gültig
# Bei unterschiedlichen telematikIDs (Parameter telematikID und Wert im userCertificate) wird die Operation mit Fehlercode 422 abgelehnt.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
get:
tags:
- DirectoryEntry Administration
summary: Gesamten Verzeichniseintrag lesen
description: Liefert alle zum Filter passenden Verzeichniseinträge (maximal 100 Einträge). Die angegebenen Parameter werden mit logischen UND verknüpft.
operationId: read_Directory_Entry
parameters:
- name: uid
in: query
description: ID von dem Verzeichniseintrag (distinguishedName.uid)
schema:
type: string
- name: givenName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs givenName.
schema:
type: string
- name: sn
in: query
description: Erlaubt die Suche mit Hilfe des Attributs sn.
schema:
type: string
- name: cn
in: query
description: Erlaubt die Suche mit Hilfe des Attributs cn.
schema:
type: string
- name: displayName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs displayName.
schema:
type: string
- name: streetAddress
in: query
description: Erlaubt die Suche mit Hilfe des Attributs streetAddress.
schema:
type: string
- name: postalCode
in: query
description: Erlaubt die Suche mit Hilfe des Attributs postalCode.
schema:
type: string
- name: countryCode
in: query
description: Erlaubt die Suche mit Hilfe des Attributs countryCode.
schema:
type: string
- name: localityName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs localityName.
schema:
type: string
- name: stateOrProvinceName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs stateOrProvinceName.
schema:
type: string
- name: title
in: query
description: Erlaubt die Suche mit Hilfe des Attributs title.
schema:
type: string
- name: organization
in: query
description: Erlaubt die Suche mit Hilfe des Attributs organization.
schema:
type: string
- name: otherName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs otherName.
schema:
type: string
- name: telematikID
in: query
description: Erlaubt die Suche mit Hilfe des Attributs telematikID (die telematikID in den Basisdaten).
schema:
type: string
- name: telematikID-SubStr
in: query
description: Erlaubt die Suche nach einem Substring am Anfang der telematikID (die telematikID in den Basisdaten).
Entspricht der LDAP Filters Substring Assertion vom Typ "subInitial Component".
schema:
type: string
- name: specialization
in: query
description: Erlaubt die Suche mit Hilfe des Attributs specialization.
Der Verzeichniseintrag wird selektiert, wenn die angegebene domainID im Attribut domainID (array) des Verzeichniseintrags enthalten ist.
schema:
type: string
- name: domainID
in: query
description: Erlaubt die Suche mit Hilfe des Attributs domainID.
Der Verzeichniseintrag wird selektiert, wenn die angegebene domainID im Attribut domainID (array) des Verzeichniseintrags enthalten ist.
schema:
type: string
- name: holder
in: query
description: Erlaubt die Suche mit Hilfe des Attributs holder.
Der Verzeichniseintrag wird selektiert, wenn der angegebene holder im Attribut holder (array) des Verzeichniseintrags enthalten ist.
Wenn der Parameter mit dem eigenen Wert des Clients belegt wird, werden alle gefundenen Einträge zurückgegeben (maximal 100 Einträge).
Zur Suche nach Einträge ohne holder ist der Parameter mit dem einem leeren String "" zu belegen. Auch in diesem Fall werden alle gefundenen Einträge zurückgegeben (maximal 100 Einträge).
schema:
type: string
- name: personalEntry
in: query
description: Erlaubt die Suche mit Hilfe des Attributs personalEntry.
schema:
type: string
- name: dataFromAuthority
in: query
description: Erlaubt die Suche mit Hilfe des Attributs dataFromAuthority.
schema:
type: string
- name: baseEntryOnly
in: query
description: Mit baseEntryOnly = "true" wird nur der Basiseintrag (baseDirectoryEntry) im Response zurückgegeben. Falls nicht angegeben oder mit "false" belegt, wird der gesamte Verzeichniseintrag mit Zertifikaten und Fachdaten im Response zurückgegeben.
schema:
type: boolean
example: true
responses:
200:
description: OK
# Es werden alle zu dem Filter Parametern passenden Verzeichniseinträge - inklusive Zertifikaten und Fachdaten - zurückgegeben.
# Bei mehr als 100 gefundenen Einträgen nur 100 gefundenen Einträge zurückgegeben.
content:
application/json:
schema:
$ref: '#/components/schemas/DirectoryEntries'
401:
description: Unauthorized
# Der WWW-Authenticate Header im Response wird auf OAuth gesetzt.
content: {}
403:
description: Forbidden
content: {}
404:
description: Not Found
content: {}
/DirectoryEntriesSync:
get:
tags:
- DirectoryEntry Synchronization
summary: Synchronisation der Verzeichniseinträge zwischen VZD und Herausgeber
description: Liefert - analog zu read_Directory_Entry - alle zum Filter passenden Verzeichniseinträge. Im Unterschied zu read_Directory_Entry wird die Limitierung auf 100 Suchergebnisse aufgehoben. Die parallele Ausführung dieser Operation wird vom Server aus Performancegründen eingeschränkt.
Diese Operation soll nur genutzt werden, wenn mehr als 100 Suchergebnisse benötigt werden. Für alle anderen Suchanfragen soll Operation read_Directory_Entry genutzt werden.
operationId: read_Directory_Entry_for_Sync
parameters:
- name: uid
in: query
description: ID von dem Verzeichniseintrag (distinguishedName.uid)
schema:
type: string
- name: givenName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs givenName.
schema:
type: string
- name: sn
in: query
description: Erlaubt die Suche mit Hilfe des Attributs sn.
schema:
type: string
- name: cn
in: query
description: Erlaubt die Suche mit Hilfe des Attributs cn.
schema:
type: string
- name: displayName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs displayName.
schema:
type: string
- name: streetAddress
in: query
description: Erlaubt die Suche mit Hilfe des Attributs streetAddress.
schema:
type: string
- name: postalCode
in: query
description: Erlaubt die Suche mit Hilfe des Attributs postalCode.
schema:
type: string
- name: countryCode
in: query
description: Erlaubt die Suche mit Hilfe des Attributs countryCode.
schema:
type: string
- name: localityName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs localityName.
schema:
type: string
- name: stateOrProvinceName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs stateOrProvinceName.
schema:
type: string
- name: title
in: query
description: Erlaubt die Suche mit Hilfe des Attributs title.
schema:
type: string
- name: organization
in: query
description: Erlaubt die Suche mit Hilfe des Attributs organization.
schema:
type: string
- name: otherName
in: query
description: Erlaubt die Suche mit Hilfe des Attributs otherName.
schema:
type: string
- name: telematikID
in: query
description: Erlaubt die Suche mit Hilfe des Attributs telematikID (die telematikID in den Basisdaten).
schema:
type: string
- name: telematikID-SubStr
in: query
description: Erlaubt die Suche nach einem Substring am Anfang der telematikID (die telematikID in den Basisdaten).
Entspricht der LDAP Filters Substring Assertion vom Typ "subInitial Component".
schema:
type: string
- name: specialization
in: query
description: Erlaubt die Suche mit Hilfe des Attributs specialization.
Der Verzeichniseintrag wird selektiert, wenn die angegebene domainID im Attribut domainID (array) des Verzeichniseintrags enthalten ist.
schema:
type: string
- name: domainID
in: query
description: Erlaubt die Suche mit Hilfe des Attributs domainID.
Der Verzeichniseintrag wird selektiert, wenn die angegebene domainID im Attribut domainID (array) des Verzeichniseintrags enthalten ist.
schema:
type: string
- name: holder
in: query
description: Erlaubt die Suche mit Hilfe des Attributs holder.
Der Verzeichniseintrag wird selektiert, wenn der angegebene holder im Attribut holder (array) des Verzeichniseintrags enthalten ist.
Wenn der Parameter mit dem eigenen Wert des Clients belegt wird, werden alle gefundenen Einträge zurückgegeben (für eigene Einträge gilt das Limit von 100 Ergebnissen nicht).
Zur Suche nach Einträge ohne holder ist der Parameter mit dem einem leeren String "" zu belegen. Auch in diesem Fall werden alle gefundenen Einträge zurückgegeben (für Einträge ohne holder gilt das Limit von 100 Ergebnissen nicht).
schema:
type: string
- name: personalEntry
in: query
description: Erlaubt die Suche mit Hilfe des Attributs personalEntry.
schema:
type: string
- name: dataFromAuthority
in: query
description: Erlaubt die Suche mit Hilfe des Attributs dataFromAuthority.
schema:
type: string
- name: baseEntryOnly
in: query
description: Mit baseEntryOnly = "true" wird nur der Basiseintrag (baseDirectoryEntry) im Response zurückgegeben. Falls nicht angegeben oder mit "false" belegt, wird der gesamte Verzeichniseintrag mit Zertifikaten und Fachdaten im Response zurückgegeben.
schema:
type: boolean
example: true
responses:
200:
description: OK
# Es werden alle zu dem Filter Parametern passenden Verzeichniseinträge - inklusive Zertifikaten und Fachdaten - zurückgegeben.
# Bei mehr als 100 gefundenen Einträgen nur 100 gefundenen Einträge zurückgegeben.
# Wenn der Suchparameter "holder" mit dem eigenen Wert des Clients belegt wird, werden alle gefundenen Einträge zurückgegeben (für eigene Einträge gilt das Limit von 100 Ergebnissen nicht).
content:
application/json:
schema:
$ref: '#/components/schemas/DirectoryEntries'
401:
description: Unauthorized
# Der WWW-Authenticate Header im Response wird auf OAuth gesetzt.
content: {}
403:
description: Forbidden
content: {}
404:
description: Not Found
content: {}
503:
description: Service Unavailable
# Der Server schränkt die parallele Nutzung dieser Operation read_Directory_Entry_WL ein. Der Request kann nach einer angemessenen Zeitspanne wiederholt werden.
content: {}
/DirectoryEntries/{uid}/baseDirectoryEntries:
put:
tags:
- DirectoryEntry Administration
summary: Der Verzeichniseintrag (ohne Zertifikate und Fachdaten) wird mit den übergebenen Daten aktualisiert.
operationId: modify_Directory_Entry
parameters:
- name: uid
in: path
description: ID von dem Verzeichniseintrag
required: true
schema:
type: string
requestBody:
description: Datensatz für die Aktualisierung des Eintrags
Die Attribute müssen wie folgt belegt sein
dn.* Nicht vorhanden (Adressierung erfolgt über uid in Path).
givenName Nicht vorhanden.
sn Nicht vorhanden.
cn Nicht vorhanden.
displayName Kann optional belegt werden.
streetAddress Kann optional belegt werden.
postalCode Kann optional belegt werden.
countryCode Kann optional belegt werden.
localityName Kann optional belegt werden.
stateOrProvinceName Kann optional belegt werden.
title Kann optional belegt werden.
organization Kann optional belegt werden.
otherName Nicht vorhanden.
telematikID Kann optional belegt werden.
Das ist die telematikID in den Basisdaten (baseDirectoryEntry).
Sind Zertifikateseinträge (userCertificate) vorhanden, dann müssen die telematikIDs übereinstimmen.
Bei unterschiedlichen telematikID wird die Operation mit Fehlercode 422 abgelehnt.
specialization Kann optional belegt werden.
domainID Kann optional belegt werden.
holder Kann optional belegt werden.
maxKOMLEadr Kann optional belegt werden.
personalEntry Nicht vorhanden.
dataFromAuthority Nicht vorhanden
content:
application/json:
schema:
$ref: '#/components/schemas/baseDirectoryEntry'
required: true
responses:
200:
description: OK
# Der Verzeichniseintrag wurde aktualisiert.
content:
application/json:
schema:
$ref: '#/components/schemas/distinguishedName'
400:
description: Bad Request
# Invalid ID supplied
content: {}
401:
description: Unauthorized
# Der WWW-Authenticate Header im Response muss auf OAuth gesetzt werden.
content: {}
403:
description: Forbidden
content: {}
404:
description: Not Found
content: {}
405:
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
422:
description: Unprocessable Entity
# Z.B. Wert aus dem Request Attribut "holder" nicht gültig
# Bei unterschiedlichen telematikIDs (Parameter telematikID und Wert im userCertificate) wird die Operation mit Fehlercode 422 abgelehnt.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/DirectoryEntries/{uid}:
delete:
tags:
- DirectoryEntry Administration
summary: Gesamten Verzeichniseintrag löschen
operationId: delete_Directory_Entry
parameters:
- name: uid
in: path
description: ID von dem zu löschenden Verzeichniseintrag
Gelöscht werden der Basis Verzeichniseintrag sowie alle dazugehörenden Zertifikate und Fachdaten.
required: true
schema:
type: string
responses:
200:
description: OK
content: {}
400:
description: Bad Request
# Invalid ID supplied
content: {}
401:
description: Unauthorized
# Der WWW-Authenticate Header im Response muss auf OAuth gesetzt werden.
content: {}
403:
description: Forbidden
content: {}
404:
description: Not Found
content: {}
/DirectoryEntries/{uid}/Certificates:
post:
tags:
- Certificate Administration
summary: Der Zertifikatseintrag wird im Verzeichnisdienst hinzugefügt und ist logisch über dn.uid mit dem übergeordneten Verzeichniseintrag verknüpft.
operationId: add_Directory_Entry_Certificate
parameters:
- name: uid
in: path
description: ID (dn.uid) vom übergeordneten Verzeichniseintrag
required: true
schema:
type: string
requestBody:
description: Datensatz für die Erzeugung des Eintrags
Die Attribute müssen wie folgt belegt sein
Attribut Wert
-------------------------------------------
dn.* Nicht vorhanden (Adressierung erfolgt über uid in Path)
telematikID Kann optional belegt werden.
Wird telematikID angegeben, dann muss diese telematikID mit der telematikID im userCertificate übereinstimmen.
Die telematikID muss mit der telematikID in den Basisdaten (baseDirectoryEntry) übereinstimmen (falls dort angegeben).
Falls die telematikID in den Basisdaten (baseDirectoryEntry) leer ist, muss sie auf den Wert aus dem Zertifikat bzw. dem hier angegebenen Wert gesetzt werden.
Bei unterschiedlichen telematikIDs wird die Operation mit Fehlercode 422 abgelehnt.
entryType Nicht vorhanden (wird vom Verzeichnisdienst belegt)
professionOID Nicht vorhanden (wird vom Verzeichnisdienst belegt)
usage Kann optional belegt werden
userCertificate Muss vorhanden sein
description Kann optional belegt werden
content:
application/json:
schema:
$ref: '#/components/schemas/userCertificate'
required: true
responses:
201:
description: Created
# Der Zertifikatseintrag wurde hinzugefügt. Zurückgegeben wird der distinguishedName des erzeugten Eintrags.
content:
application/json:
schema:
$ref: '#/components/schemas/distinguishedName'
401:
description: Unauthorized
# Der WWW-Authenticate Header im Response muss auf OAuth gesetzt werden.
content: {}
403:
description: Forbidden
content: {}
405:
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
422:
description: Unprocessable Entity
# Bei unterschiedlichen telematikIDs (Parameter telematikID und Wert im userCertificate) wird die Operation mit Fehlercode 422 abgelehnt.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/DirectoryEntries/Certificates:
get:
tags:
- Certificate Administration
summary: Zertifikat lesen
description: Liefert alle Zertifikate, die dem Filter (siehe 'parameters') entsprechen.
operationId: read_Directory_Certificates
parameters:
- name: uid
in: query
description: ID vom übergeordneten Verzeichniseintrag
schema:
type: string
- name: certificateEntryID
in: query
description: ID von dem Zertifikat (dn.cn vom Zertifikatseintrag)
Wenn angegeben wird das adressierte (certificateEntryID) Zertifikat geliefert.
Wenn nicht angegeben werden alle Zertifikate des übergeordneten Verzeichniseintrags geliefert.
schema:
type: string
- name: entryType
in: query
description: Erlaubt die Suche mit Hilfe des Attributs entryType.
schema:
type: string
- name: telematikID
in: query
description: telematikID von dem Zertifikat
Erlaubt die Suche nach Zertifikatseinträgen einer telematikID.
schema:
type: string
- name: professionOID
in: query
description: Erlaubt die Suche mit Hilfe des Attributs professionOID.
Der Verzeichniseintrag wird selektiert, wenn die angegebene professionOID im Attribut professionOID (array) des Zertifikatseintrags enthalten ist.
schema:
type: string
- name: usage
in: query
description: Erlaubt die Suche mit Hilfe des Attributs usage.
Der Verzeichniseintrag wird selektiert, wenn die angegebene usage im Attribut usage (array) des Zertifikatseintrags enthalten ist.
schema:
type: string
responses:
200:
description: OK
# Es werden alle gefundenen Zertifikatseinträge zurückgegeben.
# Bei mehr als 100 gefundenen Einträgen nur 100 gefundenen Einträge zurückgegeben.
content:
application/json:
schema:
$ref: '#/components/schemas/userCertificates'
401:
description: Unauthorized
# Der WWW-Authenticate Header im Response muss auf OAuth gesetzt werden.
content: {}
403:
description: Forbidden
content: {}
404:
description: Not Found
# Certificate not found
content: {}
components:
schemas:
userCertificate:
description: Jeder Verzeichniseintrag muss mindestens ein Zertifikat enthalten.
required:
- dn
type: object
properties:
dn:
$ref: '#/components/schemas/distinguishedName'
entryType:
type: string
description: 'Eintragstyp Wird vom VZD anhand der in dem Zertifikat
enthaltenen OID (Extension Admission, Attribut ProfessionOID) und der
Spalte Eintragstyp in Tab_VZD_Mapping_Eintragstyp_und_ProfessionOID automatisch
eingetragen. Siehe auch [gemSpecOID]# Tab_PKI_402 und Tab_PKI_403'
readOnly: true
telematikID:
type: string
description: 'Wird beim Anlegen des Eintrags vom VZD aus dem Zertifikat übernommen (Feld registrationNumber der Extension Admission).
Falls der Basiseintrag (baseDirectoryEntry) ohne Zertifikat angelegt wird, kann in Operation add_Directory_Entry die telematikID angegeben werden.
Damit ist der Verzeichniseintrag bereits über die telematikID auffindbar.'
professionOID:
maxItems: 100
minItems: 0
type: array
readOnly: true
items:
type: string
description: 'Profession OID / Wird vom VZD anhand der in
den Zertifikaten enthaltenen OIDs (Extension Admission, Attribut ProfessionOID)
und dem Mapping in ab_VZD_Mapping_Eintragstyp_und_ProfessionOID automatisch
eingetragen. Siehe [gemSpecOID]# Tab_PKI_402 und Tab_PKI_403. / kann
mehrfach vorkommen (0..100)'
usage:
maxItems: 100
minItems: 0
type: array
description: 'Nutzungskennzeichnung kann pro Zertifikat mehrfach
vergeben werden. Vorgegebener Wertebereich [KOM-LE, ePA].
Obligatorisch für LEI und KTR mit vorgegebenem Wert usage=ePA'
items:
type: string
enum:
- KOM-LE
- ePA
userCertificate:
type: string
description: 'Zertifikat im DER Format. Base64 kodiert.
Die pflegende Stelle erhält das Zertifikat vom TSP oder falls das nicht möglich ist wird ein Ersatzverfahren abgestimmt.'
description:
type: string
description: Dieses Attribut ermöglicht das Zertifikat zu beschreiben, um
die Administration des VZD Eintrags zu vereinfachen.
userCertificates:
type: array
items:
$ref: '#/components/schemas/userCertificate'
Fachdaten:
required:
- dn
type: object
properties:
dn:
$ref: '#/components/schemas/distinguishedName'
FAD1:
maxItems: 50
minItems: 0
type: array
items:
$ref: '#/components/schemas/FAD1'
FAD1:
required:
- dn
type: object
properties:
dn:
$ref: '#/components/schemas/distinguishedName'
mail:
type: array
items:
type: string
description: 'E-Mail-Adresse'
readOnly: true
distinguishedName:
required:
- uid
readOnly: true
type: object
properties:
uid:
type: string
description: 'entryID: Name/ID, den den Eintrag eindeutig identifiziert. Hat für den Verzeichnisdienst_Eintrag, Certificate, KOM-LE_Fachdaten und FAD1 eines Verzeichniseintrags den gleichen Wert.'
dc:
type: array
items:
type: string
description: Domain Component
ou:
type: array
items:
type: string
description: Organizational Unit
cn:
type: string
description: Common Name
baseDirectoryEntry:
required:
- cn
- dn
type: object
properties:
dn:
$ref: '#/components/schemas/distinguishedName'
givenName:
type: string
description: 'HBA: Vorname, obligatorisch, wird aus dem Zertifikat
übernommen / SMC-B: nicht verwendet'
readOnly: true
example: Vorname
sn:
type: string
description: 'HBA: Name, obligatorisch, wird aus dem Zertifikat
übernommen / SMC-B: nicht verwendet'
readOnly: true
example: Nachname
cn:
type: string
description: 'HBA: Vorname und Nachname / SMC-B: Bezeichner:
Name Wird vom VZD aus dem Zertifikatsattribut commonName übernommen.'
readOnly: true
example: Vorname Nachname
displayName:
type: string
description: 'Anzeigename, kann geändert werden.
Dieses Attribut wird genutzt um den Namen der Organisation gegenüber dem Anwender darzustellen (Verwendung als Filter-Attribut um die Suche einzuschränken und bei der Darstellung des Ergebnisses).
Der Wert wird von der pflegenden Stelle festgelegt.
Konvention für HBA Einträge: Name, Vorname'
example: Name, Vorname
streetAddress:
type: string
description: 'Straße und Hausnummer
Der Wert wird von der pflegenden Stelle festgelegt'
example: Friedrichstraße 136
postalCode:
type: string
description: 'Postleitzahl
Der Wert wird von der pflegenden Stelle festgelegt'
example: 10117
countryCode:
type: string
maxLength: 2
description: 'Ländercode
Entsprechend ISO-3166-1 ALPHA-2'
# Falls das Attribut beim Anlegen des Datensatzes nicht beölegt wird, ergänzt der VZD den Code für Deutschland (Defaultwert).
example: DE
localityName:
type: string
description: 'Ort
Der Wert wird von der pflegenden Stelle festgelegt'
example: Berlin
stateOrProvinceName:
type: string
description: 'Bundesland
Der Wert wird von der pflegenden Stelle festgelegt'
example: Berlin
title:
type: string
description: 'HBA: Titel, optional / SMC-B: nicht verwendet'
organization:
type: string
example: 12345670
description: 'Organisation
Der Wert wird von der pflegenden Stelle festgelegt'
otherName:
type: string
description: 'Anderer Name.
Wird vom VZD aus dem Zertifikatsattribut otherName übernommen.'
telematikID:
type: string
description: 'Wird beim Anlegen des Eintrags vom VZD aus dem Zertifikat übernommen (Feld registrationNumber der Extension Admission).
Falls der Basiseintrag (baseDirectoryEntry) ohne Zertifikat angelegt wird, kann in Operation add_Directory_Entry die telematikID angegeben werden.
Damit ist der Verzeichniseintrag bereits über die telematikID im baseDirectoryEntry auffindbar. Diese telematikID muss mit der telematikID aus dem Zertifikatseintrag (userCertificate) übereinstimmen. Simmten die telematikIDs nicht überein, wird die Operation mit Fehlercode 422 abgelehnt'
specialization:
maxItems: 100
type: array
description: 'Fachgebiet
Der Wert wird von der pflegenden Stelle festgelegt'
items:
type: string
domainID:
maxItems: 100
type: array
description: 'Ärzte-> Betriebsstättennummer
Der Wert wird aus dem Zertifikat übernommen (Attribut organizationName)'
items:
type: string
example: 345678975
holder:
maxItems: 100
type: array
description: Identifiziert den Eigentümer dieses Verzeichniseintrags, der Änderungen an ihm vornehmen darf.
Hat keinen Einfluss auf Fachdaten und Zertifikatsdaten.
Beim Anlegen eines neuen Verzeichniseintrags (add_Directory_Entry)
- Ist im add_Directory_Entry Request das Attribut "holder" nicht vorhanden oder enthält keine Werte
o Wird vom VZD aus dem ID_TOKEN claim scope der Wert entnommen und als "holder" in dieses Attribut eingetragen.
- Ist im add_Directory_Entry Request das Attribut "holder" vorhanden und mit Inhalten gefüllt
o Übernimmt der VZD die Werte aus dem Request und trägt sie - nach Prüfung ihrer Gültigkeit - in den Verzeuichniseintrag ein.
Ist ein Wert aus dem Request nicht gültig, weist der VZD die Operation mit HTTP-Status-Code 422 ab.
Beim Ändern eines neuen Verzeichniseintrags (modify_Directory_Entry)
- Ist im modify_Directory_Entry Request das Attribut "holder" nicht vorhanden oder enthält keine Werte
o Die Werte im aktuellen "holder" Attribut des Verzeichniseintrags bleiben erhalten.
- Ist im add_Directory_Entry Request das Attribut "holder" vorhanden und mit Inhalten gefüllt
o Übernimmt der VZD die Werte aus dem Request und trägt sie - nach Prüfung ihrer Gültigkeit - in den Verzeuichniseintrag ein.
Ist ein Wert aus dem Request nicht gültig, weist der VZD die Operation mit HTTP-Status-Code 422 ab.
items:
type: string
example: KartenHerausgeberABC
maxKOMLEadr:
type: string
description: Maximale Anzahl von mail Adressen in den KOM-LE Fachdaten. Falls kein Wert eingetragen wurde, können beliebig viele mail Adressen in den KOM-LE Fachdaten eingetragen werden. Falls ein Wert eingetragen wurde, können maximal so viele mail Adressen in den KOM-LE Fachdaten eingetragen werden.
example: 1
personalEntry:
type: boolean
description: Wird vom VZD eingetragen / Wert == TRUE, wenn alle Zertifikate
den entryType 1 haben (Berufsgruppe), Wert == FALSE sonst
readOnly: true
example: true
dataFromAuthority:
type: boolean
description: Wird vom VZD eingetragen / Wert == TRUE, wenn der Verzeichnisdienst_Eintrag von dem Kartenherausgeber geschrieben wurde, Wert == FALSE sonst
readOnly: true
example: true
changeDateTime:
type: string
format: date-time
description: Der VZD setzt dieses Attribut bei jeder Schreiboperation für den Datensatz (Basisdaten) auf die aktuelle Zeit. Format entsprechend RFC 3339, section 5.6.
readOnly: true
example: "2017-07-21T17:32:28Z"
DirectoryEntry:
type: object
properties:
DirectoryEntryBase:
$ref: '#/components/schemas/baseDirectoryEntry'
userCertificates:
maxItems: 50
minItems: 0
type: array
items:
$ref: '#/components/schemas/userCertificate'
Fachdaten:
maxItems: 50
minItems: 0
type: array
items:
$ref: '#/components/schemas/Fachdaten'
CreateDirectoryEntry:
type: object
properties:
DirectoryEntryBase:
$ref: '#/components/schemas/baseDirectoryEntry'
userCertificates:
maxItems: 50
minItems: 0
type: array
items:
$ref: '#/components/schemas/userCertificate'
DirectoryEntries:
type: array
items:
$ref: '#/components/schemas/DirectoryEntry'
Error:
type: object
maxItems: 50
minItems: 0
properties:
attributeName:
description: Name des Attributs, in dem ein Fehler erkannt wurde
type: string
attributeError:
description: Beschreibung des erkannten Fehlers
type: string
securitySchemes:
OAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://to.be.defined/oauth/token
refreshUrl: https://to.be.defined/oauth/refreshToken
scopes:
VZD:DirectoryAdministration: I_Directory_Administration Client Scope
Als Clients dieser Schnittstelle sind nur Systeme der TI Kartenherausgeber und von ihnen beauftragte Organisationen (z.B. TSPs) zulässig.
Sie dürfen alle Operationen zur Administration der Verzeichniseinträge nutzen.
Das AccessToken enthält im "sub" claim den Identifier des Clients, der auf die Einträge zugreift. Dieser Identifier wird im Log abgelegt, welcher die Zugriffe über diese Schnittstelle protokolliert.
security:
- OAuth2:
- VZD:DirectoryAdministration
© 2015 - 2025 Weber Informatics LLC | Privacy Policy