API Authentication

Die Authentifizierungsmechanismen werden zwischen allen DTZ-APIs geteilt. Alle hier beschriebenen Mechanismen sind daher für alle APIs verfügbar.

Die Authentifizierungsdaten können über die folgenden Felder übertragen werden:

  • Bearer-Token
  • Cookie-basiert
  • API-Schlüssel
  • Basic-Auth

Authentifizierung

Die Authentifizierung wird vom DTZ Identity Service durchgeführt.

OAuth 2.0 & OpenID Connect: Für eine umfassende OAuth- und OIDC-Integration siehe den detaillierten OAuth Guide im Identity-Bereich.

Mögliche Anmeldeszenarien:

WebUI

https://identity.dtz.rocks/login/

DTZ Identity Login

Mit HTTP-API-Key-Header

Um sich mit einem API-Schlüssel zu authentifizieren, muss der API-Schlüssel als Header-Feld X-API-KEY übergeben werden.

Hier ein Beispiel-curl-Befehl:

curl -X GET "https://api.dtz.rocks/v1/me" -H "X-API-KEY: YOUR_API_KEY"

Mit HTTP-Bearer-Token

Um sich mit einem Bearer-Token zu authentifizieren, muss das Token als Header-Feld Authorization: Bearer YOUR_BEARER_TOKEN übergeben werden.

Hier ein Beispiel, wie man ein Bearer-Token erhält:

> POST https://identity.dtz.rocks/api/2021-02-21/token/auth
> Content-Type: application/json
>
> {
>  "username": "user",
>  "password": "password"
> }

< {
<   "access_token": "eyJhb...",
<   "scope": "00000000-0000-0000-0000-000000000000",
<   "token_type": "Bearer",
<   "expires_in": 86400
< }

Hier ein Beispiel, wie das Bearer-Token verwendet wird:

curl -X GET "https://identity.dtz.rocks/api/2021-02-21/me" -H "Authorization: Bearer {bearer token}"
> GET https://identity.dtz.rocks/api/2021-02-21/me
> Authorization: Bearer eyJhb...

< {
<   "roles": [ ]
< }

Mit HTTP-Basic-Auth-Header

Hier ein Beispielaufruf mit curl, wie Basic Auth verwendet wird, um auf die DTZ-API zuzugreifen.

curl -X GET -u 'apikey:apikey-1234' "https://identity.dtz.rocks/api/2021-02-21/me"

Als Fallback, oder wenn die reguläre Bearer-Authentifizierung nicht verfügbar ist, akzeptiert der Dienst auch Bearer-Tokens über das Basic-Auth-Schema.

curl -X GET -u 'bearer:{bearer-token}' "https://identity.dtz.rocks/api/2021-02-21/me"

Die Verwendung des JWT-Tokens als Cookie ist ebenfalls erlaubt. Das Token muss als Cookie mit dem Namen dtz-auth übergeben werden.

Mit GET-Parameter

Manchmal erlauben Drittanbieter nicht, Authentifizierungsheader zu setzen. Für diesen Fall kann ein API-Schlüssel auch als GET-Parameter mit dem Namen apiKey übergeben werden.