Een toegangstoken verkrijgen
Doel
Verkrijg een OAuth2-toegangstoken van de Parsware Identity Service, zodat je tijdens het ontwikkelen API's van het platform kunt aanroepen.
Vereisten
- De Identity Service draait en is bereikbaar (bij lokale ontwikkeling luistert hij op
http://localhost:5000). - De seedgegevens voor ontwikkeling zijn aangemaakt (dat gebeurt automatisch bij de eerste
start): een ontwikkeltenant en een beheerdersaccount (
admin@parsware.local). - Een REST-client zoals
curl.
Stappen
-
Vraag een token aan bij het tokeneindpunt met de ontwikkelclient en de inloggegevens van de geseede beheerder:
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" -
Lees de
access_tokenuit het JSON-antwoord. Het antwoord bevat ook eenrefresh_token(omdatoffline_accessis aangevraagd) en een waardeexpires_inin seconden. -
Roep een API aan met het token in de header
Authorization. Roep het userinfo-eindpunt aan om te controleren dat het token werkt:curl http://localhost:5000/connect/userinfo \-H "Authorization: Bearer <access_token>"Het antwoord identificeert de aangemelde gebruiker (subject, naam, e-mail, tenant).
Wat er achter de schermen gebeurt
De Identity Service controleert het wachtwoord van de beheerder en geeft daarna een ondertekend JWT-toegangstoken uit. Het token is ondertekend (niet versleuteld), dus elke platformservice valideert het rechtstreeks met de gepubliceerde ondertekeningssleutels van de Identity Service — er is niet bij elk verzoek een terugkoppeling naar de Identity Service nodig.
Problemen oplossen
invalid_grant— de gebruikersnaam of het wachtwoord klopt niet, of het account is na herhaalde mislukte pogingen geblokkeerd. Wacht en probeer het opnieuw, of stel het wachtwoord opnieuw in.invalid_client— declient_id/client_secretkomen niet overeen met een geregistreerde client. Gebruik bij ontwikkelingparsware-dev-cli/dev-cli-secret.invalid_scope— een aangevraagde scope is niet toegestaan voor de client. Vraag alleenprofile,roles,offline_accessenparsware.apiaan.- Verbinding geweigerd — de Identity Service draait niet of luistert op een andere poort.
- Het token bevat alleen
mfa.enrol(deaudisparsware-mfa-enrolment) — het account is een medewerkersaccount zonder authenticator-app. MFA is verplicht voor medewerkers: registreer er een (vanuit het profiel, of metPOST /connect/mfa/enrolmenten dit token) en vraag dan opnieuw aan met-d "mfa_code=<the six digits>". Bij een uitrol is de beheerder degene diePLATFORM_ADMIN_EMAILvan die uitrol noemt, nietadmin@parsware.local.
Gerelateerde scenario's
- De JWKS-sleutels inspecteren die de Identity Service publiceert.
De password grant die hier wordt getoond, is een gemak voor ontwikkeling om vanaf de opdrachtregel een token te verkrijgen. Echt interactief aanmelden gebruikt de authorization code flow met PKCE via de Platformshell.