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. |