In Active Directory B2C verwendbare AnwendungstypenApplication types that can be used in Active Directory B2C

Azure Active Directory B2C (Azure AD B2C) unterstützt die Authentifizierung für eine Vielzahl moderner Anwendungsarchitekturen.Azure Active Directory B2C (Azure AD B2C) supports authentication for a variety of modern application architectures. Diese basieren alle auf den branchenüblichen Protokollen OAuth 2.0 oder OpenID Connect.All of them are based on the industry standard protocols OAuth 2.0 or OpenID Connect. In diesem Artikel werden die Anwendungstypen beschrieben, die Sie unabhängig von der bevorzugten Sprache oder Plattform erstellen können.This article describes the types of applications that you can build, independent of the language or platform you prefer. Außerdem verdeutlicht es die allgemeinen Szenarios, bevor Sie mit dem Erstellen von Anwendungen beginnen.It also helps you understand the high-level scenarios before you start building applications.

Jede Anwendung, die Azure AD B2C verwendet, muss über das Azure-Portal in Ihrem Azure AD B2C-Mandanten registriert werden.Every application that uses Azure AD B2C must be registered in your Azure AD B2C tenant by using the Azure portal. Während des Anwendungsregistrierungsprozesses werden Werte erfasst und zugewiesen, wie z.B.:The application registration process collects and assigns values, such as:

  • Eine Anwendungs-ID, die Ihre Anwendung eindeutig ausweist.An Application ID that uniquely identifies your application.
  • Ein Antwort-URI, der zum Umleiten von Antworten zurück an die Anwendung verwendet werden kann.A Reply URL that can be used to direct responses back to your application.

Jede an Azure AD B2C gesendete Anforderung gibt einen Benutzerflow (eine integrierte Richtlinie) oder eine benutzerdefinierte Richtlinie an, die das Verhalten von Azure AD B2C steuert.Each request that is sent to Azure AD B2C specifies a user flow (a built-in policy) or a custom policy that controls the behavior of Azure AD B2C. Beide Richtlinientypen ermöglichen die Erstellung hochgradig anpassbarer Benutzerumgebungen.Both policy types enable you to create a highly customizable set of user experiences.

Die Interaktion der einzelnen Anwendungen folgt einem ähnlichen allgemeinen Muster:The interaction of every application follows a similar high-level pattern:

  1. Die Anwendung leitet den Endbenutzer an den v2.0-Endpunkt weiter, um eine Richtlinie auszuführen.The application directs the user to the v2.0 endpoint to execute a policy.
  2. Der Benutzer schließt die Richtlinie gemäß Richtliniendefinition ab.The user completes the policy according to the policy definition.
  3. Die Anwendung empfängt ein Sicherheitstoken vom v2.0-Endpunkt.The application receives a security token from the v2.0 endpoint.
  4. Die Anwendung verwendet das Sicherheitstoken für den Zugriff auf geschützte Informationen oder eine geschützte Ressource.The application uses the security token to access protected information or a protected resource.
  5. Der Ressourcenserver überprüft das Sicherheitstoken, um sicherzustellen, dass der Zugriff gewährt werden kann.The resource server validates the security token to verify that access can be granted.
  6. Die Anwendung aktualisiert das Sicherheitstoken in regelmäßigen Abständen.The application periodically refreshes the security token.

Diese Schritte können sich je nach erstelltem Anwendungstyp geringfügig unterscheiden.These steps can differ slightly based on the type of application you're building.

WebanwendungenWeb applications

Für Webanwendungen (einschließlich .NET, PHP, Java, Ruby, Python und Node.js), die auf einem Server gehostet werden und über einen Browser zugänglich sind, unterstützt Azure AD B2C OpenID Connect für alle Benutzeroberflächen.For web applications (including .NET, PHP, Java, Ruby, Python, and Node.js) that are hosted on a server and accessed through a browser, Azure AD B2C supports OpenID Connect for all user experiences. In der Azure AD B2C-Implementierung von OpenID Connect initiiert Ihre Webanwendung Benutzeroberflächen, indem Authentifizierungsanforderungen für Azure AD ausgegeben werden.In the Azure AD B2C implementation of OpenID Connect, your web application initiates user experiences by issuing authentication requests to Azure AD. Das Ergebnis der Anforderung ist ein id_token.The result of the request is an id_token. Dieses Sicherheitstoken stellt die Identität des Benutzers dar.This security token represents the user's identity. Darüber hinaus werden Informationen über den Benutzer in Form von Ansprüchen bereitgestellt:It also provides information about the user in the form of claims:

// Partial raw id_token
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtyaU1QZG1Cd...

// Partial content of a decoded id_token
{
    "name": "John Smith",
    "email": "john.smith@gmail.com",
    "oid": "d9674823-dffc-4e3f-a6eb-62fe4bd48a58"
    ...
}

Informationen zu allen Arten von Token und zu den für eine Anwendung verfügbaren Ansprüchen finden Sie in der Azure AD B2C-Tokenreferenz.Learn more about the types of tokens and claims available to an application in the Azure AD B2C token reference.

In einer Webanwendung sind für jede Ausführung einer Richtlinie im Allgemeinen folgende Schritte erforderlich:In a web application, each execution of a policy takes these high-level steps:

  1. Der Benutzer durchsucht die Webanwendung.The user browses to the web application.
  2. Die Webanwendung leitet den Benutzer an Azure AD B2C um und gibt die auszuführende Richtlinie an.The web application redirects the user to Azure AD B2C indicating the policy to execute.
  3. Der Benutzer schließt die Richtlinie ab.The user completes policy.
  4. Azure AD B2C gibt ein id_token an den Browser zurück.Azure AD B2C returns an id_token to the browser.
  5. Das id_token wird für den Umleitungs-URI bereitgestellt.The id_token is posted to the redirect URI.
  6. Das id_token wird überprüft, und ein Sitzungscookie wird festgelegt.The id_token is validated and a session cookie is set.
  7. Für den Benutzer wird eine sichere Seite zurückgegeben.A secure page is returned to the user.

Die Überprüfung von id_token mithilfe eines von Azure AD erhaltenen öffentlichen Signaturschlüssels ist ausreichend, um die Identität des Benutzers zu bestätigen.Validation of the id_token by using a public signing key that is received from Azure AD is sufficient to verify the identity of the user. Bei diesem Prozess wird auch ein Sitzungscookie festgelegt, das zur Identifizierung des Benutzers in nachfolgenden Seitenanforderungen verwendet werden kann.This process also sets a session cookie that can be used to identify the user on subsequent page requests.

Um dieses Szenario in Aktion zu sehen, können Sie eines der Webanwendungs-Codebeispiele für die Anmeldung im Abschnitt Erste Schritte testen.To see this scenario in action, try one of the web application sign-in code samples in our Getting started section.

Neben der Bereitstellung der einfachen Anmeldung benötigt eine Webserveranwendung unter Umständen auch Zugriff auf einen Back-End-Webdienst.In addition to facilitating simple sign-in, a web server application might also need to access a back-end web service. In diesem Fall kann die Webanwendung einen etwas anderen OpenID Connect-Ablauf durchführen und Token anhand von Autorisierungscodes und Aktualisierungstoken beschaffen.In this case, the web application can perform a slightly different OpenID Connect flow and acquire tokens by using authorization codes and refresh tokens. Dieses Szenario ist im folgenden Abschnitt zu Web-APIsdargestellt.This scenario is depicted in the following Web APIs section.

Single-Page-WebanwendungenSingle-page applications

Viele moderne Webanwendungen werden als clientseitige Single-Page-Webanwendungen („SPAs“) erstellt.Many modern web applications are built as client-side single-page applications ("SPAs"). Entwickler schreiben diese mithilfe von JavaScript oder eines SPA-Frameworks wie Angular, Vue oder React.Developers write them by using JavaScript or a SPA framework such as Angular, Vue, and React. Diese Anwendungen werden in einem Webbrowser ausgeführt und weisen andere Authentifizierungsmerkmale als herkömmliche serverseitige Webanwendungen auf.These applications run on a web browser and have different authentication characteristics than traditional server-side web applications.

Azure AD B2C bietet zwei Optionen, um Single-Page-Webanwendungen das Anmelden von Benutzern und Abrufen von Token für den Zugriff auf Back-End-Dienste oder -Web-APIs zu ermöglichen:Azure AD B2C provides two options to enable single-page applications to sign in users and get tokens to access back-end services or web APIs:

Autorisierungscodefluss (mit PKCE)Authorization code flow (with PKCE)

  • OAuth 2.0-Autorisierungscodefluss (mit PKCE).OAuth 2.0 Authorization code flow (with PKCE). Der Autorisierungscodefluss ermöglicht es der Anwendung, einen Autorisierungscode für ID-Token auszutauschen, um den authentifizierten Benutzer darzustellen, sowie Zugriffstoken auszutauschen, die zum Aufrufen geschützter APIs erforderlich sind.The authorization code flow allows the application to exchange an authorization code for ID tokens to represent the authenticated user and Access tokens needed to call protected APIs. Darüber hinaus werden Aktualisierungstoken zurückgegeben, die langfristigen Zugriff auf Ressourcen im Auftrag von Benutzern bereitstellen, ohne dass eine Interaktion mit diesen Benutzern erforderlich ist.In addition, it returns Refresh tokens that provide long-term access to resources on behalf of users without requiring interaction with those users.

Dies ist die empfohlene Vorgehensweise.This is the recommended approach. Aktualisierungstoken mit begrenzter Lebensdauer tragen zur Anpassung Ihrer Anwendung an die in Bezug auf die Einschränkungen von Cookies geltenden Datenschutzbestimmungen moderner Browser (z. B. an Safari ITP) bei.Having limited-lifetime refresh tokens helps your application adapt to modern browser cookie privacy limitations, like Safari ITP.

Um diesen Fluss nutzen zu können, kann Ihre Anwendung eine Authentifizierungsbibliothek verwenden, von der sie unterstützt wird, z. B. MSAL.js 2.x.To take advantage of this flow, your application can use an authentication library that supports it, like MSAL.js 2.x.

Autorisierungsfluss für Single-Page-WebanwendungenSingle-page applications-auth

Impliziter GewährungsflowImplicit grant flow

  • Impliziter OAuth 2.0-Fluss.OAuth 2.0 implicit flow. Einige Frameworks, z. B. MSAL.js 1.x, unterstützen nur den Fluss für die implizite Genehmigung.Some frameworks, like MSAL.js 1.x, only support the implicit grant flow. Der Fluss für die implizite Genehmigung ermöglicht der Anwendung das Abrufen von ID- und Zugriffstoken.The implicit grant flow allows the application to get ID and Access tokens. Im Gegensatz zum Autorisierungscodefluss gibt der Fluss für die implizite Genehmigung kein Aktualisierungstoken zurück.Unlike the authorization code flow, implicit grant flow does not return a Refresh token.

Dieser Authentifizierungsfluss umfasst keine Anwendungsszenarios, die plattformübergreifende JavaScript-Frameworks verwenden, z. B. Electron und React-Native.This authentication flow does not include application scenarios that use cross-platform JavaScript frameworks such as Electron and React-Native. Diese Szenarien erfordern weitere Funktionen für die Interaktion mit den nativen Plattformen.Those scenarios require further capabilities for interaction with the native platforms.

Web-APIsWeb APIs

Sie können Azure AD B2C zum Schützen von Webdiensten, wie z.B. der RESTful-Web-API Ihrer Anwendung, verwenden.You can use Azure AD B2C to secure web services such as your application's RESTful web API. Web-APIs können OAuth 2.0 verwenden, um ihre Daten zu schützen, indem eingehende HTTP-Anforderungen per Token authentifiziert werden.Web APIs can use OAuth 2.0 to secure their data, by authenticating incoming HTTP requests using tokens. Der Aufrufer einer Web-API fügt ein Token im Autorisierungsheader einer HTTP-Anforderung an:The caller of a web API appends a token in the authorization header of an HTTP request:

GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6...
Accept: application/json
...

Die Web-API kann dann mit dem Token die Identität des API-Aufrufers überprüfen und Informationen über den Aufrufer aus Ansprüchen extrahieren, die im Token codiert sind.The web API can then use the token to verify the API caller's identity and to extract information about the caller from claims that are encoded in the token. Informationen zu allen Arten von Token und zu den für eine App verfügbaren Ansprüchen finden Sie in der Azure AD B2C-Tokenreferenz.Learn more about the types of tokens and claims available to an app in the Azure AD B2C token reference.

Eine Web-API kann Token von vielen Clienttypen empfangen, einschließlich Webanwendungen, Desktop- und mobilen Anwendungen, Single-Page-Anwendungen, serverseitigen Daemons und anderen Web-APIs.A web API can receive tokens from many types of clients, including web applications, desktop and mobile applications, single page applications, server-side daemons, and other web APIs. Hier sehen Sie ein Beispiel für den vollständigen Ablauf für eine Webanwendung, die eine Web-API aufruft:Here's an example of the complete flow for a web application that calls a web API:

  1. Die Webanwendung führt eine Richtlinie aus, und der Benutzer schließt die Benutzeroberfläche ab.The web application executes a policy and the user completes the user experience.
  2. Azure AD B2C gibt id_token (OpenID Connect) und einen Autorisierungscode an den Browser zurück.Azure AD B2C returns an (OpenID Connect) id_token and an authorization code to the browser.
  3. Der Browser stellt das id_token und den Autorisierungscode für den Umleitungs-URI bereit.The browser posts the id_token and authorization code to the redirect URI.
  4. Der Webserver überprüft das id_token und legt ein Sitzungscookie fest.The web server validates the id_token and sets a session cookie.
  5. Der Webserver fragt Azure AD B2C nach access_token. Dabei gibt er den Autorisierungscode, die Anwendungsclient-ID sowie Clientanmeldeinformationen an.The web server asks Azure AD B2C for an access_token by providing it with the authorization code, application client ID, and client credentials.
  6. Das access_token und das refresh_token werden an den Webserver zurückgegeben.The access_token and refresh_token are returned to the web server.
  7. Die Web-API wird mit dem access_token in einem Autorisierungsheader aufgerufen.The web API is called with the access_token in an authorization header.
  8. Die Web-API überprüft das Token.The web API validates the token.
  9. Sichere Daten werden an die Webanwendung zurückgegeben.Secure data is returned to the web application.

Weitere Informationen zu Autorisierungscodes, Aktualisierungstoken und den Schritten zum Abrufen von Token finden Sie im OAuth 2.0-Protokoll.To learn more about authorization codes, refresh tokens, and the steps for getting tokens, read about the OAuth 2.0 protocol.

Weitere Informationen zum Schützen einer Web-API mit Azure AD B2C finden Sie in den Tutorials zur Web-API im Abschnitt mit den ersten Schritten.To learn how to secure a web API by using Azure AD B2C, check out the web API tutorials in our Getting started section.

Mobile und native AnwendungenMobile and native applications

Auf Geräten installierte Anwendungen, z.B. mobile Anwendungen und Desktopanwendungen, benötigen häufig Zugriff auf Back-End-Dienste oder Web-APIs im Auftrag von Benutzern.Applications that are installed on devices, such as mobile and desktop applications, often need to access back-end services or web APIs on behalf of users. Sie können Ihren nativen Anwendungen angepasste Oberflächen für die Identitätsverwaltung hinzufügen und Back-End-Dienste sicher aufrufen, indem Sie Azure AD B2C und den Autorisierungscodeablauf von OAuth 2.0 verwenden.You can add customized identity management experiences to your native applications and securely call back-end services by using Azure AD B2C and the OAuth 2.0 authorization code flow.

Bei diesem Ablauf führt die Anwendung Richtlinien aus und empfängt einen authorization_code von Azure AD, nachdem der Benutzer die Richtlinie abgeschlossen hat.In this flow, the application executes policies and receives an authorization_code from Azure AD after the user completes the policy. Der authorization_code stellt die Berechtigung der Anwendung zum Aufrufen von Back-End-Diensten im Namen des derzeit angemeldeten Benutzers dar.The authorization_code represents the application's permission to call back-end services on behalf of the user who is currently signed in. Die Anwendung kann dann den authorization_code im Hintergrund gegen ein access_token und ein refresh_token austauschen.The application can then exchange the authorization_code in the background for an access_token and a refresh_token. Mit dem access_token kann die Anwendung sich in HTTP-Anforderungen bei einer Back-End-Web-API authentifizieren.The application can use the access_token to authenticate to a back-end web API in HTTP requests. Sie kann auch das refresh_token zum Abrufen eines neuen access_token verwenden, wenn ein älteres abläuft.It can also use the refresh_token to get a new access_token when an older one expires.

Aktuelle EinschränkungenCurrent limitations

Nicht unterstützte AnwendungstypenUnsupported application types

Daemons/serverseitige AnwendungenDaemons/server-side applications

Anwendungen, die lang andauernde Prozesse enthalten oder ohne Benutzereingriff arbeiten, benötigen auch die Möglichkeit, auf sichere Ressourcen wie Web-APIs zuzugreifen.Applications that contain long-running processes or that operate without the presence of a user also need a way to access secured resources such as web APIs. Diese Anwendungen können mithilfe der Identität der Anwendung (anstelle der delegierten Benutzeridentität) und mithilfe des Clientanmeldeinformations-Flows von OAuth 2.0 die Authentifizierung durchführen und Token abrufen.These applications can authenticate and get tokens by using the application's identity (rather than a user's delegated identity) and by using the OAuth 2.0 client credentials flow. Ein Clientanmeldeinformations-Flow ist nicht gleich einem „Im Auftrag von“-Ablauf, und in der „Im Auftrag von“-Ablauf sollte nicht für die Server-zu-Server-Authentifizierung verwendet werden.Client credential flow is not the same as on-behalf-flow and on-behalf-flow should not be used for server-to-server authentication.

Der Flow für die Gewährung von OAuth 2.0-Clientanmeldeinformationen wird derzeit nicht direkt vom Azure AD B2C-Authentifizierungsdienst unterstützt. Sie können den Clientanmeldeinformations-Flow jedoch mithilfe von Azure AD und Microsoft Identity Platform/Tokenendpunkt für eine Anwendung in Ihrem Azure AD B2C-Mandanten einrichten.Although the OAuth 2.0 client credentials grant flow is not currently directly supported by the Azure AD B2C authentication service, you can set up client credential flow using Azure AD and the Microsoft identity platform /token endpoint for an application in your Azure AD B2C tenant. Ein Azure AD B2C-Mandant teilt sich einige Funktionen mit Azure AD-Unternehmensmandanten.An Azure AD B2C tenant shares some functionality with Azure AD enterprise tenants.

Informationen über das Einrichten des Clientanmeldeinformations-Flows finden Sie unter Azure Active Directory v2.0 und der OAuth 2.0-Clientanmeldeinformations-Flow.To set up client credential flow, see Azure Active Directory v2.0 and the OAuth 2.0 client credentials flow. Bei einer erfolgreichen Authentifizierung wird ein formatiertes Token empfangen, sodass es von Azure AD wie in Azure AD-Tokenreferenz beschrieben verwendet werden kann.A successful authentication results in the receipt of a token formatted so that it can be used by Azure AD as described in Azure AD token reference.

Anweisungen zum Registrieren einer Verwaltungsanwendung finden Sie unter Verwalten von Azure AD B2C mit Microsoft Graph.For instructions on registering a management application, see Manage Azure AD B2C with Microsoft Graph.

Web-API-Ketten („Im Auftrag von“-Ablauf)Web API chains (on-behalf-of flow)

Viele Architekturen umfassen eine Web-API, von der eine andere Downstream-Web-API aufgerufen werden muss, wobei beide durch Azure AD B2C gesichert sind.Many architectures include a web API that needs to call another downstream web API, where both are secured by Azure AD B2C. Dieses Szenario kommt häufig bei nativen Clients mit Web-API-Back-End vor. Dabei wird ein Microsoft-Onlinedienst (z. B. die Microsoft Graph-API) aufgerufen.This scenario is common in native clients that have a Web API back-end and calls a Microsoft online service such as the Microsoft Graph API.

Dieses Szenario der verketteten Web-API kann mithilfe der Berechtigung für Anmeldeinformationen über den OAuth 2.0-JWT-Bearer unterstützt werden, auch bekannt als „Im Auftrag von“-Ablauf.This chained web API scenario can be supported by using the OAuth 2.0 JWT bearer credential grant, also known as the on-behalf-of flow. Der „Im Auftrag von“-Ablauf ist in Azure AD B2C derzeit noch nicht implementiert.However, the on-behalf-of flow is not currently implemented in the Azure AD B2C.

Fehlerhafte AppsFaulted apps

Azure AD B2C-Anwendungen dürfen nicht auf folgende Weise bearbeitet werden:Do not edit Azure AD B2C applications in these ways:

Wenn Sie die Azure AD B2C-Anwendung außerhalb des Azure-Portals bearbeiten, entsteht eine fehlerhafte Anwendung, die nicht mehr mit Azure AD B2C verwendet werden kann.If you edit the Azure AD B2C application outside of the Azure portal, it becomes a faulted application and is no longer usable with Azure AD B2C. Löschen Sie die Anwendung, und erstellen Sie die Anwendung neu.Delete the application and create it again.

Um die Anwendung zu löschen, rufen Sie das App-Registrierungsportal auf und löschen dort die Anwendung.To delete the application, go to the Application Registration Portal and delete the application there. Damit die Anwendung angezeigt wird, müssen Sie der Besitzer der Anwendung sein (und nicht nur Administrator des Mandanten).In order for the application to be visible, you need to be the owner of the application (and not just an admin of the tenant).

Nächste SchritteNext steps

Beschäftigen Sie sich ausführlicher mit den integrierten Richtlinien, die von Benutzerflows in Azure Active Directory B2C bereitgestellt werden.Find out more about the built-in policies provided by User flows in Azure Active Directory B2C.