- Einführung
- Installation
- Erste Schritte
- Konfiguration
- Erste Schritte
- Übergreifende Befehle
vzd-cli admin: Directory Administrationvzd-cli admin vaultvzd-cli admin statusvzd-cli admin <tu|ru|pu> loginvzd-cli admin <tu|ru|pu> login-credvzd-cli admin <tu|ru|pu> tokenvzd-cli admin <tu|ru|pu> searchvzd-cli admin <tu|ru|pu> show <telematikID>vzd-cli admin <tu|ru|pu> listvzd-cli admin <tu|ru|pu> templatevzd-cli admin <tu|ru|pu> add-basevzd-cli admin <tu|ru|pu> load-basevzd-cli admin <tu|ru|pu> modify-basevzd-cli admin <tu|ru|pu> modify-base-attrvzd-cli admin <tu|ru|pu> deletevzd-cli admin cert-infovzd-cli admin <tu|ru|pu> list-certvzd-cli admin <tu|ru|pu> add-certvzd-cli admin <tu|ru|pu> clear-certvzd-cli admin <tu|ru|pu> save-certvzd-cli admin <tu|ru|pu> delete-certvzd-cli admin <tu|ru|pu> dump createvzd-cli admin <tu|ru|pu> dump ocspvzd-cli admin <tu|ru|pu> logvzd-cli admin <tu|ru|pu> activatevzd-cli admin <tu|ru|pu> deactivate
vzd-cli apo: ApoVZD APIvzd-cli gui: Directory GUI- (Neu)
vzd-cli fhir: FHIR Directory APIs - License
- Additional Notes and Disclaimer from gematik GmbH
vzd-cli wurde in Vorbereitung der Migration des gematik Verzeichnisdienstes (VZD) von LDAP nach FHIR entwickelt. Über ein modernes CLI (Command Line Interface) können neue und alte Schnittstellen des VZD genutzt werden.
Seit version 2.1 bittet vzd-cli eine simple GUI.
Die neueste Version von vzd-cli herunterladen.
Für die Ausführung des vzd-cli soll die PATH Variable um den Pfad vzd-cli-<VERSION>/bin erweitert werden.
Sobald der Befehl vzd-cli ausgeführt werden kann sind wir start klar:
$ vzd-cli
Usage: vzd-cli [OPTIONS] COMMAND [ARGS]...
Options:
-v Display log, use -vv for even more details
--version Show the version and exit
-h, --help Show this message and exit
Commands:
config Manage configuration
update Updates this software
login Logins into all configured APIs
admin CLI for DirectoryAdministration API
fhir CLI for FHIR Directory
apo CLI for ApoVZD API
gui Starts HTTP Server with GUI
pers Process gematik SMC-B/HBA Exports
generate-completion Generate a tab-complete script for the given shellAufbau des vzd-cli folgt aktuellen Best-Practices analog z.B. zu Docker.
Für alle Befehle (Commands) und Unter-Befehle (Subcommands) kann man mittels --help Option eine abschließende Liste aller Optionen und Argumente anzeigen lassen.
vzd-cli --help
vzd-cli config --help
vzd-cli config get --help
vzd-cli admin --help
vzd-cli admin ru --helpDie Directory APIs werden über HTTPS erreicht. Falls für die Verbindung ein HTTP-Proxy erforderlich ist, muss es wie folgt konfiguriert werden:
# Beispiel Proxy (http://PROXY_HOST:PROXY_PORT)
vzd-cli config set httpProxy.proxyURL http://192.168.0.1:8080
vzd-cli config set httpProxy.enabled truevzd-cli ermöglicht u.a. die Nutzung folgender APIs:
-
Directory Admin API
-
Apo API (ApoVZD)
-
FHIR FDV Search API
-
FHIR Search API (nur mit einem speziellen Token, s. https://directory-beta.ccs.gematik.solutions)
Für die Nutzung dieser APIs sind jeweils entsprechende Geheimnisse bzw. Credentials erforderlich. Diese werden von der gematik den bereichtigten Organistionen bereitgestellt.
Directory Admin API benutzt für die Authentisierung das Oauth2 Client Credentials Flow.
Um hierfür erforderlichen Credentials angemessen sicher aufbewahren zu können, stellt vzd-cli eine Vault (Tresor) Funktion bereit.
Mithilfe der Vault werden alle Client IDs und Client Secrets verschlüsselt gespeichert.
Um Vault aufmachen und darin enthaltenen Credentials nutzen zu können, wird der Nutzer aufgefordert einen Vault-Password zu vergeben.
Dieser Password funktioniert analog zu den privaten Passwörtern bei den Password-Managern (z.B. Bitwarden, LastPass, 1Password).
Die Vault Implementierung befinden sich in der Datei Vault.kt und verwendet von NIST emfohlene Verschlüsselung.
Falls das Speichern der Credentials nicht erwünscht ist, kann die Anmeldung direkt mit Client ID und Client Secret erfolgen, s. vzd-cli admin login-cred.
Zusätzlich kann man einen vorhanden Token direkt setzen s. vzd-cli admin <tu|ru|pu> token.
# Vault zurücksetzen
vzd-cli admin vault purge
# Secret für die Referenzumgebung speichern
# es folgt eine Vault Passwortabfrage
vzd-cli admin vault store -e ru -c <CLIEND_ID> -s <CLIENT_SECRET>
# Secret für die Produktivumgebung speichern
# es folgt eine Vault Passwortabfrage
vzd-cli admin vault store -e pu -c <CLIEND_ID> -s <CLIENT_SECRET>Vault Password kann alternativ über die Umgebungsvariable VAULT_PASSWORD (empfohlen) oder über --password Parameter angegeben werden (nicht empfohlen).
Zugriff auf Apo API (ApoVZD) wird mittels API-KEYs geschützt. Die API-KEYs werden durch die gematik an die berechtigte Anwendungen vergeben.
# API Key für die Testinstanz
vzd-cli apo config set apiKeys.test <API_KEY_TEST>
# API Key für die Produktivinstanz
vzd-cli apo config set apiKeys.prod <API_KEY_PROD>Zugriff auf FHIR FDV Search API wird mittels OAuth2 Client Credentials Flow geschützt. Die berechtige Dienstanbieter erhalten die Client ID und Client Secret von der gematik.
# Secret für die Referenzumgebung speichern
# es folgt eine Vault Passwortabfrage für persönliche Vault
vzd-cli fhir fdv-vault store -e ru -c <CLIEND_ID> -s <CLIENT_SECRET>
# Secret für die Produktivumgebung speichern
# es folgt eine Vault Passwortabfrage für persönliche Vault
vzd-cli fhir fdv-vault store -e pu -c <CLIEND_ID> -s <CLIENT_SECRET>Befor die Directory Admin API genutzt werden kann, muss eine Anmeldung erfolgen. Die Anmeldung muss alle 6 Stunden wiederholt werden.
# Anmelden in die Referenzumgebung (ru)
# es folgt eine Vault-Passwortabfrage
vzd-cli login ru
# Anmelden in die Referenzumgebung (pu)
# es folgt eine Vault-Passwortabfrage
vzd-cli login puFür vollautomatisierte Nutzung des vzd-cli, auch bei der Anmeldung, wird das setzten der Umgebungsvariable VAULT_PASSWORD empfohlen.
Dabei soll die Umgebungsvarianle den während der Konfiguration angegeben Vault Passwort enthalten.
ru)vzd-cli admin ru search Müllerpu)vzd-cli admin pu search Berlinru)vzd-cli admin ru search Müller Berlinru)vzd-cli admin ru show 1-SMC-B-Testkarte-883110000117729pu)vzd-cli fhir pu fdv search healthcare-service -t <TelematikID>
vzd-cli fhir pu fdv search practitioner-role -t <TelematikID>
# oder in Kurzform
vzd-cli fhir pu fdv search hs -t <TelematikID>
vzd-cli fhir pu fdv search pr -t <TelematikID>Befehle für Konfiguration des vzd-cli. Folgende Konfigurationsparameter können geändert werden (s. vzd-cli config set --help)
-
httpProxy.enabled- wenntrue, wird Proxy-Server bei allen Anfragen genutzt. Wennfalsewerden HTTP-Requests direkt ohne Proxy durchgeführt -
httpProxy.proxyURL: URL des HTTP-Proxy Servers ggf. mit Port, z.B.:http://192.168.0.1:8080 -
updates.preReleasesEnabled: wenntrue, werden beimvzd-cli updatedie Pre-Releses installiert
vzd-cli config getvzd-cli config set httpProxy.proxyURL "http://example.com:8080"
vzd-cli config set httpProxy.enabled true
vzd-cli config set updates.preReleasesEnabled truevzd-cli admin config resetAktualisiert das vzd-cli auf die neusete (oder angegebene Version).
Anmerkung: Self-Updates werden erst ab der Version 2.1 unterstützt.
vzd-cli update
vzd-cli update 2.1.0-beta4
Befehle zur Verwaltung von OAuth2 Geheimnissen
Usage: vzd-cli admin vault [OPTIONS] COMMAND [ARGS]... Manage OAuth credentials in the Vault Options: -h, --help Show this message and exit Commands: purge Remove Vault list List configured OAuth2 credentials store Store OAuth2 client credentials export Export Vault to a file for backup or transfer. import Import credentials from another Vault
Zeigt die Information über den aktuellen Zustand des Clients. Insb. wird angezeigt in welche Umgebungen man angemeldet ist, OAuth2 Token Informationen und die Informationen über Backend APIs.
vzd-cli admin statusAnmelden beim OAuth2 Server mit Client-Credentials aus dem Vault.
vzd-cli admin vault hinterlegt)vzd-cli admin tu login
vzd-cli admin ru login
vzd-cli admin pu login|
Anmerkungen
|
Im Gegensatz zu Vault und darin enthaltenen Client-Credentials, werden die zeitlich befristete ACCESS_TOKEN unverschlüsselt im Ordner $HOME/.telematik/ gespeichert.
Die Tokens sind 6 Stunden gültig.
|
Anmelden beim OAuth2 Server mit explizit angegeben Client-Credentials
ru)vzd-cli admin ru login-cred -c myclient -s mysecretCLIENT_SECRET ausgelesen, Referenzumgebung (ru)export CLIENT_SECRET=mysecret
vzd-cli admin ru login-cred -c myclientZeigt oder setzt den ACCESS_TOKEN für die angegebene Umgebung.
vzd-cli admin ru login
export ADMIN_ACCESS_TOKEN=$(vzd-cli admin ru token)
curl -H "Accept: application/json" \
-H "Authorization: Bearer $ADMIN_ACCESS_TOKEN" \
https://vzdpflege-ref.vzd.ti-dienste.de:9543/DirectoryEntries?baseEntryOnly=truevzd-cli admin ru token -s <ACCESS_TOKEN>Führt eine benutzerfreundliche Suche nach Einträgen. Dabei werden Natural Language Processing Algorithmen verwenden um angegebene Suchkriterien zu ermitteln. Derzeit werden folgende Kriterien unterstützt:
-
Orte in Deutschland, z.B. Berlin, Bad Homburg, Frankfurt am Main
-
Deutsche Postleitzahlen
-
TelematikIDs
-
Betriebsstätten / IK-Nummer
# Name und Ort
vzd-cli admin ru search Müller Berlin
# Ort und längerer Name
vzd-cli admin ru search Berlin Praxis Müller
# nur Name
vzd-cli admin ru search Praxis Müller
# Name und PLZ
vzd-cli admin ru search Praxis Müller 45144
# Erste Nummern der TelematikID (niedergelassene Arztpraxen)
vzd-cli admin ru search 1-20Zeigt ausführliche Details zu dem Eintrag.
Durch --ocsp Option kann die Online-Zertifikatsprüfung mittels OCSP-Responder eingefordert werden.
vzd-cli admin ru show 1-SMC-B-Testkarte-883110000102893 vzd-cli admin ru show 1-SMC-B-Testkarte-883110000102893 --ocsp
Suche und Anzeige von Verzeichnisdiensteinträgen durch eingabe einzelner Query-Parameter
Usage: vzd-cli admin ru list [OPTIONS]
List directory entries
Query parameters:
--name TEXT
--uid TEXT
--givenName TEXT
--sn TEXT
--cn TEXT
--displayName TEXT
--streetAddress TEXT
--postalCode TEXT
--countryCode TEXT
--localityName TEXT
--stateOrProvinceName TEXT
--title TEXT
--organization TEXT
--otherName TEXT
-t, --telematikID TEXT
--specialization TEXT
--domainID TEXT
--holder TEXT
--personalEntry [true|false]
--dataFromAuthority [true|false]
--professionOID TEXT
--entryType INT
--maxKOMLEadr INT
--changeDateTimeFrom ISODATE
--changeDateTimeTo ISODATE
--baseEntryOnly [true|false]
OCSP options:
--ocsp Validate certificates using OCSP
Options:
--human, --json, --yaml, --csv, --table
(default: HUMAN)
-f, --param-file PARAM FILENAME...
Read parameter values from file
-p, --param NAME=VALUE Specify query parameters to find matching
entries
-o, --outfile PATH Write output to file
--sync use Sync mode
-h, --help Show this message and exit
-
--param-fileoder-f
Liest Werte eines Parameters aus der Datei und fragt für jeden Wert nach Eintrag im VZD ab. Die Datei soll den gewünschten Wert einmal pro Zeile enthalten:
vzd-cli admin ru list -t 1-SMC-B-Testkarte-8831100001028935- beginnt (Krankenhäuser).vzd-cli admin ru list -t "5-*" --localityName Berlintelematik.txtvzd-cli admin ru list -f telematikID telematik.txt --tabletelematik.txt4-SMC-B-Testkarte-883110000093329 3-SMC-B-Testkarte-883110000093294 2-SMC-B-Testkarte-883110000093645 3-SMCB-Testkarte-883110000092193
Generiert die Dateivorlagen für Entry, BaseEntry und UserCertificate.
vzd-cli admin ru template base > Eintrag.yamlvzd-cli admin template base --json > Eintrag.jsonNeuen Verzeichnisdiensteintrag erstellen.
Beispiel: einen leeren Eintrag mit angegebenen telematikID erstellen:
vzd-cli admin ru add-base -s telematikID=9-TEST -s entryType=4
Lädt einen Basiseintrag. Die geladene Struktur kann als Datei gespeichert werden, in einem Text-Editor bearbeitet und anschließend mit vzd-cli admin modify-base modifiziert werden.
Zeigt informationen aus Zertifikate (DER-Format) und führt OCSP-Abfragen durch.
vzd-cli admin cert-info cert1.der cert2.der --ocspFügt einen neuen X509-Zertifikat zu existierenden Verzeichnisdiensteintrag hinzu.
# zuerst einen leeren Basiseintrag erzeugen
vzd-cli admin ru add-base -s telematikID=1-123123 -s entryType=1
# danach Zertifikat hinzufügen
# Achtung: TelematikID beim Befehl admin add-base und im Zertifikat müssen identisch sein
vzd-cli admin ru add-cert 1-123123.der# Fügt alle Zertifikate aus dem aktuellen Ordner das VZD
# TelematikID und BasisEintrag werden automatisch aus dem Zertifikat
# ermittelt (Admission Statement -> Registration Number)
vzd-cli admin ru add-cert *.derLöscht alle Zertifikate aus dem angegeben Eintrag.
vzd-cli admin ru clear-cert -t 1-123123|
Warning
|
Nicht implementiert. Bitte vzd-cli admin clear-cert verwenden.
|
Löscht einen X509-Zertifikat.
Liest die Einträge aus STDIN, stellt für jeden gefundenen Zertifikat eine OCSP-Abfrage.
Es gibt zwei Parameter für diesen Command:
# Setzt den delay zwischen Anfragen auf 500 Millisekunden
vzd-cli admin ru dump ocsp --delay 500
# Setzt die Anzahl an gleichzeitig Request versendenden Coroutines
vzd-cli admin ru dump ocsp --concurrency 5Es sind auch beide Parameter gleichzeitig setzbar.
Zeigt die Änderungshistorie der Einträge im VZD. Die Änderungen können nach UID, TelematikID (inkl. Pattern) abgefragt werden sowie nach ClientID oder Operation. Zusätzlich können die Ergebnisse nach Zeitperiode gefiltert werden:
# zeigt alle Änderungen für die Einträge mit Prefix 9-
vzd-cli admin ru log -t "9-*"
# zeigt alle Änderungen für die Einträge mit Prefix 9-,
# die sich seit 1.02.2023 geändert haben
vzd-cli admin ru log -t "9-*" --logTimeFrom 2023-02-01T00:00:00ZAktiviert den Eintrag in dem das Attribut active auf true gesetzt wird
vzd-cli admin ru activate -t "9-12345678"Konfiguration der ApoVZD Clients.
# aktuelle konfiguration anzeigen: vzd-cli apo config get # Api-Key für Testinstanz setzen: vzd-cli apo config set apiKeys.test <Api-Key> # Api-Key für Produktivinstanz setzen: vzd-cli apo config set apiKeys.prod <Api-Key>
vzd-cli apo prod search Linden
Durch den Befehl vzd-cli gui wird ein HTTP Server gestartet und ein neuer Browser-Tab mit GUI geöffnet.
Suche nach Einträgen in der FHIR FDV Search API.
vzd-cli fhir pu fdv search hs -t 1-1234567890Befehle zur Verwaltung von OAuth2 Geheimnissen für die FHIR FDV Search API. Aufbau ist analog zu vzd-cli admin vault.
Lesen und Setzen eines ACCESS_TOKEN für die FHIR Search API.
# Setzen des ACCESS_TOKEN für Referenzumgebung (ru)
vzd-cli fhir ru token -s <ACCESS_TOKEN>
# Lesen des ACCESS_TOKEN für Referenzumgebung (ru)
vzd-cli fhir ru tokenCopyright 2022-2025 gematik GmbH
EUROPEAN UNION PUBLIC LICENCE v. 1.2
EUPL © the European Union 2007, 2016
See the LICENSE for the specific language governing permissions and limitations under the License
-
Copyright notice: Each published work result is accompanied by an explicit statement of the license conditions for use. These are regularly typical conditions in connection with open source or free software. Programs described/provided/linked here are free software, unless otherwise stated.
-
Permission notice: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
The copyright notice (Item 1) and the permission notice (Item 2) shall be included in all copies or substantial portions of the Software.
-
The software is provided "as is" without warranty of any kind, either express or implied, including, but not limited to, the warranties of fitness for a particular purpose, merchantability, and/or non-infringement. The authors or copyright holders shall not be liable in any manner whatsoever for any damages or other claims arising from, out of or in connection with the software or the use or other dealings with the software, whether in an action of contract, tort, or otherwise.
-
The software is the result of research and development activities, therefore not necessarily quality assured and without the character of a liable product. For this reason, gematik does not provide any support or other user assistance (unless otherwise stated in individual cases and without justification of a legal obligation). Furthermore, there is no claim to further development and adaptation of the results to a more current state of the art.
-
-
Gematik may remove published results temporarily or permanently from the place of publication at any time without prior notice or justification.
-
Please note: Parts of this code may have been generated using AI-supported technology. Please take this into account, especially when troubleshooting, for security analyses and possible adjustments.
