Azure AD B2C-SitzungAzure AD B2C session

Mit dem einmaligen Anmelden (Single Sign-On, SSO) ist für Sicherheit und Komfort gesorgt, wenn sich Benutzer anwendungsübergreifend in Azure Active Directory B2C (Azure AD B2C) anmelden.Single sign-on (SSO) adds security and convenience when users sign in across applications in Azure Active Directory B2C (Azure AD B2C). In diesem Artikel werden die Methoden für das einmalige Anmelden beschrieben, die in Azure AD B2C verwendet werden. Sie erhalten zudem Hilfestellung beim Auswählen der am besten geeigneten SSO-Methode zum Konfigurieren Ihrer Anwendungen.This article describes the single sign-on methods used in Azure AD B2C and helps you choose the most appropriate SSO method when configuring your policy.

Mit der einmaligen Anmeldung melden sich Benutzer einmal mit einem einzigen Konto an und erhalten Zugriff auf mehrere Anwendungen.With single sign-on, users sign in once with a single account and get access to multiple applications. Dabei kann es sich unabhängig von Plattform oder Domänennamen um eine mobile Anwendung bzw. eine Web- oder Single-Page-Anwendung handeln.The application can be a web, mobile, or single page application, regardless of platform or domain name.

Wenn sich der Benutzer anfänglich bei einer Anwendung anmeldet, speichert Azure AD B2C eine cookiebasierte Sitzung.When the user initially signs in to an application, Azure AD B2C persists a cookie-based session. Bei nachfolgenden Authentifizierungsanforderungen liest und überprüft Azure AD B2C die cookiebasierte Sitzung und gibt ein Zugriffstoken aus, ohne den Benutzer zur erneuten Anmeldung aufzufordern.Upon subsequent authentication requests, Azure AD B2C reads and validates the cookie-based session, and issues an access token without prompting the user to sign in again. Wenn die cookiebasierte Sitzung abläuft oder ungültig wird, wird der Benutzer zur erneuten Anmeldung aufgefordert.If the cookie-based session expires or becomes invalid, the user is prompted to sign-in again.

SSO-SitzungstypenSSO session types

Die Integration mit Azure AD B2C beinhaltet drei SSO-Sitzungstypen:Integration with Azure AD B2C involves three types of SSO sessions:

  • Azure AD B2C: Sitzung wird von Azure AD B2C verwaltetAzure AD B2C - Session managed by Azure AD B2C
  • Verbundidentitätsanbieter: Sitzung wird vom Identitätsanbieter (z. B. Facebook, Salesforce oder Microsoft-Konto) verwaltetFederated identity provider - Session managed by the identity provider, for example Facebook, Salesforce, or Microsoft account
  • Anwendung: Sitzung wird von der mobilen Anwendung bzw. der Web- oder Single-Page-Anwendung verwaltetApplication - Session managed by the web, mobile, or single page application

SSO-Sitzung

SSO mit Azure AD B2CAzure AD B2C SSO

Wenn sich ein Benutzer erfolgreich mit einem lokalen oder Social Media-Konto authentifiziert, speichert Azure AD B2C eine cookiebasierte Sitzung im Browser des Benutzers.When a user successfully authenticates with a local or social account, Azure AD B2C stores a cookie-based session on the user's browser. Das Cookie wird unter dem Domänennamen des Azure AD B2C-Mandanten gespeichert, z. B. https://contoso.b2clogin.com.The cookie is stored under the Azure AD B2C tenant domain name, such as https://contoso.b2clogin.com.

Wenn ein Benutzer sich anfänglich mit einem Verbundkonto anmeldet und sich während des Sitzungszeitfensters (Gültigkeitsdauer) bei derselben oder einer anderen App anmeldet, versucht Azure AD B2C, ein neues Zugriffstoken vom Verbundidentitätsanbieter abzurufen.If a user initially signs in with a federated account, and then during the session time window (time-to-live, or TTL) signs in to the same app or a different app, Azure AD B2C tries to acquire a new access token from the federated identity provider. Wenn die Verbundidentitätsanbieter-Sitzung abgelaufen ist oder ungültig wird, fordert der Verbundidentitätsanbieter den Benutzer zur Eingabe seiner Anmeldeinformationen auf.If the federated identity provider session is expired or invalid, the federated identity provider prompts the user for their credentials. Wenn die Sitzung noch aktiv ist (oder wenn sich der Benutzer mit einem lokalen statt einem Verbundkonto angemeldet hat), autorisiert Azure AD B2C den Benutzer und eliminiert weitere Eingabeaufforderungen.If the session is still active (or if the user has signed in with a local account instead of a federated account), Azure AD B2C authorizes the user and eliminates further prompts.

Sie können das Sitzungsverhalten konfigurieren. Dazu zählen auch die Gültigkeitsdauer der Sitzung und die Art, wie Azure AD B2C die Sitzung über Richtlinien und Anwendungen freigibt.You can configure the session behavior, including the session TTL and how Azure AD B2C shares the session across policies and applications.

SSO mit VerbundidentitätsanbieterFederated identity provider SSO

Ein Social Media- oder Unternehmensidentitätsanbieter verwaltet seine eigene Sitzung.A social or enterprise identity provider manages its own session. Das Cookie wird unter dem Domänennamen des Identitätsanbieters gespeichert, z. B. https://login.salesforce.com.The cookie is stored under the identity provider's domain name, such as https://login.salesforce.com. Die Verbundidentitätsanbieter-Sitzung wird nicht von Azure AD B2C gesteuert.Azure AD B2C doesn't control the federated identity provider session. Das Sitzungsverhalten wird stattdessen vom Verbundidentitätsanbieter bestimmt.Instead, session behavior is determined by the federated identity provider.

Nehmen Sie das folgende Szenario als Beispiel:Consider the following scenario:

  1. Ein Benutzer meldet sich bei Facebook an, um seinen Feed zu überprüfen.A user signs into Facebook to check their feed.
  2. Zu einem späteren Zeitpunkt öffnet der Benutzer Ihre Anwendung und startet den Anmeldevorgang.Later, the user opens your application and starts the sign-in process. Die Anwendung leitet den Benutzer zu Azure AD B2C um, um den Anmeldevorgang abzuschließen.The application redirects the user to Azure AD B2C to complete the sign-in process.
  3. Auf der Registrierungs- oder Anmeldeseite von Azure AD B2C wählt der Benutzer die Anmeldung mit seinem Facebook-Konto aus.On the Azure AD B2C sign-up or sign-in page, the user chooses to sign-in with their Facebook account. Der Benutzer wird zu Facebook umgeleitet.The user is redirected to Facebook. Wenn auf Facebook eine aktive Sitzung vorhanden ist, wird der Benutzer nicht aufgefordert, seine Anmeldeinformationen einzugeben, sondern wird sofort mit einem Facebook-Token zu Azure AD B2C umgeleitet.If there is an active session at Facebook, the user is not prompted to provide their credentials and is immediately redirected to Azure AD B2C with a Facebook token.

Anwendungs-SSOApplication SSO

Eine mobile Anwendung bzw. eine Web- oder Single-Page-Anwendung kann durch OAuth-Zugriff, ID-Token oder SAML-Token geschützt werden.A web, mobile, or single page application can be protected by OAuth access, ID tokens, or SAML tokens. Wenn ein Benutzer versucht, auf eine geschützte Ressource in der App zuzugreifen, prüft die App, ob seitens der Anwendung eine aktive Sitzung vorhanden ist.When a user tries to access a protected resource on the app, the app checks whether there is an active session on the application side. Wenn keine App-Sitzung vorhanden oder die Sitzung abgelaufen ist, leitet die App den Benutzer zur Azure AD B2C-Anmeldeseite.If there is no app session or the session has expired, the app will take the user to Azure AD B2C to sign-in page.

Die Anwendungssitzung kann eine cookiebasierte Sitzung sein, die unter dem Domänennamen der Anwendung gespeichert wird, z. B. https://contoso.com.The application session can be a cookie-based session stored under the application domain name, such as https://contoso.com. Mobile Anwendungen speichern die Sitzung möglicherweise anders, verwenden aber einen ähnlichen Ansatz.Mobile applications might store the session in a different way but using a similar approach.

Konfiguration der Azure AD B2C-SitzungAzure AD B2C session configuration

Bereich einer SitzungSession scope

Die Azure AD B2C-Sitzung kann mit den folgenden Bereichen konfiguriert werden:The Azure AD B2C session can be configured with the following scopes:

  • Mandant: Dies ist die Standardeinstellung.Tenant - This setting is the default. Mit dieser Einstellung können mehrere Anwendungen und Benutzerflows in Ihrem B2C-Mandanten die gleiche Benutzersitzung gemeinsam nutzen.Using this setting allows multiple applications and user flows in your B2C tenant to share the same user session. Beispiel: Sobald sich ein Benutzer bei einer Anwendung angemeldet hat, kann er sich auch beim Zugriff auf eine andere Anwendung nahtlos anmelden.For example, once a user signs into an application, the user can also seamlessly sign into another one upon accessing it.
  • Anwendung: Mit dieser Einstellung können Sie eine Benutzersitzung ausschließlich für eine Anwendung beibehalten, unabhängig von anderen Anwendungen.Application - This setting allows you to maintain a user session exclusively for an application, independent of other applications. Beispiel: Diese Einstellung können Sie verwenden, wenn sich der Benutzer bei Contoso Pharmacy anmelden soll, auch wenn er sich bereits bei Contoso Groceries angemeldet hat.For example, you can use this setting if you want the user to sign in to Contoso Pharmacy regardless of whether the user is already signed into Contoso Groceries.
  • Richtlinie: Mit dieser Einstellung können Sie eine Benutzersitzung ausschließlich für einen Benutzerflow beibehalten, unabhängig von den Anwendungen, die diesen verwenden.Policy - This setting allows you to maintain a user session exclusively for a user flow, independent of the applications using it. Beispiel: Wenn sich der Benutzer bereits angemeldet und einen Multi-Factor Authentication-Schritt (MFA) abgeschlossen hat, kann er Zugriff auf Bestandteile mit höherer Sicherheitsstufe von mehreren Anwendungen erhalten, solange die an den Benutzerflow gebundene Sitzung nicht abläuft.For example, if the user has already signed in and completed a multi-factor authentication (MFA) step, the user can be given access to higher-security parts of multiple applications, as long as the session tied to the user flow doesn't expire.
  • Deaktiviert: Diese Einstellung zwingt den Benutzer, bei jeder Ausführung der Richtlinie den gesamten Benutzerflow zu durchlaufen.Disabled - This setting forces the user to run through the entire user flow upon every execution of the policy.

Gültigkeitsdauer der SitzungSession life time

Die Gültigkeitsdauer der Sitzung ist die Zeitspanne, in der das Azure AD B2C-Sitzungscookie nach erfolgreicher Authentifizierung im Browser des Benutzers gespeichert wird.The session life time is the amount of time the Azure AD B2C session cookie is stored on the user's browser after successful authentication. Für die Gültigkeitsdauer der Sitzung können Sie einen Wert zwischen 15 und 720 Minuten festlegen.You can set the session life time to a value from 15 to 720 minutes.

Angemeldet bleibenKeep me signed-in

Mit der Funktion Angemeldet bleiben wird die Gültigkeitsdauer der Sitzung durch die Verwendung eines permanenten Cookies verlängert.The Keep me signed-in feature extends the session life time through the use of a persistent cookie. Die Sitzung bleibt auch nach Schließen und erneutem Öffnen des Browsers aktiv.The session remains active after the user closes and reopens the browser. Die Sitzung wird nur widerrufen, wenn sich der Benutzer abmeldet. Die Funktion „Angemeldet bleiben“ gilt nur für die Anmeldung mit lokalen Konten.The session is revoked only when a user signs out. The Keep me signed-in feature only applies to sign-in with local accounts.

Die Funktion „Angemeldet bleiben“ hat Vorrang vor der Gültigkeitsdauer der Sitzung.The Keep me signed-in feature takes precedence over the session life time. Wenn die Funktion „Angemeldet bleiben“ aktiviert ist und der Benutzer sie auswählt, gibt diese Funktion vor, wann die Sitzung abläuft.If the Keep me signed-in feature is enabled and the user selects it, this feature dictates when the session will expire.

SitzungsablauftypSession expiry type

Der Sitzungsablauftyp gibt an, wie eine Sitzung durch die Einstellung der Gültigkeitsdauer der Sitzung oder die Festlegung der Funktion „Angemeldet bleiben“ verlängert wird.The session expiry type indicates how a session is extended by the session life time setting or the keep me signed-in setting.

  • Rollierend: Gibt an, dass die Sitzung jedes Mal verlängert wird, wenn der Benutzer eine cookiebasierte Authentifizierung ausführt (Standardeinstellung).Rolling - Indicates that the session is extended every time the user performs a cookie-based authentication (default).
  • Absolut: Gibt an, dass sich der Benutzer nach dem angegebenen Zeitraum erneut authentifizieren muss.Absolute - Indicates that the user is forced to re-authenticate after the time period specified.

AbmeldungSign-out

Wenn Sie den Benutzer bei der Anwendung abmelden möchten, reicht es nicht aus, die Cookies der Anwendung zu löschen oder die Sitzung mit dem Benutzer auf andere Weise zu beenden.When you want to sign the user out of the application, it isn't enough to clear the application's cookies or otherwise end the session with the user. Sie müssen den Benutzer für die Abmeldung zu Azure AD B2C umleiten. Ansonsten kann sich der Benutzer möglicherweise erneut bei Ihrer Anwendung authentifizieren, ohne seine Anmeldeinformationen erneut einzugeben.You must redirect the user to Azure AD B2C to sign out. Otherwise, the user might be able to re-authenticate to your applications without entering their credentials again.

Auf die Abmeldeanforderung reagiert Azure AD B2C wie folgt:Upon a sign-out request, Azure AD B2C:

  1. Die cookiebasierte Azure AD B2C-Sitzung wird für ungültig erklärt.Invalidates the Azure AD B2C cookie-based session.
  2. Azure AD B2C versucht, den Benutzer vom Verbundidentitätsanbieter abzumelden:Attempts to sign out from federated identity providers:
    • OpenId Connect, wenn der bekannte Konfigurationsendpunkt des Identitätsanbieters eine end_session_endpoint-Adresse angibt.OpenId Connect - If the identity provider well-known configuration endpoint specifies an end_session_endpoint location.
    • SAML, wenn die Metadaten des Identitätsanbieters die SingleLogoutService-Adresse enthalten.SAML - If the identity provider metadata contains the SingleLogoutService location.
  3. Optional nimmt Azure AD B2C die Abmeldung bei anderen Anwendungen vor.Optionally, signs-out from other applications. Weitere Informationen finden Sie im Abschnitt Einmaliges Abmelden.For more information, see the Single sign-out section.

Bei der Abmeldung wird zwar der SSO-Status des Benutzers bei Azure AD B2C gelöscht, der Benutzer wird möglicherweise jedoch nicht von seiner Sitzung beim Social Media-Identitätsanbieter abgemeldet.The sign-out clears the user's single sign-on state with Azure AD B2C, but it might not sign the user out of their social identity provider session. Wenn der Benutzer bei einer nachfolgenden Anmeldung den gleichen Identitätsanbieter auswählt, kann er sich möglicherweise ohne Eingabe seiner Anmeldeinformationen erneut authentifizieren.If the user selects the same identity provider during a subsequent sign-in, they might reauthenticate without entering their credentials. Wenn sich ein Benutzer von der Anwendung abmelden möchte, bedeutet dies nicht unbedingt, dass er sich auch vollständig von seinem Facebook-Konto abmelden möchte.If a user wants to sign out of the application, it doesn't necessarily mean they want to sign out of their Facebook account. Wenn jedoch lokale Konten verwendet werden, wird die Sitzung des Benutzers ordnungsgemäß beendet.However, if local accounts are used, the user's session ends properly.

Einmaliges AbmeldenSingle sign-out

Hinweis

Diese Funktion ist auf benutzerdefinierte Richtlinien beschränkt.This feature is limited to custom policies.

Wenn Sie den Benutzer zum Azure AD B2C-Abmeldeendpunkt (für OAuth2- und SAML-Protokolle) umleiten, löscht Azure AD B2C die Sitzung des Benutzers im Browser.When you redirect the user to the Azure AD B2C sign-out endpoint (for both OAuth2 and SAML protocols), Azure AD B2C clears the user's session from the browser. Allerdings kann der Benutzer weiterhin bei anderen Anwendungen angemeldet sein, die Azure AD B2C für die Authentifizierung verwenden.However, the user might still be signed in to other applications that use Azure AD B2C for authentication. Damit der Benutzer gleichzeitig auch bei diesen Anwendungen abgemeldet werden kann, sendet Azure AD B2C eine HTTP GET-Anforderung an die registrierte LogoutUrl aller Anwendungen, bei denen der Benutzer aktuell angemeldet ist.To enable those applications to sign the user out simultaneously, Azure AD B2C sends an HTTP GET request to the registered LogoutUrl of all the applications that the user is currently signed in to.

Anwendungen müssen auf diese Anforderung antworten, indem sie alle Sitzungen löschen, mit denen der Benutzer identifiziert wird, und eine 200-Antwort zurückgeben.Applications must respond to this request by clearing any session that identifies the user and returning a 200 response. Wenn Sie das einmalige Abmelden in Ihrer Anwendung unterstützen möchten, müssen Sie eine LogoutUrl im Code Ihrer Anwendung implementieren.If you want to support single sign-out in your application, you must implement a LogoutUrl in your application's code.

Nächste SchritteNext steps