Voorbeelden van servicecommunicatie van verleners

De Microsoft Entra geverifieerde ID-service kan verifieerbare referenties uitgeven door claims op te halen uit een id-token dat is gegenereerd door de OpenID-compatibele id-provider van uw organisatie. In dit artikel wordt uitgelegd hoe u uw id-provider instelt, zodat Authenticator ermee kan communiceren en het juiste id-token kan ophalen om door te geven aan de verlenende service.

Om een verifieerbare referentie uit te geven, wordt Authenticator geïnstrueerd door het contract te downloaden om invoer van de gebruiker te verzamelen en die informatie naar de verlenende service te verzenden. Als u een id-token moet gebruiken, moet u uw id-provider zo instellen dat Authenticator zich kan aanmelden bij een gebruiker met behulp van het OpenID Verbinding maken-protocol. De claims in het resulterende id-token worden gebruikt om de inhoud van uw verifieerbare referentie te vullen. Authenticator verifieert de gebruiker met behulp van de OpenID Verbinding maken autorisatiecodestroom. Uw OpenID-provider moet de volgende OpenID-Verbinding maken-functies ondersteunen:

Functie Beschrijving
Toekenningstype Moet ondersteuning bieden voor het toekenningstype autorisatiecode.
Tokenindeling Moet niet-versleutelde compacte JWT's produceren.
Handtekening-algoritme Moet JWT's produceren die zijn ondertekend met RS 256.
Configuratiedocument Moet openID Verbinding maken configuratiedocument en jwks_uri.
Clientregistratie Moet openbare clientregistratie ondersteunen met behulp van een redirect_uri waarde van vcclient://openid/.
PKCE Aanbevolen om veiligheidsredenen, maar niet vereist.

Hieronder vindt u voorbeelden van http-aanvragen die naar uw id-provider worden verzonden. Uw id-provider moet deze aanvragen accepteren en erop reageren overeenkomstig de OpenID-Verbinding maken verificatiestandaard.

Clientregistratie

Als u een verifieerbare referentie wilt ontvangen, moeten uw gebruikers zich aanmelden bij uw IDP vanuit de Microsoft Authenticator-app.

Als u deze uitwisseling wilt inschakelen, registreert u een toepassing bij uw id-provider. Als u Microsoft Entra ID gebruikt, vindt u hier de instructies. Gebruik de volgende waarden bij het registreren.

Instelling Weergegeven als
Toepassingsnaam <Issuer Name> Verifiable Credential Service
Omleidings-URI vcclient://openid/

Nadat u een toepassing bij uw id-provider hebt geregistreerd, registreert u de client-id. U gebruikt deze in de volgende sectie. U moet ook de URL noteren naar het bekende eindpunt voor de id-provider die compatibel is met OIDC. De verlenende service gebruikt dit eindpunt om de openbare sleutels te downloaden die nodig zijn om het id-token te valideren zodra het is verzonden door Authenticator.

De geconfigureerde omleidings-URI wordt door Authenticator gebruikt, zodat deze weet wanneer de aanmelding is voltooid en het id-token kan worden opgehaald.

Autorisatieaanvraag

De autorisatieaanvraag die naar uw id-provider wordt verzonden, gebruikt de volgende indeling.

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 Weergegeven als
client_id De client-id die is verkregen tijdens het registratieproces van de toepassing.
redirect_uri Moet worden gebruikt vcclient://openid/.
response_mode Moet worden ondersteund query.
response_type Moet worden ondersteund code.
scope Moet worden ondersteund openid.
state Moet worden geretourneerd aan de client volgens de OpenID Verbinding maken standaard.
nonce Moet worden geretourneerd als een claim in het id-token volgens de OpenID Verbinding maken standaard.

Wanneer er een autorisatieaanvraag wordt ontvangen, moet uw id-provider de gebruiker verifiëren en eventuele stappen uitvoeren die nodig zijn om de aanmelding te voltooien, zoals meervoudige verificatie.

U kunt het aanmeldingsproces aanpassen aan uw behoeften. U kunt gebruikers vragen aanvullende informatie te verstrekken, servicevoorwaarden te accepteren, hun referenties te betalen en meer. Zodra alle stappen zijn voltooid, reageert u op de autorisatieaanvraag door om te leiden naar de omleidings-URI, zoals hieronder wordt weergegeven.

vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parameter Weergegeven als
code De autorisatiecode die wordt geretourneerd door uw id-provider.
state Moet worden geretourneerd aan de client volgens de OpenID Verbinding maken standaard.

Tokenaanvraag

De tokenaanvraag die naar uw id-provider wordt verzonden, heeft het volgende formulier.

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 Weergegeven als
client_id De client-id die is verkregen tijdens het registratieproces van de toepassing.
redirect_uri Moet worden gebruikt vcclient://openid/.
scope Moet worden ondersteund openid.
grant_type Moet worden ondersteund authorization_code.
code De autorisatiecode die wordt geretourneerd door uw id-provider.

Na ontvangst van de tokenaanvraag moet uw id-provider reageren met een 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"
}

Het id-token moet de compacte serialisatie-indeling JWT gebruiken en mag niet worden versleuteld. Het id-token moet de volgende claims bevatten.

Claim Weergegeven als
kid De sleutel-id van de sleutel die wordt gebruikt om het id-token te ondertekenen, die overeenkomt met een vermelding in de OpenID-provider jwks_uri.
aud De client-id die is verkregen tijdens het registratieproces van de toepassing.
iss Dit moet de issuer waarde in uw OpenID Verbinding maken configuratiedocument zijn.
exp Moet de verlooptijd van het id-token bevatten.
iat Moet het tijdstip bevatten waarop het id-token is uitgegeven.
nonce De waarde die is opgenomen in de autorisatieaanvraag.
Aanvullende claims Het id-token moet aanvullende claims bevatten waarvan de waarden worden opgenomen in de verifieerbare referentie die wordt uitgegeven. In deze sectie moet u alle kenmerken van de gebruiker opnemen, zoals hun naam.

Volgende stappen