Übersicht über Token in Azure Active Directory B2COverview of tokens in Azure Active Directory B2C

Hinweis

In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert.In Azure Active Directory B2C, custom policies are designed primarily to address complex scenarios. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows.For most scenarios, we recommend that you use built-in user flows.

Azure Active Directory B2C (Azure AD B2C) stellt bei der Verarbeitung der einzelnen Authentifizierungsflüsse verschiedene Arten von Sicherheitstoken aus.Azure Active Directory B2C (Azure AD B2C) emits several types of security tokens as it processes each authentication flow. In diesem Dokument sind das Format, die Sicherheitsmerkmale und der Inhalt aller Tokentypen beschrieben.This document describes the format, security characteristics, and contents of each type of token.

TokentypenToken types

Azure AD B2C unterstützt das OAuth 2.0-Protokoll und das OpenID Connect-Protokoll, die Token für die Authentifizierung und den sicheren Zugriff auf Ressourcen nutzen.Azure AD B2C supports the OAuth 2.0 and OpenID Connect protocols, which makes use of tokens for authentication and secure access to resources. Alle in Azure AD B2C verwendeten Token sind JSON Web Tokens (JWTs) und enthalten Assertionen von Informationen zum Bearer sowie zum Antragsteller des Tokens.All tokens used in Azure AD B2C are JSON web tokens (JWTs) that contain assertions of information about the bearer and the subject of the token.

Bei der Kommunikation mit Azure AD B2C werden folgende Token verwendet:The following tokens are used in communication with Azure AD B2C:

  • ID-Token: Ein JWT mit Ansprüchen, die Sie zur Identifizierung von Benutzern in Ihrer Anwendung verwenden können.ID token - A JWT that contains claims that you can use to identify users in your application. Dieses Token wird sicher in HTTP-Anforderungen für die Kommunikation zwischen zwei Komponenten der gleichen Anwendung oder des gleichen Diensts gesendet.This token is securely sent in HTTP requests for communication between two components of the same application or service. Sie können die Ansprüche nach Bedarf in einem ID-Token verwenden.You can use the claims in an ID token as you see fit. Im Allgemeinen werden sie in einer Anwendung zum Anzeigen von Kontoinformationen oder zum Treffen von Entscheidungen hinsichtlich der Zugriffssteuerung genutzt.They are commonly used to display account information or to make access control decisions in an application. ID-Token sind zwar signiert, aber nicht verschlüsselt.ID tokens are signed, but they are not encrypted. Wenn Ihre Anwendung oder API ein ID-Token empfängt, muss sie die Signatur überprüfen, um die Authentizität des Tokens nachzuweisen.When your application or API receives an ID token, it must validate the signature to prove that the token is authentic. Ihre Anwendung oder API muss außerdem einige Ansprüche im Token überprüfen, um seine Gültigkeit zu belegen.Your application or API must also validate a few claims in the token to prove that it's valid. Je nach Szenarioanforderungen können die von einer Anwendung überprüften Ansprüche variieren. Einige allgemeine Anspruchsüberprüfungen muss Ihre Anwendung aber in jedem Szenario durchführen.Depending on the scenario requirements, the claims validated by an application can vary, but your application must perform some common claim validations in every scenario.
  • Zugriffstoken: Ein JWT mit Ansprüchen, die Sie zur Identifizierung der erteilten Berechtigungen für Ihre APIs verwenden können.Access token - A JWT that contains claims that you can use to identify the granted permissions to your APIs. Zugriffstoken sind zwar signiert, aber nicht verschlüsselt.Access tokens are signed, but they aren't encrypted. Zugriffstoken dienen zum Gewähren von Zugriff auf APIs und Ressourcenserver.Access tokens are used to provide access to APIs and resource servers. Wenn Ihre API ein Zugriffstoken empfängt, muss sie die Signatur überprüfen, um die Authentizität des Tokens nachzuweisen.When your API receives an access token, it must validate the signature to prove that the token is authentic. Ihre API muss außerdem einige Ansprüche im Token überprüfen, um seine Gültigkeit zu belegen.Your API must also validate a few claims in the token to prove that it is valid. Je nach Szenarioanforderungen können die von einer Anwendung überprüften Ansprüche variieren. Einige allgemeine Anspruchsüberprüfungen muss Ihre Anwendung aber in jedem Szenario durchführen.Depending on the scenario requirements, the claims validated by an application can vary, but your application must perform some common claim validations in every scenario.
  • Aktualisierungstoken: Aktualisierungstoken dienen zum Abrufen neuer ID-Token und Zugriffstoken in einem OAuth 2.0-Ablauf.Refresh token - Refresh tokens are used to acquire new ID tokens and access tokens in an OAuth 2.0 flow. Sie ermöglichen Ihrer Anwendung langfristig Zugriff auf Ressourcen im Auftrag von Benutzern, ohne dass eine Interaktion mit den Benutzern erforderlich ist.They provide your application with long-term access to resources on behalf of users without requiring interaction with those users. Der Inhalt von Aktualisierungstoken ist für Ihre Anwendung nicht zugänglich.Refresh tokens are opaque to your application. Sie werden von Azure AD B2C ausgestellt und können nur von Azure AD B2C untersucht und interpretiert werden.They are issued by Azure AD B2C and can be inspected and interpreted only by Azure AD B2C. Obwohl sie lange gültig sind, darf beim Schreiben Ihrer Anwendung nicht von der bestimmten Gültigkeitsdauer eines Aktualisierungstokens ausgegangen werden.They are long-lived, but your application shouldn't be written with the expectation that a refresh token will last for a specific period of time. Aktualisierungstoken können jederzeit aus unterschiedlichen Gründen ungültig werden.Refresh tokens can be invalidated at any moment for a variety of reasons. Um Gültigkeit eines Aktualisierungstokens zu überprüfen, muss Ihre Anwendung versuchen, das Token einzulösen, indem sie eine Tokenanforderung an Azure AD B2C sendet.The only way for your application to know if a refresh token is valid is to attempt to redeem it by making a token request to Azure AD B2C. Wenn Sie ein Aktualisierungstoken für ein neues Token einlösen, erhalten Sie in der Tokenantwort ein neues Aktualisierungstoken.When you redeem a refresh token for a new token, you receive a new refresh token in the token response. Speichern Sie das neue Aktualisierungstoken.Save the new refresh token. Es ersetzt das Aktualisierungstoken, das zuvor in der Anforderung verwendet wurde.It replaces the refresh token that you previously used in the request. Dadurch wird sichergestellt, dass Ihre Aktualisierungstoken möglichst lange gültig bleiben.This action helps guarantee that your refresh tokens remain valid for as long as possible. Beachten Sie, dass bei Single-Page-Webanwendungen, die den Autorisierungscodeflow mit PKCE verwenden, das Aktualisierungstoken immer eine Lebensdauer von 24 Stunden hat.Note that single-page applications using the authorization code flow with PKCE always have a refresh token lifetime of 24 hours. Weitere Informationen zu Sicherheitsaspekten von Aktualisierungstoken im BrowserLearn more about the security implications of refresh tokens in the browser.

EndpunkteEndpoints

Eine registrierte Anwendung empfängt Token und kommuniziert mit Azure AD B2C, indem sie Anforderungen an folgende Endpunkte sendet:A registered application receives tokens and communicates with Azure AD B2C by sending requests to these endpoints:

  • https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize
  • https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/token

Sicherheitstoken, die Ihre Anwendung von Azure AD B2C empfängt, können von den Endpunkten /authorize oder /token stammen.Security tokens that your application receives from Azure AD B2C can come from the /authorize or /token endpoints. Wenn ID-Token vom Endpunkt /authorize bezogen werden, kommt der implizite Fluss zur Anwendung. Dieser wird häufig für Benutzer verwendet, die sich bei JavaScript-basierten Webanwendungen anmelden.When ID tokens are acquired from the /authorize endpoint, it's done using the implicit flow, which is often used for users signing in to JavaScript-based web applications. Wenn ID-Token vom Endpunkt /token bezogen werden, kommt der Autorisierungscodefluss zur Anwendung, bei dem das Token dem Browser verborgen bleibt.When ID tokens are acquired from the /token endpoint, it's done using the authorization code flow, which keeps the token hidden from the browser.

AnsprücheClaims

Bei der Verwendung von Azure AD B2C verfügen Sie über eine präzise Kontrolle über den Inhalt Ihrer Token.When you use Azure AD B2C, you have fine-grained control over the content of your tokens. Sie können Benutzerflows und benutzerdefinierte Richtlinien verwenden, um bestimmte Gruppen von Benutzerdaten in Ansprüchen zu senden, die für Ihre Anwendung erforderlich sind.You can configure user flows and custom policies to send certain sets of user data in claims that are required for your application. Die Ansprüche können Standardeigenschaften wie displayName und emailAddress enthalten.These claims can include standard properties such as displayName and emailAddress. Diese können von Ihren Anwendungen genutzt werden, um Benutzer und Anforderungen sicher zu authentifizieren.Your applications can use these claims to securely authenticate users and requests.

Die Ansprüche in ID-Token werden in keiner bestimmten Reihenfolge zurückgegeben.The claims in ID tokens are not returned in any particular order. Es können jederzeit neue Ansprüche in ID-Token eingeführt werden.New claims can be introduced in ID tokens at any time. Ihre Anwendung darf durch die Einführung neuer Ansprüche nicht beschädigt werden.Your application shouldn't break as new claims are introduced. Sie können auch benutzerdefinierte Attribute in Ihre Ansprüche einschließen.You can also include custom user attributes in your claims.

Die folgende Tabelle enthält die Ansprüche, die in von Azure AD B2C ausgestellten ID-Token und Zugriffstoken zu erwarten sind:The following table lists the claims that you can expect in ID tokens and access tokens issued by Azure AD B2C.

NameName AnspruchClaim BeispielwertExample value BESCHREIBUNGDescription
ZielgruppeAudience aud 90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 Identifiziert den vorgesehenen Empfänger des Tokens.Identifies the intended recipient of the token. Für Azure AD B2C ist die Zielgruppe die Anwendungs-ID.For Azure AD B2C, the audience is the application ID. Ihre Anwendung muss diesen Wert überprüfen und das Token ablehnen, wenn er nicht übereinstimmt.Your application should validate this value and reject the token if it doesn't match. Die Zielgruppe ist synonym mit der Ressource.Audience is synonymous with resource.
Issuer (Aussteller)Issuer iss https://<tenant-name>.b2clogin.com/775527ff-9a37-4307-8b3d-cc311f58d925/v2.0/ Identifiziert den Sicherheitstokendienst (Security Token Service, STS), der das Token erstellt und zurückgibt.Identifies the security token service (STS) that constructs and returns the token. Er identifiziert auch das Verzeichnis, in dem der Benutzer authentifiziert wurde.It also identifies the directory in which the user was authenticated. Ihre Anwendung muss den Ausstelleranspruch überprüfen, um sicherzustellen, dass das Token vom passenden Endpunkt stammt.Your application should validate the issuer claim to make sure that the token came from the appropriate endpoint.
Ausgestellt umIssued at iat 1438535543 Die Zeit, zu der das Token ausgestellt wurde (dargestellt als Epochenzeit)The time at which the token was issued, represented in epoch time.
AblaufzeitExpiration time exp 1438539443 Die Zeit, zu der das Token ungültig wird (dargestellt als Epochenzeit).The time at which the token becomes invalid, represented in epoch time. Ihre Anwendung muss anhand dieses Anspruchs die Gültigkeit der Tokenlebensdauer überprüfen.Your application should use this claim to verify the validity of the token lifetime.
Nicht vorNot before nbf 1438535543 Die Zeit, zu der das Token gültig wird (dargestellt als Epochenzeit).The time at which the token becomes valid, represented in epoch time. Diese Zeit entspricht in der Regel dem Ausstellungszeitpunkt des Tokens.This time is usually the same as the time the token was issued. Ihre Anwendung muss anhand dieses Anspruchs die Gültigkeit der Tokenlebensdauer überprüfen.Your application should use this claim to verify the validity of the token lifetime.
VersionVersion ver 1.0 Die Version des ID-Tokens, die in Azure AD B2C definiert wurde.The version of the ID token, as defined by Azure AD B2C.
CodehashCode hash c_hash SGCPtt01wxwfgnYZy2VJtQ Ein Codehash ist nur in einem ID-Token enthalten, wenn das Token zusammen mit einem OAuth 2.0-Autorisierungscode ausgestellt wird.A code hash included in an ID token only when the token is issued together with an OAuth 2.0 authorization code. Mithilfe eines Codehashs kann die Authentizität eines Autorisierungscodes überprüft werden.A code hash can be used to validate the authenticity of an authorization code. Weitere Informationen zum Ausführen dieser Validierung finden Sie in der OpenID Connect-Spezifikation.For more information about how to perform this validation, see the OpenID Connect specification.
ZugriffstokenhashAccess token hash at_hash SGCPtt01wxwfgnYZy2VJtQ Ein Zugriffstokenhash ist nur in einem ID-Token enthalten, wenn das Token zusammen mit einem OAuth 2.0-Zugriffstoken ausgestellt wird.An access token hash included in an ID token only when the token is issued together with an OAuth 2.0 access token. Mithilfe des Zugriffstokenhashs kann die Authentizität eines Zugriffstokens überprüft werden.An access token hash can be used to validate the authenticity of an access token. Weitere Informationen zum Ausführen dieser Validierung finden Sie in der OpenID Connect-Spezifikation.For more information about how to perform this validation, see the OpenID Connect specification
NonceNonce nonce 12345 Eine Nonce ist eine Strategie zum Abwehren von Tokenwiedergabeangriffe.A nonce is a strategy used to mitigate token replay attacks. Ihre Anwendung kann eine Nonce in einer Autorisierungsanforderung mithilfe des Abfrageparameters nonce angeben.Your application can specify a nonce in an authorization request by using the nonce query parameter. Der in der Anforderung angegebene Wert wird nur im Anspruch nonce eines ID-Tokens unverändert ausgegeben.The value you provide in the request is emitted unmodified in the nonce claim of an ID token only. Mithilfe dieses Anspruchs kann Ihre Anwendung den Wert anhand des in der Anforderung angegebenen Werts überprüfen.This claim allows your application to verify the value against the value specified on the request. Ihre Anwendung muss diese Überprüfung im Rahmen der ID-Tokenüberprüfung durchführen.Your application should perform this validation during the ID token validation process.
SubjectSubject sub 884408e1-2918-4cz0-b12d-3aa027d7563b Der Prinzipal, für den das Token Informationen bestätigt (beispielsweise der Benutzer einer Anwendung).The principal about which the token asserts information, such as the user of an application. Dieser Wert ist unveränderlich und kann nicht erneut zugewiesen oder wiederverwendet werden.This value is immutable and cannot be reassigned or reused. Er kann für die sichere Durchführung von Autorisierungsüberprüfungen verwendet werden, z.B. wenn das Token verwendet wird, um auf eine Ressource zuzugreifen.It can be used to perform authorization checks safely, such as when the token is used to access a resource. Der Anspruch „Antragsteller“ wird standardmäßig mit der Objekt-ID des Benutzers im Verzeichnis aufgefüllt.By default, the subject claim is populated with the object ID of the user in the directory.
Klassenreferenz des AnwendungskontextsAuthentication context class reference acr Nicht verfügbarNot applicable Wird nur mit älteren Richtlinien verwendet.Used only with older policies.
Framework-VertrauensrichtlinieTrust framework policy tfp b2c_1_signupsignin1 Der Name der Richtlinie, die zum Abrufen des ID-Tokens verwendet wurde.The name of the policy that was used to acquire the ID token.
AuthentifizierungszeitAuthentication time auth_time 1438535543 Die Zeit, zu der ein Benutzer seine Anmeldeinformationen zuletzt eingegeben hat (dargestellt als Epochenzeit).The time at which a user last entered credentials, represented in epoch time. Dabei spielt es keine Rolle, ob es sich bei dieser Authentifizierung um eine neue Anmeldung, um eine SSO-Sitzung (Single Sign-On, einmaliges Anmelden) oder um einen anderen Anmeldetyp handelt.There is no discrimination between that authentication being a fresh sign-in, a single sign-on (SSO) session, or another sign-in type. auth_time ist der letzte Zeitpunkt, zu dem die Anwendung (oder der Benutzer) einen Authentifizierungsversuch für Azure AD B2C initiiert hat.The auth_time is the last time the application (or user) initiated an authentication attempt against Azure AD B2C. Die verwendete Authentifizierungsmethode wird nicht berücksichtigt.The method used to authenticate is not differentiated.
ScopeScope scp Read Die Berechtigungen, die der Ressource für ein Zugriffstoken gewährt werden.The permissions granted to the resource for an access token. Mehrere gewährte Berechtigungen werden jeweils durch ein Leerzeichen voneinander getrennt.Multiple granted permissions are separated by a space.
Autorisierte ParteiAuthorized Party azp 975251ed-e4f5-4efd-abcb-5f1a8f566ab7 Die Anwendungs-ID der Clientanwendung, die die Anforderung initiiert hat.The application ID of the client application that initiated the request.

KonfigurationConfiguration

Die folgenden Eigenschaften werden zum Verwalten der Gültigkeitsdauer von Sicherheitstoken verwendet, die von Azure AD B2C ausgegeben werden:The following properties are used to manage lifetimes of security tokens emitted by Azure AD B2C:

  • Lebensdauer von Zugriffs- und ID-Token (Minuten) : Die Gültigkeitsdauer des OAuth 2.0-Bearertokens, das für den Zugriff auf eine geschützte Ressource verwendet wirdAccess & ID token lifetimes (minutes) - The lifetime of the OAuth 2.0 bearer token used to gain access to a protected resource. Der Standardwert ist 60 Sekunden.The default is 60 minutes. Der Mindestwert ist fünf Minuten (einschließlich).The minimum (inclusive) is 5 minutes. Der Höchstwert ist 1.440 Minuten (einschließlich).The maximum (inclusive) is 1440 minutes.

  • Lebensdauer des Aktualisierungstokens (Tage): Die maximale Dauer, während der ein Aktualisierungstoken zum Anfordern eines neuen Zugriffs- oder ID-Tokens verwendet werden kann.Refresh token lifetime (days) - The maximum time period before which a refresh token can be used to acquire a new access or ID token. Der Zeitraum deckt auch das Abrufen eines neuen Aktualisierungstokens ab, falls Ihrer Anwendung der Bereich offline_access gewährt wurde.The time period also covers acquiring a new refresh token if your application has been granted the offline_access scope. Der Standardwert ist 14 Tage.The default is 14 days. Der Mindestwert ist ein Tag (einschließlich).The minimum (inclusive) is one day. Der Höchstwert ist 90 Tage (einschließlich).The maximum (inclusive) is 90 days.

  • Lebensdauer für gleitendes Fenster des Aktualisierungstokens (Tage): Nach Ablauf dieses Zeitraums muss der Benutzer sich erneut authentifizieren (unabhängig von der Gültigkeitsdauer des zuletzt von der Anwendung abgerufenen Aktualisierungstokens).Refresh token sliding window lifetime (days) - After this time period elapses the user is forced to reauthenticate, irrespective of the validity period of the most recent refresh token acquired by the application. Es kann nur bereitgestellt werden, wenn die Option auf Begrenzt festgelegt ist.It can only be provided if the switch is set to Bounded. Sein Wert muss mindestens dem Wert Lebensdauer des Aktualisierungstokens (Tage) entsprechen.It needs to be greater than or equal to the Refresh token lifetime (days) value. Wenn die Option auf Unbegrenzt festgelegt ist, können Sie keinen bestimmten Wert angeben.If the switch is set to Unbounded, you cannot provide a specific value. Der Standardwert ist 90 Tage.The default is 90 days. Der Mindestwert ist ein Tag (einschließlich).The minimum (inclusive) is one day. Der Höchstwert ist 365 Tage (einschließlich).The maximum (inclusive) is 365 days.

Mit diesen Eigenschaften werden die folgenden Anwendungsfälle ermöglicht:The following use cases are enabled using these properties:

  • Ermöglichen Sie einem Benutzer, unbegrenzt bei einer mobilen Anwendung angemeldet zu bleiben, solange er ständig in der Anwendung aktiv ist.Allow a user to stay signed in to a mobile application indefinitely, as long as the user is continually active on the application. Sie können die Option Lebensdauer für gleitendes Fenster des Aktualisierungstokens (Tage) in Ihrem Benutzerflow für die Anmeldung auf Unbegrenzt festlegen.You can set Refresh token sliding window lifetime (days) to Unbounded in your sign-in user flow.
  • Erfüllen Sie die Sicherheits- und Complianceanforderungen Ihrer Branche durch Festlegung der entsprechenden Zugriffstoken-Gültigkeitsdauer.Meet your industry's security and compliance requirements by setting the appropriate access token lifetimes.

Diese Einstellungen sind für Benutzerflows zur Kennwortzurücksetzung nicht verfügbar.These settings are not available for password reset user flows.

KompatibilitätCompatibility

Die folgenden Eigenschaften werden zum Verwalten der Tokenkompatibilität verwendet:The following properties are used to manage token compatibility:

  • Ausstelleranspruch (iss) : Diese Eigenschaft gibt den Azure AD B2C-Mandanten an, der das Token ausgestellt hat.Issuer (iss) claim - This property identifies the Azure AD B2C tenant that issued the token. Standardwert: https://<domain>/{B2C tenant GUID}/v2.0/.The default value is https://<domain>/{B2C tenant GUID}/v2.0/. Der Wert https://<domain>/tfp/{B2C tenant GUID}/{Policy ID}/v2.0/ enthält IDs für den Azure AD B2C-Mandanten und den in der Tokenanforderung verwendeten Benutzerflow.The value of https://<domain>/tfp/{B2C tenant GUID}/{Policy ID}/v2.0/ includes IDs for both the Azure AD B2C tenant and the user flow that was used in the token request. Verwenden Sie diesen Wert, wenn Ihre Anwendung oder Bibliothek Azure AD B2C benötigt, um die OpenID Connect Discovery 1.0-Spezifikationen zu erfüllen.If your application or library needs Azure AD B2C to be compliant with the OpenID Connect Discovery 1.0 spec, use this value.

  • Antragstelleranspruch (sub) : Diese Eigenschaft gibt die Entität an, für die das Token Informationen bestätigt.Subject (sub) claim - This property identifies the entity for which the token asserts information. Der Standardwert ist ObjectID. Dieser Wert füllt den Anspruch sub im Token mit der Objekt-ID des Benutzers auf.The default value is ObjectID, which populates the sub claim in the token with the object ID of the user. Der Wert Nicht unterstützt wird nur zur Abwärtskompatibilität angegeben.The value of Not supported is only provided for backward-compatibility. Es empfiehlt sich, baldmöglichst zu ObjectID zu wechseln.It's recommended that you switch to ObjectID as soon as you are able to.

  • Anspruch zur Darstellung der Richtlinien-ID: Mit dieser Eigenschaft wird der Anspruchstyp angegeben, in den der in der Tokenanforderung verwendete Richtlinienname eingefügt wird.Claim representing policy ID - This property identifies the claim type into which the policy name used in the token request is populated. Standardwert: tfp.The default value is tfp. Der Wert acr wird nur zur Abwärtskompatibilität angegeben.The value of acr is only provided for backward-compatibility.

Pass-ThroughPass-through

Zu Beginn einer User Journey erhält Azure AD B2C ein Zugriffstoken von einem Identitätsanbieter.When a user journey starts, Azure AD B2C receives an access token from an identity provider. Azure AD B2C verwendet dieses Token, um Informationen zum Benutzer abzurufen.Azure AD B2C uses that token to retrieve information about the user. Sie aktivieren einen Anspruch in Ihrem Benutzerflow, um das Token an die Anwendungen zu übergeben, die Sie in Azure AD B2C registrieren.You enable a claim in your user flow to pass the token through to the applications that you register in Azure AD B2C. Ihre Anwendung muss einen empfohlenen Benutzerflow verwenden, um von der Übergabe des Tokens als Anspruch profitieren zu können.Your application must be using a recommended user flow to take advantage of passing the token as a claim.

Azure AD B2C unterstützt derzeit nur die Übergabe des Zugriffstokens für OAuth 2.0-Identitätsanbieter. Hierzu zählen unter anderem Facebook und Google.Azure AD B2C currently only supports passing the access token of OAuth 2.0 identity providers, which include Facebook and Google. Für alle weiteren Identitätsanbieter wird ein leerer Anspruch zurückgegeben.For all other identity providers, the claim is returned blank.

ÜberprüfenValidation

Bei der Überprüfung eines Tokens muss Ihre Anwendung sowohl die Signatur als auch die Ansprüche des Tokens überprüfen.To validate a token, your application should check both the signature and claims of the token. Für die Überprüfung von JWTs sind je nach gewünschter Sprache zahlreiche Open-Source-Bibliotheken verfügbar.Many open-source libraries are available for validating JWTs, depending on your preferred language. Es empfiehlt sich, diese Optionen zu erkunden, anstatt eine eigene Validierungslogik zu implementieren.It's recommended that you explore those options rather than implement your own validation logic.

Überprüfen der SignaturValidate signature

Ein JWT enthält drei Segmente: einen Header, einen Textteil und eine Signatur.A JWT contains three segments, a header, a body, and a signature. Mit dem Signatursegment kann die Authentizität des Tokens überprüft werden, sodass es für Ihre Anwendung als vertrauenswürdig eingestuft werden kann.The signature segment can be used to validate the authenticity of the token so that it can be trusted by your application. Azure AD B2C-Token werden mit branchenüblichen asymmetrischen Verschlüsselungsalgorithmen signiert, z.B. RSA 256.Azure AD B2C tokens are signed by using industry-standard asymmetric encryption algorithms, such as RSA 256.

Der Header des Tokens enthält Informationen zum Schlüssel und zur Verschlüsselungsmethode, die zum Signieren des Tokens verwendet wird:The header of the token contains information about the key and encryption method used to sign the token:

{
        "typ": "JWT",
        "alg": "RS256",
        "kid": "GvnPApfWMdLRi8PDmisFn7bprKg"
}

Der Wert des Anspruchs alg ist der Algorithmus, mit dem das Token signiert wurde.The value of the alg claim is the algorithm that was used to sign the token. Der Wert des Anspruchs kid ist der öffentliche Schlüssel, mit dem das Token signiert wurde.The value of the kid claim is the public key that was used to sign the token. Azure AD B2C kann ein Token jederzeit mithilfe eines beliebigen Paars aus öffentlichen und privaten Schlüsseln aus einer Gruppe signieren.At any given time, Azure AD B2C can sign a token by using any one of a set of public-private key pairs. Die möglichen Schlüsselgruppen werden von Azure AD B2C regelmäßig rotiert.Azure AD B2C rotates the possible set of keys periodically. Ihre Anwendung muss daher über eine automatische Verarbeitung dieser Schlüsseländerungen verfügen.Your application should be written to handle those key changes automatically. Die von Azure AD B2C verwendeten öffentlichen Schlüssel müssen alle 24 Stunden auf Änderungen überprüft werden.A reasonable frequency to check for updates to the public keys used by Azure AD B2C is every 24 hours. Um unerwartete Schlüsseländerungen zu behandeln, sollte Ihre Anwendung so geschrieben sein, dass die öffentlichen Schlüssel erneut abgerufen werden, wenn ein unerwarteter kid-Wert empfangen wird.To handle unexpected key changes, your application should be written to re-retrieve the public keys if it receives an unexpected kid value.

Azure AD B2C verfügt über einen OpenID Connect-Metadatenendpunkt.Azure AD B2C has an OpenID Connect metadata endpoint. Über diesen Endpunkt können Anwendungen zur Laufzeit Informationen zu Azure AD B2C anfordern.Using this endpoint, applications can request information about Azure AD B2C at runtime. Diese Informationen umfassen Endpunkte, Tokeninhalte und Token-Signaturschlüssel.This information includes endpoints, token contents, and token signing keys. Ihr Azure AD B2C-Mandant enthält ein JSON-Metadatendokument für jede Richtlinie.Your Azure AD B2C tenant contains a JSON metadata document for each policy. Beim Metadatendokument handelt es sich um ein JSON-Objekt, das zahlreiche nützliche Informationen enthält,The metadata document is a JSON object that contains several useful pieces of information. Die Metadaten enthalten jwks_uri, um den Ort anzugeben, an dem sich die Gruppe von öffentlichen Schlüsseln zum Signieren von Token befinden.The metadata contains jwks_uri, which gives the location of the set of public keys that are used to sign tokens. Dieser Ort ist hier angegeben. Es wird jedoch empfohlen, ihn dynamisch mithilfe des Metadatendokuments abzurufen und dabei jwks_uri zu analysieren:That location is provided here, but it's best to fetch the location dynamically by using the metadata document and parsing jwks_uri:

https://contoso.b2clogin.com/contoso.onmicrosoft.com/b2c_1_signupsignin1/discovery/v2.0/keys

Das JSON-Dokument unter dieser URL enthält alle Informationen zu den zu einem bestimmten Zeitpunkt verwendeten öffentlichen Schlüsseln.The JSON document located at this URL contains all the public key information in use at a particular moment. Ihre App kann mit dem Anspruch kid im JWT-Header auswählen, welcher öffentliche Schlüssel im JSON-Dokument zum Signieren eines bestimmten Tokens verwendet wird.Your app can use the kid claim in the JWT header to select the public key in the JSON document that is used to sign a particular token. Sie kann anschließend die Signaturüberprüfung mithilfe des korrekten öffentlichen Schlüssels und des angegebenen Algorithmus ausführen.It can then perform signature validation by using the correct public key and the indicated algorithm.

Das Metadatendokument für die Richtlinie B2C_1_signupsignin1 im Mandaten contoso.onmicrosoft.com befindet sich hier:The metadata document for the B2C_1_signupsignin1 policy in the contoso.onmicrosoft.com tenant is located at:

https://contoso.b2clogin.com/contoso.onmicrosoft.com/b2c_1_signupsignin1/v2.0/.well-known/openid-configuration

Sie haben zwei Optionen, um zu ermitteln, welche Richtlinie zum Signieren eines Tokens verwendet wurde (und wo die Metadaten angefordert werden können).To determine which policy was used to sign a token (and where to go to request the metadata), you have two options. Zunächst einmal ist der Richtlinienname im Token im tfp-Anspruch (Standard) oder im acr-Anspruch (wie konfiguriert) enthalten.First, the policy name is included in the tfp (default) or acr claim (as configured) in the token. Sie können Ansprüche aus dem Hauptteil des JWT analysieren, indem Sie eine Base64-Decodierung auf den Hauptteil anwenden und die sich ergebende JSON-Zeichenfolge deserialisieren.You can parse claims out of the body of the JWT by base-64 decoding the body and deserializing the JSON string that results. Der Anspruch tfp bzw. acr ist der Name der Richtlinie, die zum Ausstellen des Tokens verwendet wurde.The tfp or acr claim is the name of the policy that was used to issue the token. Die andere Option besteht darin, die Richtlinie beim Übermitteln der Anforderung im Wert des Parameters state zu codieren und später zu decodieren, um die verwendete Richtlinie zu bestimmen.The other option is to encode the policy in the value of the state parameter when you issue the request, and then decode it to determine which policy was used. Beide Methoden sind gültig.Either method is valid.

Die Beschreibung der Signaturüberprüfung geht über den Rahmen dieses Dokuments hinaus.A description of how to perform signature validation is outside the scope of this document. Hilfreiche Informationen zur Tokenvalidierung stehen jedoch in zahlreichen Open-Source-Bibliotheken zur Verfügung.Many open-source libraries are available to help you validate a token.

Überprüfen von AnsprüchenValidate claims

Wenn Ihre Anwendung oder API ein ID-Token empfängt, muss sie auch einige Überprüfungen anhand der Ansprüche im ID-Token durchführen.When your applications or API receives an ID token, it should also perform several checks against the claims in the ID token. Folgende Ansprüche müssen überprüft werden:The following claims should be checked:

  • audience: Hiermit wird überprüft, ob das ID-Token für Ihre Anwendung bestimmt ist.audience - Verifies that the ID token was intended to be given to your application.
  • not before und expiration time: Hiermit wird überprüft, ob das ID-Token abgelaufen ist.not before and expiration time - Verifies that the ID token hasn't expired.
  • issuer: Hiermit wird überprüft, ob das Token von Azure AD B2C für Ihre Anwendung ausgestellt wurde.issuer - Verifies that the token was issued to your application by Azure AD B2C.
  • nonce: Eine Strategie zur Abwehr von Tokenwiedergabeangriffen.nonce - A strategy for token replay attack mitigation.

Eine vollständige Liste mit Validierungen, die von Ihrer Anwendung ausgeführt werden müssen, finden Sie in der OpenID Connect-Spezifikation.For a full list of validations your application should perform, refer to the OpenID Connect specification.

Nächste SchritteNext steps

Weitere Informationen zum Verwenden von Zugriffstoken.Learn more about how to use access tokens.