Kommunikationsexempel för utfärdartjänsten
Tjänsten Microsoft Entra – verifierat ID kan utfärda verifierbara autentiseringsuppgifter genom att hämta anspråk från en ID-token som genereras av organisationens OpenID-kompatibla identitetsprovider. Den här artikeln beskriver hur du konfigurerar din identitetsprovider så att Authenticator kan kommunicera med den och hämta rätt ID-token för att skicka till den utfärdande tjänsten.
För att utfärda en verifierbar autentiseringsuppgift instrueras Authenticator genom att ladda ned kontraktet för att samla in indata från användaren och skicka den informationen till den utfärdande tjänsten. Om du behöver använda en ID-token måste du konfigurera identitetsprovidern så att Authenticator kan logga in en användare med hjälp av OpenID Anslut-protokollet. Anspråken i den resulterande ID-token används för att fylla i innehållet i dina verifierbara autentiseringsuppgifter. Authenticator autentiserar användaren med hjälp av OpenID-Anslut auktoriseringskodflöde. OpenID-providern måste ha stöd för följande OpenID-Anslut funktioner:
Funktion | beskrivning |
---|---|
Bevilja typ | Måste ha stöd för auktoriseringskodens beviljandetyp. |
Tokenformat | Måste producera okrypterade kompakta JWT:er. |
Signaturalgoritm | Måste producera JWTs signerade med RS 256. |
Konfigurationsdokument | Måste ha stöd för OpenID Anslut konfigurationsdokument och jwks_uri . |
Klientregistrering | Måste ha stöd för offentlig klientregistrering med värdet redirect_uri vcclient://openid/ . |
PKCE | Rekommenderas av säkerhetsskäl, men krävs inte. |
Exempel på HTTP-begäranden som skickas till din identitetsprovider finns nedan. Din identitetsprovider måste acceptera och svara på dessa begäranden i enlighet med OpenID-Anslut autentiseringsstandard.
Klientregistrering
För att få en verifierbar autentiseringsuppgift måste användarna logga in på din IDP från Microsoft Authenticator-appen.
Om du vill aktivera det här utbytet registrerar du ett program med din identitetsprovider. Om du använder Microsoft Entra-ID hittar du anvisningarna här. Använd följande värden när du registrerar dig.
Inställning | Värde |
---|---|
Appnamn | <Issuer Name> Verifiable Credential Service |
Omdirigerings-URI | vcclient://openid/ |
När du har registrerat ett program hos din identitetsprovider registrerar du dess klient-ID. Du kommer att använda den i avsnittet som följer. Du måste också skriva ned URL:en till den välkända slutpunkten för den OIDC-kompatibla identitetsprovidern. Den utfärdande tjänsten använder den här slutpunkten för att ladda ned de offentliga nycklar som behövs för att verifiera ID-token när den skickas av Authenticator.
Den konfigurerade omdirigerings-URI:n används av Authenticator så att den vet när inloggningen är klar och kan hämta ID-token.
Auktoriseringsbegäran
Auktoriseringsbegäran som skickas till din identitetsprovider använder följande format.
GET /authorize?client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&response_mode=query&response_type=code&scope=openid&state=12345&nonce=12345 HTTP/1.1
Host: www.contoso.com
Connection: Keep-Alive
Parameter | Värde |
---|---|
client_id |
Klient-ID:t som erhölls under programregistreringsprocessen. |
redirect_uri |
Måste använda vcclient://openid/ . |
response_mode |
Måste ha stöd för query . |
response_type |
Måste ha stöd för code . |
scope |
Måste ha stöd för openid . |
state |
Måste returneras till klienten enligt OpenID-Anslut standard. |
nonce |
Måste returneras som ett anspråk i ID-token enligt OpenID-Anslut standard. |
När den tar emot en auktoriseringsbegäran bör din identitetsprovider autentisera användaren och vidta de åtgärder som krävs för att slutföra inloggningen, till exempel multifaktorautentisering.
Du kan anpassa inloggningsprocessen efter dina behov. Du kan be användarna att ange ytterligare information, acceptera användningsvillkor, betala för sina autentiseringsuppgifter med mera. När alla steg har slutförts svarar du på auktoriseringsbegäran genom att omdirigera till omdirigerings-URI:n enligt nedan.
vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parameter | Värde |
---|---|
code |
Auktoriseringskoden som returneras av din identitetsprovider. |
state |
Måste returneras till klienten enligt OpenID-Anslut standard. |
Tokenbegäran
Tokenbegäran som skickas till din identitetsprovider har följande formulär.
POST /token HTTP/1.1
Host: www.contoso.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 291
client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&grant_type=authorization_code&code=nbafhjbh1ub1yhbj1h4jr1&scope=openid
Parameter | Värde |
---|---|
client_id |
Klient-ID:t som erhölls under programregistreringsprocessen. |
redirect_uri |
Måste använda vcclient://openid/ . |
scope |
Måste ha stöd för openid . |
grant_type |
Måste ha stöd för authorization_code . |
code |
Auktoriseringskoden som returneras av din identitetsprovider. |
När du tar emot tokenbegäran bör din identitetsprovider svara med en ID-token.
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc
yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg"
}
ID-token måste använda JWT kompakt serialiseringsformat och får inte krypteras. ID-token ska innehålla följande anspråk.
Anspråk | Värde |
---|---|
kid |
Nyckelidentifieraren för nyckeln som används för att signera ID-token, som motsvarar en post i OpenID-providerns jwks_uri . |
aud |
Klient-ID:t som erhölls under programregistreringsprocessen. |
iss |
Måste vara värdet issuer i ditt OpenID-Anslut konfigurationsdokument. |
exp |
Måste innehålla förfallotiden för ID-token. |
iat |
Måste innehålla den tidpunkt då ID-token utfärdades. |
nonce |
Värdet som ingår i auktoriseringsbegäran. |
Ytterligare anspråk | ID-token bör innehålla eventuella ytterligare anspråk vars värden kommer att ingå i verifierbara autentiseringsuppgifter som kommer att utfärdas. I det här avsnittet ska du inkludera eventuella attribut om användaren, till exempel deras namn. |