Beispiele für die Kommunikation des Ausstellerdiensts
Hinweis
Microsoft Entra Verified ID ist jetzt Teil der Microsoft Entra-Produktfamilie. Erfahren Sie mehr über die Microsoft Entra-Familie mit Lösungen für die Identitätsverwaltung, und beginnen Sie im einheitlichen Microsoft Entra Admin Center.
Der Microsoft Entra Verified ID-Dienst kann Nachweise ausstellen, indem er Ansprüche aus einem ID-Token abruft, das vom OpenID-konformen Identitätsanbieter Ihrer Organisation generiert wurde. In diesem Artikel wird beschrieben, wie Sie Ihren Identitätsanbieter einrichten, damit der Authentifikator damit kommunizieren und das korrekte ID-Token abrufen kann, das an den ausstellenden Dienst übergeben werden soll.
Zum Ausstellen von überprüfbaren Anmelde Informationen wird der Authentifikator durch Herunterladen des Vertrags angewiesen, um Eingaben vom Benutzer zu erfassen und diese Informationen an den ausstellenden Dienst zu senden. Wenn Sie ein ID-Token verwenden müssen, müssen Sie Ihren Identitätsanbieter so einrichten, dass der Authenticator einen Benutzer über das OpenID Connect-Protokoll anmelden kann. Die Angaben im resultierenden ID-Token werden verwendet, um den Inhalt Ihres verifizierbaren Berechtigungsnachweises aufzufüllen. Der Authentifikator authentifiziert den Benutzer mithilfe des OpenID Connect-Autorisierungs Kode-Flusses. Ihr OpenID-Anbieter muss die folgenden OpenID Connect-Features unterstützen:
Funktion | BESCHREIBUNG |
---|---|
Gewährungstyp | Muss den Grant-Typ-Berechtigungscode unterstützen. |
Tokenformat | Es muss unverschlüsselte kompakte JWTs erzeugen. |
Signaturalgorithmus | Muss JWTs erzeugen, die mit RS 256 signiert sind. |
Konfigurations-Dokument | Muss das OpenID Connect-Konfigurations Dokument unterstützen jwks_uri . |
Clientregistrierung | Muss die öffentliche Client-Registrierung unterstützen, unter Verwendung eines redirect_uri Werts von vcclient://openid/ . |
PKCE | Empfohlen aus Sicherheitsgründen, jedoch nicht erforderlich. |
Beispiele für die HTTP-Anfragen, die an Ihren Identitätsanbieter gesendet werden, sind unten aufgeführt. Ihr Identitätsanbieter muss diese Anfragen in Übereinstimmung mit dem OpenID Connect-Authentifizierungsstandard akzeptieren und beantworten.
Clientregistrierung
Um verifizierbare Anmeldedaten zu erhalten, müssen sich Ihre Benutzer über die Microsoft Authenticator-App bei Ihrem IDP anmelden.
Um diesen Austausch zu aktivieren, registrieren Sie eine Anwendung bei Ihrem Identitätsanbieter. Wenn Sie Microsoft Entra-ID verwenden, finden Sie die Anweisungen hier. Verwenden Sie bei der Registrierung die folgenden Werte.
Einstellung | Wert |
---|---|
Anwendungsname | <Issuer Name> Verifiable Credential Service |
Umleitungs-URI | vcclient://openid/ |
Nachdem Sie eine Anwendung bei Ihrem Identitätsanbieter registriert haben, zeichnen Sie deren Client-ID auf. Sie werden es im folgenden Abschnitt verwenden. Sie müssen auch die URL zum bekannten Endpunkt für den OIDC-kompatiblen Identitätsanbieter notieren. Der ausstellende Dienst verwendet diesen Endpunkt, um die öffentlichen Schlüssel herunterzuladen, die zur Validierung des ID-Tokens benötigt werden, sobald dieses von Authenticator gesendet wurde.
Die konfigurierte Redirect-URI wird von Authenticator verwendet, damit er weiß, wann die Anmeldung abgeschlossen ist und er das ID-Token abrufen kann.
Authorization request (Autorisierungsanforderung)
Die an Ihren Identitätsanbieter gesendete Autorisierungsanfrage verwendet das folgende 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 | Wert |
---|---|
client_id |
Die Client-ID, die Sie bei der Registrierung der Anwendung erhalten haben. |
redirect_uri |
Muss vcclient://openid/ verwenden. |
response_mode |
Muss query unterstützen. |
response_type |
Muss code unterstützen. |
scope |
Muss openid unterstützen. |
state |
Muss gemäß dem OpenID Connect-Standard an den Client zurückgegeben werden. |
nonce |
Muss nach dem OpenID-Connect-Standard als Claim im ID-Token zurückgegeben werden. |
Wenn er eine Autorisierungsanfrage erhält, sollte Ihr Identitätsanbieter den Benutzer authentifizieren und alle notwendigen Schritte unternehmen, um die Anmeldung abzuschließen, wie z. B. die Multi-Faktor-Authentifizierung.
Sie können den Anmeldevorgang an Ihre Bedürfnisse anpassen. Sie können Benutzer dazu auffordern, zusätzliche Informationen anzugeben, die Nutzungsbedingungen zu akzeptieren, Ihre Anmelde-Informationen zu bezahlen, usw. Nachdem alle Schritte ausgeführt wurden, reagieren Sie auf die Autorisierungs Anforderung, indem Sie wie unten dargestellt an den Umleitungs-URI umleiten.
vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parameter | Wert |
---|---|
code |
Der Autorisierungscode, der von Ihrem Identitätsanbieter zurückgegeben wird. |
state |
Muss gemäß dem OpenID Connect-Standard an den Client zurückgegeben werden. |
Tokenanforderung
Die an Ihren Identitätsanbieter gesendete Tokenanforderung weist das folgende Format auf.
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 | Wert |
---|---|
client_id |
Die Client-ID, die Sie bei der Registrierung der Anwendung erhalten haben. |
redirect_uri |
Muss vcclient://openid/ verwenden. |
scope |
Muss openid unterstützen. |
grant_type |
Muss authorization_code unterstützen. |
code |
Der Autorisierungscode, der von Ihrem Identitätsanbieter zurückgegeben wird. |
Nach Erhalt der Token-Anforderung sollte Ihr Identitätsanbieter mit einem ID-Token antworten.
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"
}
Das ID-Token muss das kompakte Serialisierungsformat JWT verwenden und darf nicht verschlüsselt sein. Das ID-Token sollte die folgenden Ansprüche enthalten.
Anspruch | Wert |
---|---|
kid |
Der Schlüsselbezeichner des Schlüssels, der zum Signieren des ID-Tokens verwendet wird, entsprechend einem Eintrag in der OpenID-Anbieterlistejwks_uri . |
aud |
Die Client-ID, die Sie bei der Registrierung der Anwendung erhalten haben. |
iss |
Muss der issuer Wert im OpenID Connect-Konfigurations-Dokument sein. |
exp |
Muss die Ablaufzeit des ID-Tokens enthalten. |
iat |
Speichert die Uhrzeit, zu der das Token ausgestellt wurde. |
nonce |
Der Wert, der in der Autorisierungsanforderung enthalten ist. |
Zusätzliche Ansprüche | Das ID-Token muss alle zusätzlichen Ansprüche enthalten, deren Werte in die überprüfbaren Anmeldeinformationen eingeschlossen werden, die ausgestellt werden. In diesem Abschnitt sollten Sie alle Attribute des Benutzers einschließen, z. b. den Namen. |