Ein Zugriffstoken abrufen
Ziel
Rufen Sie ein OAuth2-Zugriffstoken vom Parsware Identity Service ab, damit Sie während der Entwicklung Plattform-APIs aufrufen können.
Voraussetzungen
- Der Identity Service läuft und ist erreichbar (in der lokalen Entwicklung lauscht er auf
http://localhost:5000). - Die Seed-Daten für die Entwicklung wurden angelegt (das geschieht beim ersten Start
automatisch): ein Entwicklungsmandant und ein Administratorkonto
(
admin@parsware.local). - Ein REST-Client wie
curl.
Schritte
-
Fordern Sie am Token-Endpunkt ein Token an – mit dem Entwicklungsclient und den Anmeldeinformationen des angelegten Administrators:
curl -X POST http://localhost:5000/connect/token \-H "Content-Type: application/x-www-form-urlencoded" \-d "grant_type=password" \-d "username=admin@parsware.local" \-d "password=Passw0rd!" \-d "scope=profile roles parsware.api offline_access" \-d "client_id=parsware-dev-cli" \-d "client_secret=dev-cli-secret" -
Lesen Sie das
access_tokenaus der JSON-Antwort. Die Antwort enthält außerdem einrefresh_token(weiloffline_accessangefordert wurde) und einen Wertexpires_inin Sekunden. -
Rufen Sie eine API mit dem Token im Header
Authorizationauf. Um zu bestätigen, dass das Token funktioniert, rufen Sie den userinfo-Endpunkt auf:curl http://localhost:5000/connect/userinfo \-H "Authorization: Bearer <access_token>"Die Antwort identifiziert den angemeldeten Benutzer (Subject, Name, E-Mail, Mandant).
Was im Hintergrund passiert
Der Identity Service prüft das Kennwort des Administrators und stellt dann ein signiertes JWT-Zugriffstoken aus. Das Token ist signiert (nicht verschlüsselt), sodass jeder Plattformdienst es direkt anhand der veröffentlichten Signaturschlüssel des Identity Service validiert – es gibt keinen Rückruf beim Identity Service für jede Anfrage.
Fehlerbehebung
invalid_grant– Benutzername oder Kennwort ist falsch, oder das Konto wurde nach wiederholten Fehlversuchen gesperrt. Warten Sie und versuchen Sie es erneut, oder setzen Sie das Kennwort zurück.invalid_client–client_id/client_secretpassen zu keinem registrierten Client. Verwenden Sie in der Entwicklungparsware-dev-cli/dev-cli-secret.invalid_scope– ein angeforderter Scope ist für den Client nicht zulässig. Fordern Sie nurprofile,roles,offline_accessundparsware.apian.- Verbindung abgelehnt – der Identity Service läuft nicht oder verwendet einen anderen Port.
- Das Token enthält nur
mfa.enrol(seinaudistparsware-mfa-enrolment) – das Konto ist ein Mitarbeiterkonto, für das noch keine Authentifizierungs-App eingerichtet ist. MFA ist für Mitarbeiter verpflichtend: Richten Sie eine ein (über das Profil oder mitPOST /connect/mfa/enrolmentund diesem Token) und fordern Sie dann erneut an, mit-d "mfa_code=<the six digits>". In einer Bereitstellung ist der Administrator die Person, die inPLATFORM_ADMIN_EMAILder Bereitstellung angegeben ist, nichtadmin@parsware.local.
Verwandte Szenarien
- Die JWKS-Schlüssel prüfen, die der Identity Service veröffentlicht.
Der hier gezeigte Password-Grant ist eine Erleichterung für die Entwicklung, um ein Token über die Befehlszeile abzurufen. Die echte interaktive Anmeldung verwendet den Authorization-Code-Flow mit PKCE über die Plattform-Shell.