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_urivcclient://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.

Nästa steg