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 /authorize
weiterleitet. 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 /authorize
Identitä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 json
explizit 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_secret
Base64-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
- Erfahren Sie, wie Sie einen Identitätsanbieter zu Ihrem Azure Active Directory B2C-Tenant hinzufügen