Azure AD B2C: AuthentifizierungsprotokolleAzure AD B2C: Authentication protocols

Azure Active Directory B2C (Azure AD B2C) bietet Identity-as-a-Service (IDaaS) für Ihre Apps durch die Unterstützung zweier gängiger Standardprotokolle: OpenID Connect und OAuth 2.0.Azure Active Directory B2C (Azure AD B2C) provides identity as a service for your apps by supporting two industry standard protocols: OpenID Connect and OAuth 2.0. Auch wenn der Dienst standardkonform ist, kann es feine Unterschiede zwischen zwei Implementierungen dieser Protokolle geben.The service is standards-compliant, but any two implementations of these protocols can have subtle differences.

Die Informationen in diesem Leitfaden sind hilfreich, wenn Sie Code direkt durch Senden und Verarbeiten von HTTP-Anforderungen schreiben, anstatt eine unserer Open Source-Bibliotheken zu nutzen.The information in this guide is useful if you write your code by directly sending and handling HTTP requests, rather than by using an open source library. Es wird empfohlen, diese Seite zu lesen, bevor Sie sich mit den Details der spezifischen Protokolle beschäftigen.We recommend that you read this page before you dive into the details of each specific protocol. Falls Sie bereits mit Azure AD B2C vertraut sind, können Sie direkt zu den Protokollreferenzhandbüchern wechseln.But if you're already familiar with Azure AD B2C, you can go straight to the protocol reference guides.

GrundlagenThe basics

Jede App, die Azure AD B2C verwendet, muss im B2C-Verzeichnis im Azure-Portalregistriert werden.Every app that uses Azure AD B2C needs to be registered in your B2C directory in the Azure portal. Beim App-Registrierungsprozess werden einige Werte gesammelt und der App zugewiesen:The app registration process collects and assigns a few values to your app:

  • Eine Anwendungs-ID , die Ihre App eindeutig identifiziert.An Application ID that uniquely identifies your app.
  • Einen Umleitungs-URI oder Paketbezeichner, der zum Umleiten von Antworten zurück an die App verwendet werden kann.A Redirect URI or package identifier that can be used to direct responses back to your app.
  • Einige andere szenariospezifische Werte.A few other scenario-specific values. Weitere Informationen finden Sie im Abschnitt zum Registrieren Ihrer Anwendung.For more information, learn how to register your application.

Nach dem Registrieren Ihrer App kommuniziert diese mit Azure Active Directory (Azure AD), indem sie Anforderungen an den Endpunkt sendet:After you register your app, it communicates with Azure Active Directory (Azure AD) by sending requests to the endpoint:

https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/token

In fast allen OAuth- und OpenID Connect-Abläufen gibt es beim Austausch vier Beteiligte:In nearly all OAuth and OpenID Connect flows, four parties are involved in the exchange:

Diagramm mit den vier OAuth 2.0-Rollen

  • Der Autorisierungsserver ist der Azure AD-Endpunkt.The authorization server is the Azure AD endpoint. Er kümmert sich um die sichere Verwaltung rund um Benutzerinformationen und Zugriff.It securely handles anything related to user information and access. Zudem verarbeitet er die Vertrauensstellungen zwischen den Parteien in einem Ablauf.It also handles the trust relationships between the parties in a flow. Er ist verantwortlich für das Überprüfen der Identität des Benutzers, das Erteilen und Widerrufen des Zugriffs auf Ressourcen und das Ausstellen von Token.It is responsible for verifying the user's identity, granting and revoking access to resources, and issuing tokens. Er wird auch als Identitätsanbieter bezeichnet.It is also known as the identity provider.

  • Beim Ressourcenbesitzer handelt es sich normalerweise um den Endbenutzer.The resource owner is typically the end user. Diese Person besitzt die Daten und hat die Möglichkeit, Dritten den Zugriff auf die Daten oder die Ressource zu gewähren.It is the party that owns the data, and it has the power to allow third parties to access that data or resource.

  • Der OAuth-Client ist Ihre App.The OAuth client is your app. Sie wird durch die Anwendungs-ID identifiziert.It's identified by its Application ID. Sie ist normalerweise die Komponente, mit der die Endbenutzer interagieren.It's usually the party that end users interact with. Sie fordert auch Token vom Autorisierungsserver an.It also requests tokens from the authorization server. Der Ressourcenbesitzer muss dem Client die Berechtigung für den Zugriff auf die Ressource erteilen.The resource owner must grant the client permission to access the resource.

  • Der Ressourcenserver ist der Ort, an dem die Ressource oder die Daten abgelegt sind.The resource server is where the resource or data resides. Er vertraut auf die sichere Authentifizierung und Autorisierung des OAuth-Clients durch den Autorisierungsserver.It trusts the authorization server to securely authenticate and authorize the OAuth client. Außerdem verwendet er Bearerzugriffstoken, um sicherzustellen, dass der Zugriff auf eine Ressource gewährt werden kann.It also uses bearer access tokens to ensure that access to a resource can be granted.

Richtlinien und BenutzerflowsPolicies and user flows

Die Richtlinien in Azure AD B2C sind wohl das wichtigste Feature des Diensts.Arguably, Azure AD B2C policies are the most important features of the service. Azure AD B2C erweitert die Standardprotokolle OAuth 2.0 und OpenID Connect durch die Einführung von Richtlinien.Azure AD B2C extends the standard OAuth 2.0 and OpenID Connect protocols by introducing policies. Diese ermöglichen Azure AD B2C viel mehr als nur die einfache Authentifizierung und Autorisierung.These allow Azure AD B2C to perform much more than simple authentication and authorization.

Um Ihnen die Einrichtung der gängigsten Identitätsaufgaben zu erleichtern, enthält das Azure AD B2C-Portal vordefinierte und konfigurierbare Richtlinien, die als Benutzerflows bezeichnet werden.To help you set up the most common identity tasks, the Azure AD B2C portal includes predefined, configurable policies called user flows. Benutzerflows beschreiben Umgebungen in Verbindung mit der Endbenutzeridentität – einschließlich Registrierung, Anmeldung und Profilbearbeitung.User flows fully describe consumer identity experiences, including sign-up, sign-in, and profile editing. Benutzerflows können in einer Administratorbenutzeroberfläche definiert werden.User flows can be defined in an administrative UI. Sie können mithilfe eines speziellen Abfrageparameters in HTTP-Authentifizierungsanforderungen ausgeführt werden.They can be executed by using a special query parameter in HTTP authentication requests.

Richtlinien und Benutzerflows sind keine Standardfeatures von OAuth 2.0 und OpenID Connect. Sie sollten sich also die Zeit nehmen, sich damit vertraut zu machen.Policies and user flows are not standard features of OAuth 2.0 and OpenID Connect, so you should take the time to understand them. Weitere Informationen finden Sie in der Referenzanleitung zu Azure AD B2C-Benutzerflows.For more information, see the Azure AD B2C user flow reference guide.

TokenTokens

Die Implementierung von OAuth 2.0 und OpenID Connect in Azure AD B2C macht ausgiebig Gebrauch von Bearertoken (auch in Form von JSON-Webtoken, JWTs).The Azure AD B2C implementation of OAuth 2.0 and OpenID Connect makes extensive use of bearer tokens, including bearer tokens that are represented as JSON web tokens (JWTs). Ein Bearertoken ist ein einfaches Sicherheitstoken, das dem Inhaber, dem „Bearer“, den Zugriff auf eine geschützte Ressource ermöglicht.A bearer token is a lightweight security token that grants the "bearer" access to a protected resource.

Der Bearer ist jede beliebige Partei, die das Token vorweisen kann.The bearer is any party that can present the token. Azure AD muss eine Partei zunächst authentifizieren, damit sie ein Bearertoken erhalten kann.Azure AD must first authenticate a party before it can receive a bearer token. Falls jedoch nicht die erforderlichen Schritte ausgeführt werden, um das Token bei der Übertragung und Speicherung zu schützen, kann das Token von einer nicht vorgesehenen Partei abgefangen und verwendet werden.But if the required steps are not taken to secure the token in transmission and storage, it can be intercepted and used by an unintended party.

Einige Sicherheitstoken verfügen über integrierte Mechanismen, die eine Verwendung durch nicht autorisierte Parteien verhindern. Bearertoken besitzen diesen Mechanismus jedoch nicht.Some security tokens have built-in mechanisms that prevent unauthorized parties from using them, but bearer tokens do not have this mechanism. Sie müssen über einen sicheren Kanal (beispielsweise Transport Layer Security (HTTPS)) übertragen werden.They must be transported in a secure channel, such as a transport layer security (HTTPS).

Wird ein Bearertoken außerhalb eines sicheren Kanals gesendet, kann eine böswillige Partei das Token mithilfe eines Man-in-the-Middle-Angriffs abrufen und damit unautorisiert auf eine geschützte Ressource zugreifen.If a bearer token is transmitted outside a secure channel, a malicious party can use a man-in-the-middle attack to acquire the token and use it to gain unauthorized access to a protected resource. Die gleichen Sicherheitsprinzipien gelten für die (Zwischen-)Speicherung von Bearertoken zur späteren Verwendung.The same security principles apply when bearer tokens are stored or cached for later use. Stellen Sie daher sicher, dass Ihre App Bearertoken stets auf sichere Weise überträgt und speichert.Always ensure that your app transmits and stores bearer tokens in a secure manner.

Weitere Überlegungen zur Sicherheit von Bearertoken finden Sie unter RFC 6750, Abschnitt 5.For additional bearer token security considerations, see RFC 6750 Section 5.

Weitere Informationen zu verschiedenen Tokentypen, die in Azure AD B2C verwendet werden, finden Sie in der Referenz zu Azure AD-Token.More information about the different types of tokens that are used in Azure AD B2C are available in the Azure AD token reference.

ProtokolleProtocols

Wenn Sie bereit sind, sich einige Beispielanforderungen anzusehen, können Sie mit einem der folgenden Tutorials beginnen.When you're ready to review some example requests, you can start with one of the following tutorials. Jedes Tutorial entspricht einem bestimmten Authentifizierungsszenario.Each corresponds to a particular authentication scenario. Wenn Sie Hilfe beim Ermitteln des richtigen Arbeitsablaufs benötigen, informieren Sie sich über die App-Typen, die mit Azure AD B2C erstellt werden können.If you need help determining which flow is right for you, check out the types of apps you can build by using Azure AD B2C.