Definieren eines technischen OAuth2-Profils in einer benutzerdefinierten Richtlinie in Azure Active Directory B2C

Hinweis

In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.

Azure Active Directory B2C (Azure AD B2C) bietet Unterstützung für Identitätsanbieter mit dem OAuth2-Protokoll. OAuth2 ist das primäre Protokoll für die Autorisierung und die delegierte Authentifizierung. Weitere Informationen finden Sie unter RFC 6749: The OAuth 2.0 Authorization Framework (Das OAuth 2.0-Autorisierungsframework). Mit einem technischen OAuth2-Profil können Sie einen Verbund mit einem OAuth2-basierten Identitätsanbieter wie Facebook erstellen. Über einen Verbund mit einem Identitätsanbieter können sich Benutzer mit ihren vorhandenen Identitäten aus sozialen Netzwerken oder Unternehmen anmelden.

Protocol

Das Name-Attribut des Protocol-Elements muss auf OAuth2 festgelegt werden. Das Protokoll für das technische Profil Facebook-OAUTH ist z.B. OAuth2:

<TechnicalProfile Id="Facebook-OAUTH">
  <DisplayName>Facebook</DisplayName>
  <Protocol Name="OAuth2" />
  ...

Eingabeansprüche

Die Elemente InputClaims und InputClaimsTransformations sind nicht erforderlich. Sie können diese zusätzlichen Parameter aber an Ihren Identitätsanbieter senden. Im folgenden Beispiel wird der Autorisierungsanforderung der Parameter domain_hint der Abfragezeichenfolge mit dem Wert contoso.com hinzugefügt.

<InputClaims>
  <InputClaim ClaimTypeReferenceId="domain_hint" DefaultValue="contoso.com" />
</InputClaims>

Ausgabeansprüche

Das OutputClaims-Element enthält eine Liste von Ansprüchen, die vom OAuth2-Identitätsanbieter zurückgegeben wurden. Sie müssen den Namen des Anspruchs, der in Ihrer Richtlinie definiert ist, dem Namen, der für den Identitätsanbieter definiert wurde, zuordnen. Sie können auch Ansprüche, die nicht vom Identitätsanbieter zurückgegeben wurden, einfügen, sofern Sie das DefaultValue-Attribut festlegen.

Das OutputClaimsTransformations-Element darf eine Sammlung von OutputClaimsTransformation-Elementen, die zum Ändern der Ausgabeansprüche oder zum Generieren neuer verwendet werden, enthalten.

Das folgende Beispiel zeigt die Ansprüche, die vom Identitätsanbieter Facebook zurückgegeben wurden:

  • Der Anspruch first_name wird dem Anspruch givenName zugeordnet.
  • Der Anspruch last_name wird dem Anspruch surname zugeordnet.
  • Der Anspruch displayName erhält keine Namenszuordnung.
  • Dem Anspruch email wird kein Name zugeordnet.

Das technische Profil gibt auch Ansprüche zurück, die vom Identitätsanbieter nicht zurückgegeben werden:

  • Der Anspruch identityProvider enthält den Namen des Identitätsanbieters.
  • Der Anspruch authenticationSource enthält als Standardwert socialIdpAuthentication.
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" />
  <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" />
  <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" />
  <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
  <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
  <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="facebook.com" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
</OutputClaims>

Metadaten des Autorisierungsendpunkts

Der Autorisierungsablauf beginnt, wenn Azure AD B2C den Benutzer an den OAuth2-Identitätsanbieterendpunkt /authorizeweiterleitet. Der Aufruf des Autorisierungsendpunkts ist der interaktive Teil des Datenflusses, in dem der Benutzer Maßnahmen ergreifen kann. An diesem Punkt wird der Benutzer aufgefordert, die Anmeldung beim OAuth2-Identitätsanbieter abzuschließen. Geben Sie beispielsweise ihren Benutzernamen und ihr Kennwort ein.

Azure AD B2C erstellt eine Autorisierungsanforderung, indem die Client-ID, Bereiche, der Umleitungs-URI und andere Parameter angegeben werden, die zum Abrufen eines Zugriffstokens vom Identitätsanbieter erforderlich sind. In diesem Abschnitt werden die Metadaten des Autorisierungsendpunkts beschrieben, mit denen die Anforderung an den Endpunkt des /authorizeIdentitätsanbieters konfiguriert werden kann.

Die Anforderung an den Autorisierungsendpunkt lautet immer HTTP GET. Im folgenden Beispiel wird ein Aufruf des Autorisierungsendpunkts veranschaulicht.

GET https://login.contoso.com/oauth/v2/authorization?
client_id=12345
&response_type=code
&response_mode=query
&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob
&scope=profile%20offline_access
&redirect_uri=https%3a%2f%2fabrikam.b2clogin.com%2fabrikam.onmicrosoft.com%2foauth2%2fauthresp
&state=...

In der folgenden Tabelle sind die Metadaten des Autorisierungsendpunkts aufgeführt.

Attribut Erforderlich BESCHREIBUNG
authorization_endpoint Ja Die URL des Autorisierungsendpunkts gemäß RFC 6749.
client_id Ja Die Anwendungs-ID des Identitätsanbieters.
AdditionalRequestQueryParameters No Zusätzliche Anforderungsabfrageparameter. Sie können diese zusätzlichen Parameter z.B. an Ihren Identitätsanbieter senden. Sie können mehrere Parameter mit einem Komma als Trennzeichen einfügen.
response_mode Nein Die Methode, die der Identitätsanbieter verwendet, um das Ergebnis zurück an Azure AD B2C zu senden. Mögliche Werte: query, form_post (Standard) oder fragment.
scope Nein Der Bereich für die Anforderung gemäß der Spezifikation des OAuth2-Identitätsanbieters. Beispiele: openid, profile und email.
UsePolicyInRedirectUri Nein Gibt an, ob beim Erstellen des Umleitungs-URI eine Richtlinie verwendet werden soll. Wenn Sie Ihre Anwendung im Identitätsanbieter konfigurieren, müssen Sie den Umleitungs-URI angeben. Der Umleitungs-URI verweist auf Azure AD B2C, https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. Bei Angabe von true müssen Sie einen Umleitungs-URI für jede verwendete Richtlinie hinzufügen. Beispiel: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp.

Tokenendpunktmetadaten

Nachdem der Benutzer seine Authentifizierung am Autorisierungsendpunkt des Identitätsanbieters abgeschlossen hat, wird eine Antwort mit der Autorisierung an Azure AD code B2C zurückgegeben. Azure AD B2C löst den Autorisierungscode für ein Zugriffstoken ein, indem eine POST-Anforderung an den /token-Endpunkt des Identitätsanbieters gesendet wird. In diesem Abschnitt werden die Metadaten des Tokenendpunkts beschrieben, mit denen die Anforderung an den Endpunkt des /token Identitätsanbieters konfiguriert werden kann.

Die folgende HTTP-Anforderung zeigt einen Azure AD B2C-Aufruf an den Tokenendpunkt des Identitätsanbieters.

POST https://contoso/oauth2/token 
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&client_id=12345&scope=profile offline_access&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq... 

In der folgenden Tabelle sind die Metadaten des Tokenendpunkts aufgeführt.

Attribut Erforderlich BESCHREIBUNG
AccessTokenEndpoint Ja Die URL des Tokenendpunkts gemäß RFC 6749. Beispiel: https://www.linkedin.com/oauth/v2/accessToken.
HttpBinding Nein Die erwartete HTTP-Bindung an den Tokenendpunkt. Mögliche Werte: GET oder POST.
AccessTokenResponseFormat Nein Das Format für Aufrufe an den Zugriffstoken-Endpunkt. Facebook erfordert z.B. eine HTTP GET-Methode, während die Antwort mit dem Zugriffstoken im JSON-Format ist. Mögliche Werte: Default, Json und JsonP.
ExtraParamsInAccessTokenEndpointResponse Nein Enthält die zusätzlichen Parameter, die in der Antwort auf AccessTokenEndpoint von einigen Identitätsanbietern zurückgegeben werden können. Beispielsweise enthält die Antwort von AccessTokenEndpoint einen zusätzlichen Parameter wie openid, der neben access_token in der Abfragezeichenfolge einer ClaimsEndpoint-Anforderung ein erforderlicher Parameter ist. Mehrere Parameternamen sollten mit einem Escapezeichen versehen und durch ein Komma (,) voneinander getrennt werden.
token_endpoint_auth_method Nein Gibt an, wie Azure AD B2C den Authentifizierungsheader an den Tokenendpunkt sendet. Mögliche Werte sind client_secret_post (Standardwert) oder client_secret_basic, private_key_jwt. Weitere Informationen finden Sie im Abschnitt OpenID Connect-Clientauthentifizierung.
token_signing_algorithm Nein Gibt den Signaturalgorithmus an, der verwendet werden soll, wenn token_endpoint_auth_method auf private_key_jwt festgelegt ist. Mögliche Werte: RS256 (Standard) oder RS512.

Konfigurieren der HTTP-Bindungsmethode

Standardmäßig verwendet die Anforderung an den Tokenendpunkt HTTP POST.

<Item Key="AccessTokenEndpoint">https://contoso.com/oauth2/token</Item>
<Item Key="HttpBinding">POST</Item>

Der folgende HTTP-Aufruf veranschaulicht einen Aufruf des Tokenendpunkts mithilfe einer HTTP POST-Anforderung:

POST /oauth2/token

client_id=abcd&client_secret=1234&redirect_uri=https%3a%2f%2fcontoso.b2clogin.com%2fcontoso.onmicrosoft.com%2foauth2%2fauthresp&code=12345&grant_type=authorization_code

Für Identitätsprovider, die die Verwendung der HTTP GET-Methode am /token Endpunkt verlangen, setzen Sie die HttpBinding Metadaten auf GET. Beachten Sie, dass im folgenden Beispiel auf festgelegt ist, da der Tokenendpunkt AccessTokenResponseFormat die Antwort im json JSON-Format zurückgibt.

<Item Key="AccessTokenEndpoint">https://contoso.com/oauth2/token</Item>
<Item Key="HttpBinding">GET</Item>
<Item Key="AccessTokenResponseFormat">json</Item>
GET /oauth2/token?client_id=abcd&client_secret=1234&redirect_uri=https%3a%2f%2fcontoso.b2clogin.com%2fcontoso.onmicrosoft.com%2foauth2%2fauthresp&code=12345&grant_type=authorization_code

Konfigurieren des Zugriffstoken-Antwortformats

Für Identitätsanbieter, die die HTTP POST-Methode unterstützen, wird AccessTokenResponseFormat standardmäßig aufjson festgelegt. Wenn der Identitätsanbieter HTTP GET-Anforderungen unterstützt, müssen Sie das Antwortformat des Zugriffstokens jsonexplizit auf festlegen.

<Item Key="AccessTokenEndpoint">https://contoso.com/oauth2/token</Item>
<Item Key="HttpBinding">GET</Item>
<Item Key="AccessTokenResponseFormat">json</Item>

Im folgenden Beispiel wird eine Tokenendpunktantwort im JSON-Format veranschaulicht:

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5...",
    "token_type": "Bearer",
    "not_before": 1637924390,
    "expires_in": 960000,
}

Konfigurieren Sie die Authentifizierungsmethoden

Für Anforderungen an den Token-Endpunkt ist immer eine Authentifizierung erforderlich. Standardmäßig versorgt Azure AD B2C den Identitätsanbieter mit Client-Anmeldeinformationen. Standardmäßig ist die Authentifizierungsmethode client_secret_post, einschließlich der Client-Zugangsdaten (client_id und client_secret) im Körper der Anfragekörper.

Die folgende HTTP-Anforderung an den Token-Endpunkt enthält die client_id und die client_secret in den POST-Daten. Bei GET-Anfragen sind client_id und client_secret in den Query-String-Parametern enthalten.

POST /oauth2/token

client_id=abcd&client_secret=1234&redirect_uri=https%3a%2f%2fcontoso.b2clogin.com%2fcontoso.onmicrosoft.com%2foauth2%2fauthresp&code=12345&grant_type=authorization_code

Für Identitätsanbieter, die die Verwendung der HTTP-Basisauthentifizierung an ihrem /token Endpunkt verlangen, konfigurieren Sie die token_endpoint_auth_method Metadaten auf client_secret_basic. Bei dieser Art der Authentifizierungsmethode werden die Anmeldedaten des Clients unter Verwendung des HTTP-Basic-Authentifizierungsschemas an den Identitätsanbieter weitergeleitet.

<Item Key="AccessTokenEndpoint">https://contoso.com/oauth2/token</Item>
<Item Key="token_endpoint_auth_method">client_secret_basic</Item>

Die folgende HTTP-Anforderung demonstriert einen Aufruf des Token-Endpunkts mit HTTP-Basisauthentifizierung. Der Autorisierungsheader enthält die Client-ID und den geheimen Clientschlüssel im Format client_ID:client_secretBase64-codiert.

POST /oauth2/token

Authorization: Basic YWJjZDoxMjM0

redirect_uri=https%3a%2f%2fcontoso.b2clogin.com%2fontoso.onmicrosoft.com%2foauth2%2fauthresp&code=12345&grant_type=authorization_code

Für Identitätsanbieter, die die JWT-Authentifizierung mit privatem Schlüssel unterstützen, konfigurieren Sie die Metadaten token_endpoint_auth_method auf private_key_jwt. Bei dieser Art der Authentifizierungsmethode wird das Azure AD B2C zur Verfügung gestellte Zertifikat verwendet, um eine signierte Zusicherung zu erstellen, die über den Parameter client_assertion an den Identitätsanbieter übergeben wird. Die client_assertion_type wird auf urn:ietf:params:oauth:client-assertion-type:jwt-bearer gesetzt. Die token_signing_algorithm-Metadaten geben den Signieralgorithmus des JWT-Tokens an.

<Item Key="AccessTokenEndpoint">https://contoso.com/oauth2/token</Item>
<Item Key="token_endpoint_auth_method">private_key_jwt</Item>
<Item Key="token_signing_algorithm">RS256</Item>

Die folgende HTTP-Anforderung demonstriert einen Aufruf des Token-Endpunkts unter Verwendung der JWT-Authentifizierung mit privatem Schlüssel.

POST /oauth2/token

client_assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImtpZCI6IjJFRFg0dWRYeDIxbXNoaXdJVzczMUY3OUZSbFJiUDZXVXJyZmktR1RFeVkifQ.eyJpc3MiOiJhYmNkIiwiZXhwIjoxNjM3OTI5ODY0LCJuYmYiOjE2Mzc5Mjk1NjQsImF1ZCI6Imh0dHBzOi8vNWRlNC0xMDktNjQtMTI0LTUzLm5ncm9rLmlvL2FjY2Vzc190b2tlbiIsImp0aSI6IjVxQWlGV2lEODNDbU1KWWNrejBRdGc9PSIsInN1YiI6ImFiY2QiLCJpYXQiOjE2Mzc5Mjk1NjR9.C4OtRnrLaQatpT5LP45O5Nb418S4v8yZi_C42ld440w&client_id=abcd&client_assertion_type=urn%3aietf%3aparams%3aoauth%3aclient-assertion-type%3ajwt-bearer&redirect_uri=https%3a%2f%2fcontoso.b2clogin.com%2fcontoso.onmicrosoft.com%2foauth2%2fauthresp&code=12345&grant_type=authorization_code

Metadaten des Endpunkts für Benutzerinformationen

Nachdem Azure AD B2C das Zugriffstoken vom OAuth2-Identitätsanbieter erhalten hat, ruft es den Benutzerinformationsendpunkt auf. Der Benutzerinformationsendpunkt, auch bekannt als Anspruchsendpunkt, dient zum Abrufen von Daten über den authentifizierten Benutzer. Azure AD B2C verwendet Bearer-Token-Authentifizierung zur Authentifizierung gegenüber dem Benutzerinformationsendpunkt des Identitätsanbieters. Das Bearer-Token ist das Zugriffstoken, das Azure AD B2C vom Endpunkt des Identitätsanbieters /token erhält.

Die Anforderung an den Benutzerinformationsendpunkt lautet immer HTTP GET. Das Zugriffstoken wird in einem Abfragezeichenfolgenparameter mit dem Namen access_token gesendet. Die folgende HTTP-Anforderung zeigt einen Aufruf des Benutzerinformationsendpunkts mit dem Zugriffstoken im Abfragezeichenfolgenparameter.

GET /oauth2/claims?access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5... 

In der folgenden Tabelle sind die Metadaten des Endpunkts für Benutzerinformationen aufgeführt.

Attribut Erforderlich BESCHREIBUNG
ClaimsEndpoint Ja Die URL des Endpunkts für Benutzerinformationen. Beispiel: https://api.linkedin.com/v2/me.
ClaimsEndpointAccessTokenName Nein Der Name des Parameters mit der Abfragezeichenfolge für das Zugriffstoken. Standardwert. access_token.
ClaimsEndpointFormatName Nein Der Name des Formatparameters für die Abfragezeichenfolge. Sie können im LinkedIn-Anspruchsendpunkt https://api.linkedin.com/v1/people/~?format=json beispielsweise als Namen format festlegen.
ClaimsEndpointFormat Nein Der Wert des der Formatparameters für die Abfragezeichenfolge. Sie können im LinkedIn-Anspruchsendpunkt https://api.linkedin.com/v1/people/~?format=json beispielsweise als Wert json festlegen.
BearerTokenTransmissionMethod Nein Gibt an, wie das Token gesendet wird. Die Standardmethode ist eine Abfragezeichenfolge. Um das Token als Anforderungsheader zu senden, legen Sie es auf AuthorizationHeader fest.
ExtraParamsInClaimsEndpointRequest Nein Enthält die zusätzlichen Parameter, die in der ClaimsEndpoint-Anforderung von einigen Identitätsanbietern zurückgegeben werden können. Mehrere Parameternamen sollten mit einem Escapezeichen versehen und durch ein Komma (,) voneinander getrennt werden.

Der Name des Parameters mit der Abfragezeichenfolge für das Zugriffstoken.

Der Benutzerinformationsendpunkt erfordert möglicherweise, dass das Zugriffstoken in einem bestimmten Abfragezeichenfolgenparameter gesendet wird. Um den Namen des Query-String-Parameters, der das Zugriffstoken enthält, zu ändern, verwenden Sie die Metadaten ClaimsEndpointAccessTokenName. Im folgenden Beispiel wird der Abfragezeichenfolgenparameter des Zugriffstokens auf token festgelegt.

<Item Key="ClaimsEndpoint">https://contoso.com/oauth2/claims</Item>
<Item Key="ClaimsEndpointAccessTokenName">token</Item>

Der folgende HTTP-Aufruf veranschaulicht einen Aufruf an den Benutzerinformationsendpunkt mit ClaimsEndpointAccessTokenName auf token gesetzt:

GET /oauth2/claims?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5...

Konfigurieren des Anspruchsaustauschvorgangs

Mit ClaimsEndpointFormatName und ClaimsEndpointFormat können Sie einen Key-Value-Paar-Abfrage-String-Parameter an den User-Info-Endpunkt senden. Im folgenden Beispiel wird ein Abfragezeichenfolgenparameter mit dem Namen format und dem Wert json konfiguriert.

<Item Key="ClaimsEndpoint">https://contoso.com/oauth2/claims</Item>
<Item Key="ClaimsEndpointFormatName">format</Item>
<Item Key="ClaimsEndpointFormat">json</Item>

Die folgende HTTP-Anforderung veranschaulicht einen Aufruf des Benutzerinformationsendpunkts mit den Konfigurationen ClaimsEndpointFormatName und ClaimsEndpointFormat.

GET /oauth2/claims?format=json&access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5...

Konfigurieren Sie das Übertragungsverfahren für Bearertoken

Standardmäßig wird das Zugriffstoken über einen Query-String-Parameter an den Benutzerinformationsendpunkt des Identitätsanbieters gesendet. Um das Token im HTTP-Header Authorization zu senden, setzen Sie BearerTokenTransmissionMethod Metadaten auf AuthorizationHeader.

<Item Key="ClaimsEndpoint">https://contoso.com/oauth2/claims</Item>
<Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>

Die folgende HTTP-Anforderung zeigt, wie das Zugriffstoken übergeben wird, wenn BearerTokenTransmissionMethod auf AuthorizationHeader gesetzt wird.

GET /oauth2/claims

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5...

Parameter weitergeben, die vom Token-Endpunkt zurückgegeben wurden

Einige Identitätsanbieter verlangen, dass zusätzliche Parameter, die vom Token-Endpunkt zurückgegeben werden, an den Benutzerinformations-Endpunkt übergeben werden. Beispielsweise enthält die Antwort vom Token-Endpunkt einen Parameter namens resource, der ein obligatorischer Parameter des Benutzerinformations-Endpunkts ist (neben dem Zugriffstoken). Verwenden Sie die ExtraParamsInClaimsEndpointRequest Metadaten, um zusätzliche Parameter anzugeben, die übergeben werden müssen. Mehrere Parameternamen sollten mit einem Escapezeichen versehen und durch ein Komma (,) voneinander getrennt werden.

Das folgende JSON zeigt eine JSON-Nutzlast, die vom Token-Endpunkt mit einem Parameter namens resource zurückgegeben wird.

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5...",
    "token_type": "Bearer",
    "not_before": 1549647431,
    "expires_in": 960000,
    "resource": "f2a76e08-93f2-4350-833c-965c02483b11"
}

Um den Parameter resource an den Benutzerinformationsendpunkt zu übergeben, fügen Sie die folgenden Metadaten hinzu:

<Item Key="ExtraParamsInClaimsEndpointRequest">resource</Item>

Die folgende HTTP-Anforderung zeigt, wie der Parameter resource an den Benutzerinformationsendpunkt übergeben wird.

GET /oauth2/claims?resource=f2a76e08-93f2-4350-833c-965c02483b11&access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5...

Endpunkt Sitzung beenden

Um den Benutzer von der Anwendung abzumelden, leiten Sie ihn an den Azure AD B2C-Abmeldeendpunkt (sowohl für OAuth2 als auch für OpenID Connect) oder senden Sie eine LogoutRequest (für SAML). Azure AD B2C löscht die Sitzung des Benutzers aus dem Browser. Bei einer Abmeldeanforderung versucht Azure AD B2C, sich von allen föderierten Identitätsanbietern abzumelden, über die sich der Benutzer möglicherweise angemeldet hat. Die Sign-out-URI des OAuth2-Identitätsanbieters wird in den end_session_endpoint-Metadaten konfiguriert. Wenn sich der Benutzer über Azure AD B2C von Ihrer Anwendung abmeldet, wird ein versteckter Iframe erstellt, der die end_session_endpoint auf seiner Azure AD B2C-Abmeldeseite aufruft.

In der folgenden Tabelle sind die Metadaten des Endpunkts für Benutzerinformationen aufgeführt.

Attribut Erforderlich BESCHREIBUNG
end_session_endpoint Ja Die URL des Endpunkts zum Beenden der Sitzung nach RFC 6749.
SingleLogoutEnabled Nein Gibt an, ob das technische Profil bei der Anmeldung versucht, sich beim Verbundidentitätsanbieter abzumelden. Weitere Informationen finden Sie unter Abmelden von der Azure AD B2C-Sitzung. Mögliche Werte: true (Standard) oder false.

Generische OAuth2-Metadaten

In der folgenden Tabelle sind die generischen Metadaten des OAuth2-Identitätsanbieters aufgeführt. Die Metadaten beschreiben, wie das technische OAuth2-Profil die Token-Validierung handhabt, die Ansprüche abruft und auf Fehlermeldungen reagiert.

Attribut Erforderlich BESCHREIBUNG
IdTokenAudience Nein Die Zielgruppe von id_token. Wenn eine Angabe erfolgt, überprüft Azure AD B2C, ob das Token in einem Anspruch, der vom Identitätsanbieter zurückgegeben wurde, enthalten und mit dem angegebenen Token identisch ist.
ProviderName Nein Der Name des Identitätsanbieters.
ResponseErrorCodeParamName Nein Der Name des Parameters mit der Fehlermeldung, die über HTTP 200 (OK) zurückgegeben wurde.
IncludeClaimResolvingInClaimsHandling   Nein Gibt bei Eingabe- und Ausgabeansprüchen an, ob die Anspruchsauflösung im technischen Profil enthalten ist. Mögliche Werte sind true oder false (Standardwert). Wenn Sie im technischen Profil eine Anspruchsauflösung verwenden möchten, legen Sie für diese Einstellung den Wert true fest.
ResolveJsonPathsInJsonTokens Nein Gibt an, ob das technische Profil JSON-Pfade auflöst. Mögliche Werte sind true oder false (Standardwert). Verwenden Sie diese Metadaten, um Daten aus einem geschachtelten JSON-Element zu lesen. Legen Sie in einem Ausgabeanspruch (OutputClaim) den Partneranspruchstyp (PartnerClaimType) auf das auszugebende JSON-Pfadelement fest. Beispiel: firstName.localized oder data[0].to[0].email

Kryptografische Schlüssel

Das CryptographicKeys-Element enthält das folgende Attribut:

attribute Erforderlich BESCHREIBUNG
client_secret Ja Der geheime Clientschlüssel der Anwendung des Identitätsanbieters. Der kryptografische Schlüssel ist nur erforderlich, wenn die response_type-Metadaten auf code festgelegt sind. Azure AD B2C führt in diesem Fall einen weiteren Aufruf zum Austauschen des Autorisierungscode gegen ein Zugriffstoken durch. Wenn die Metadaten auf id_token festgelegt wurden, können Sie den kryptografischen Schlüssel weglassen.
assertion_signing_key No Wenn die token_endpoint_auth_method-Metadaten auf private_key_jwt gesetzt sind, geben Sie ein X509-Zertifikat an, das zum Signieren des JWT-Schlüssels verwendet wird. Dieser Schlüssel sollte Ihnen vom OAuth2-Identitätsanbieter zur Verfügung gestellt werden.

Umleitungs-URI

Wenn Sie den Umleitungs-URI Ihres Identitätsanbieters konfigurieren, geben Sie https://{tenant-name}.b2clogin.com/{tenant-name}.onmicrosoft.com/oauth2/authresp an. Ersetzen Sie {tenant-name} durch den Namen Ihres Mandanten (z. B. „contosob2c“). Der Umleitungs-URI muss klein geschrieben sein.

Nächste Schritte