Authentifizierung
Zugriffstoken über OpenID Connect holen, erneuern und die Sitzung beenden.
Die GraphQL-API verwendet OpenID Connect zur Anmeldung und Berechtigung. Für jeden Zugriff benötigen Sie ein Zugriffstoken vom Anmeldeserver.
Der OpenID-Connect-Endpunkt lautet:
https://auth.34u.de/realms/multibasecs/protocol/openid-connect/
1. Zugriffstoken holen
Das Token holen Sie am Token-Endpunkt:
POST https://auth.34u.de/realms/multibasecs/protocol/openid-connect/token
| Parameter | Wert |
|---|---|
grant_type |
password |
scope |
openid |
client_id |
Client-ID Ihrer Anwendung |
client_secret |
Client-Secret Ihrer Anwendung |
username |
Benutzername des MultiBaseCS-Benutzerkontos |
password |
Kennwort des MultiBaseCS-Benutzerkontos |
curl --request POST \
--url https://auth.34u.de/realms/multibasecs/protocol/openid-connect/token \
--header 'content-type: application/x-www-form-urlencoded' \
--data 'grant_type=password&client_id=<client-id>&client_secret=<client-secret>&scope=openid&username=<benutzername>&password=<kennwort>'
Antwort:
{
"access_token": "<zugriffstoken>",
"expires_in": 300,
"refresh_token": "<aktualisierungstoken>",
"token_type": "Bearer",
"scope": "openid"
}
2. Die API aufrufen
Geben Sie das Zugriffstoken bei jeder Anfrage im Header Authorization mit:
curl --request POST \
--url https://api.multibasecs.de/graphql \
--header 'Authorization: Bearer <zugriffstoken>' \
--header 'Content-Type: application/json' \
--data '{"query":"query { Clouds { ID_Cloud Bezeichnung } }"}'
3. Token erneuern
Zugriffstoken sind nur wenige Minuten gültig (expires_in in Sekunden). Damit sich Ihre Anwendung
nicht ständig neu anmelden muss, holen Sie mit dem refresh_token ein neues Zugriffstoken:
curl --request POST \
--url https://auth.34u.de/realms/multibasecs/protocol/openid-connect/token \
--header 'content-type: application/x-www-form-urlencoded' \
--data 'grant_type=refresh_token&client_id=<client-id>&client_secret=<client-secret>&refresh_token=<aktualisierungstoken>'
4. Abmelden
Um die Sitzung zu beenden, widerrufen Sie das Aktualisierungstoken:
curl --request POST \
--url https://auth.34u.de/realms/multibasecs/protocol/openid-connect/logout \
--header 'content-type: application/x-www-form-urlencoded' \
--data 'client_id=<client-id>&client_secret=<client-secret>&refresh_token=<aktualisierungstoken>'
Fehler
| Fall | Code in extensions.code |
|---|---|
| Kein oder ungültiges Token | UNAUTHENTICATED (HTTP 401) |
| Gültiges Token, aber keine Berechtigung für die angefragten Daten | FORBIDDEN (HTTP 403) |
Beispiel:
{
"errors": [
{
"message": "Unauthorized",
"path": ["Clouds"],
"extensions": { "code": "UNAUTHENTICATED" }
}
],
"data": null
}