AuthentifizierungsgrundlagenAuthentication basics

Was ist die Authentifizierung?What is authentication

In diesem Artikel werden viele Authentifizierungskonzepte behandelt, mit denen Sie vertraut sein müssen, um geschützte Web-Apps, Web-APIs oder Apps, die geschützte Web-APIs aufrufen, zu erstellen.This article covers many of the authentication concepts you'll need to understand to create protected web apps, web APIs, or apps calling protected Web APIs.

Bei der Authentifizierung weisen Sie nach, dass Sie die Person sind, als die Sie sich ausgeben.Authentication is the process of proving you are who you say you are. Authentifizierung wird manchmal verkürzt als AuthN bezeichnet.Authentication is sometimes shortened to AuthN.

Die Autorisierung ist die Gewährung einer Handlungsberechtigung für eine authentifizierte Person.Authorization is the act of granting an authenticated party permission to do something. Sie gibt an, auf welche Daten Sie zugreifen dürfen und welche Aktionen Sie damit ausführen können.It specifies what data you're allowed to access and what you can do with that data. Autorisierung wird manchmal verkürzt als AuthZ bezeichnet.Authorization is sometimes shortened to AuthZ.

Statt Apps zu erstellen, die jeweils über eigene Informationen in Bezug auf Benutzername und Kennwort verfügen, was mit einem hohen Verwaltungsaufwand verbunden ist, wenn Sie für mehrere Apps Benutzer hinzufügen oder entfernen müssen, besteht die Möglichkeit, dass Apps diese Aufgabe an einen zentralen Identitätsanbieter delegieren können.Instead of creating apps that each maintain their own username and password information, which incurs a high administrative burden when you need to add or remove users across multiple apps, apps can delegate that responsibility to a centralized identity provider.

Azure Active Directory (Azure AD) ist ein zentraler Identitätsanbieter in der Cloud.Azure Active Directory (Azure AD) is a centralized identity provider in the cloud. Die Delegierung der Authentifizierung und Autorisierung an den Anbieter ermöglicht beispielsweise die Verwendung von Richtlinien für bedingten Zugriff, die erfordern, dass sich ein Benutzer an einem bestimmten Ort befindet, die Verwendung der mehrstufigen Authentifizierung sowie die Schaffung der Möglichkeit, dass sich Benutzer nur einmal anmelden müssen und dann automatisch bei allen Web-Apps angemeldet werden, die dasselbe zentralisierte Verzeichnis nutzen.Delegating authentication and authorization to it enables scenarios such as Conditional Access policies that require a user to be in a specific location, the use of multi-factor authentication, as well as enabling a user to sign in once and then be automatically signed in to all of the web apps that share the same centralized directory. Diese Funktion wird als einmaliges Anmelden (Single Sign-On, SSO) bezeichnet.This capability is referred to as Single Sign On (SSO).

Ein zentraler Identitätsanbieter ist noch wichtiger für Apps mit Benutzern auf der ganzen Welt, die sich nicht immer über das Netzwerk des Unternehmens anmelden.A centralized identity provider is even more important for apps that have users located around the globe that don't necessarily sign in from the enterprise's network. Azure AD authentifiziert Benutzer und stellt Zugriffstoken bereit.Azure AD authenticates users and provides access tokens. Ein Zugriffstoken ist ein Sicherheitstoken, das von einem Autorisierungsserver ausgestellt wird.An access token is a security token that is issued by an authorization server. Es enthält Informationen zum Benutzer und zu der App, für die das Token bestimmt ist, und diese Informationen können zum Zugreifen auf Web-APIs und andere geschützte Ressourcen verwendet werden.It contains information about the user and the app for which the token is intended, which can be used to access Web APIs and other protected resources.

Die Microsoft Identity Platform vereinfacht die Authentifizierung für Anwendungsentwickler. Die Plattform verfügt über Identity-as-a-Service mit Unterstützung für branchenübliche Protokolle, z. B. OAuth 2.0 und OpenID Connect, sowie Open Source-Bibliotheken für verschiedene Plattformen, damit Sie schnell mit der Programmierung beginnen können.The Microsoft identity platform simplifies authentication for application developers by providing identity as a service, with support for industry-standard protocols such as OAuth 2.0 and OpenID Connect, as well as open-source libraries for different platforms to help you start coding quickly. Sie ermöglicht Entwicklern das Erstellen von Anwendungen, mit denen alle Microsoft-Identitäten angemeldet werden, und das Abrufen von Token zum Aufrufen von Microsoft Graph, anderen Microsoft-APIs oder von Entwicklern erstellten APIs.It allows developers to build applications that sign in all Microsoft identities, get tokens to call Microsoft Graph, other Microsoft APIs, or APIs that developers have built. Weitere Informationen finden Sie unter Entwicklung der Microsoft Identity Platform.For more information, see Evolution of Microsoft identity platform.

MandantenTenants

Ein Cloudidentitätsanbieter arbeitet für viele Organisationen.A cloud identity provider serves many organizations. Um die Benutzer der verschiedenen Organisationen getrennt zu halten, ist Azure AD in Mandanten partitioniert, wobei ein Mandant pro Organisation verwendet wird.To keep users from different organizations separate, Azure AD is partitioned into tenants, with one tenant per organization.

Mit Mandanten können Benutzer und die zugehörigen Apps nachverfolgt werden.Tenants keep track of users and their associated apps. Die Microsoft Identity Platform unterstützt auch Benutzer, die sich mit persönlichen Microsoft-Konten anmelden.The Microsoft identity platform also supports users that sign in with personal Microsoft accounts.

Darüber hinaus verfügt Azure AD über Azure Active Directory B2C, damit Organisationen für die Anmeldung von Benutzern (meist Kunden) Identitäten sozialer Netzwerke, z. B. ein Google-Konto, verwenden können.Azure AD also provides Azure Active Directory B2C so that organizations can sign in users, typically customers, using social identities like a Google account. Weitere Informationen finden Sie in der Dokumentation für Azure Active Directory B2C.For more information, see Azure Active Directory B2C documentation .

SicherheitstokenSecurity tokens

Sicherheitstoken enthalten Informationen zu Benutzern und Apps.Security tokens contain information about users and apps. In Azure AD werden JSON-basierte Token (JWTs) verwendet, die Ansprüche enthalten.Azure AD uses JSON based tokens (JWTs) that contain claims. Mit einem Anspruch werden Assertionen einer Entität für eine andere bereitgestellt.A claim provides assertions about one entity to another. Anwendungen können Ansprüche für verschiedene Aufgaben verwenden, z. B.:Applications can use claims for various tasks such as:

  • Überprüfen des TokensValidating the token
  • Identifizieren des Verzeichnismandanten des AntragstellersIdentifying the subject's directory tenant
  • Anzeigen von BenutzerinformationenDisplaying user information
  • Ermitteln der Autorisierung des AntragstellersDetermining the subject's authorization

Ein Anspruch besteht aus Schlüssel-Wert-Paaren, mit denen beispielsweise die folgenden Informationen bereitgestellt werden:A claim consists of key-value pairs that provide information such as:

  • Sicherheitstokenserver, der das Token generiert hatthe Security Token Server that generated the token.
  • Datum, an dem das Token generiert wurdethe date when the token was generated.
  • Antragsteller, z. B. der Benutzer (mit Ausnahme von Daemons)the subject, such as the user (except for daemons).
  • Zielgruppe (App, für die das Token generiert wurde)the audience, which is the app for which the token was generated.
  • App (der Client), die das Token angefordert hat.the app (the client) that asked for the token. Bei Web-Apps kann dies mit der Zielgruppe identisch sein.In the case of web apps, this may be the same as the audience.

Ausführlichere Informationen zu Ansprüchen finden Sie in den Artikeln zu Zugriffstoken und ID-Token.For more detailed claim information, see the access tokens and ID tokens.

Die Überprüfung des Tokens wird auf eine der folgenden Arten durchgeführt: von der App, für die das Token generiert wurde, der Web-App, mit der der Benutzer angemeldet wurde, oder der Web-API, die für die Überprüfung des Tokens aufgerufen wird.It's up to the app for which the token was generated, the web app that signed-in the user, or the Web API being called, to validate the token. Das Token wird vom Sicherheitstokenserver (STS) mit einem privaten Schlüssel signiert.The token is signed by the Security Token Server (STS) with a private key. Der STS veröffentlicht den entsprechenden öffentlichen Schlüssel.The STS publishes the corresponding public key. Zur Überprüfung eines Tokens verifiziert die App die Signatur, indem mit dem öffentlichen STS-Schlüssel überprüft wird, ob die Signatur mit dem privaten Schlüssel erstellt wurde.To validate a token, the app verifies the signature by using the STS public key to validate that the signature was created using the private key.

Token sind nur für einen begrenzten Zeitraum gültig.Tokens are only valid for a limited amount of time. Normalerweise wird vom STS ein Tokenpaar bereitgestellt: ein Zugriffstoken zum Zugreifen auf die Anwendung oder geschützte Ressource und ein Aktualisierungstoken, das zum Aktualisieren des Zugriffstokens verwendet wird, wenn der Ablauf des Zugriffstokens kurz bevorsteht.Usually the STS provides a pair of tokens: an access token to access the application or protected resource, and a refresh token used to refresh the access token when the access token is close to expiring.

Zugriffstoken werden als Bearertoken im Authorization-Header an eine Web-API übergeben.Access tokens are passed to a Web API as the bearer token in the Authorization header. Eine App kann ein Aktualisierungstoken an den STS übergeben, und wenn der Benutzerzugriff auf die App nicht widerrufen wurde, erhält sie ein neues Zugriffstoken und ein neues Aktualisierungstoken zurück.An app can provide a refresh token to the STS, and if the user access to the app wasn't revoked, it will get back a new access token and a new refresh token. So wird ein Fall behandelt, bei dem eine Person aus dem Unternehmen ausscheidet.This is how the scenario of someone leaving the enterprise is handled. Wenn der STS ein Aktualisierungstoken empfängt, stellt er kein weiteres gültiges Zugriffstoken aus, falls der Benutzer nicht mehr autorisiert ist.When the STS receives the refresh token, it won't issue another valid access token if the user is no longer authorized.

AnwendungsmodellApplication model

Anwendungen können Benutzer selbst anmelden oder die Anmeldung an einen Identitätsanbieter delegieren.Applications can sign in users themselves or delegate sign-in to an identity provider. Informationen zu Anmeldeszenarien, die von Azure AD unterstützt werden, finden Sie unter Authentifizierungsflüsse und App-Szenarien.See Authentication flows and app scenarios to learn about sign-in scenarios supported by Azure AD.

Damit ein Identitätsanbieter weiß, dass ein Benutzer Zugriff auf eine bestimmte App hat, müssen sowohl der Benutzer als auch die Anwendung beim Identitätsanbieter registriert werden.For an identity provider to know that a user has access to a particular app, both the user and the application must be registered with the identity provider. Wenn Sie Ihre Anwendung bei Azure AD registrieren, stellen Sie eine Identitätskonfiguration für Ihre Anwendung bereit, die die Integration in Azure AD ermöglicht.When you register your application with Azure AD, you are providing an identity configuration for your application that allows it to integrate with Azure AD. Die Registrierung der App ermöglicht Ihnen außerdem Folgendes:Registering the app also allows you to:

  • Anpassen des Brandings Ihrer Anwendung im Dialogfeld für die Anmeldung.customize the branding of your application in the sign-in dialog. Dies ist wichtig, da dies der erste Eindruck ist, den ein Benutzer von Ihrer App erhält.This is important because this is the first experience a user will have with your app.
  • Entscheiden, ob Sie die Anmeldung für Benutzer nur zulassen möchten, wenn sie Ihrer Organisation angehören.decide if you want to let users sign in only if they belong to your organization. Hierbei handelt es sich um eine Einzelinstanzanwendung.This is a single tenant application. Oder lassen Sie für Benutzer die Anmeldung per Geschäfts-, Schul-oder Unikonto zu.Or allow users to sign in using any work or school account. Hierbei handelt es sich um eine mehrinstanzenfähige Anwendung.This is a multi-tenant application. Sie können auch persönliche Microsoft-Konten oder ein Social Media-Konto zulassen, z. B. von LinkedIn, Google usw.You can also allow personal Microsoft accounts, or a social account from LinkedIn, Google, and so on.
  • Anfordern von Bereichsberechtigungen.request scope permissions. Sie können beispielsweise den Bereich „user.read“ anfordern, mit dem die Berechtigung zum Lesen des Profils des angemeldeten Benutzers gewährt wird.For example, you can request the "user.read" scope, which grants permission to read the profile of the signed-in user.
  • Definieren von Bereichen, mit denen der Zugriff auf Ihre Web-API definiert wird.define scopes that define access to your Web API. Wenn eine App auf Ihre API zugreifen möchte, muss sie normalerweise Berechtigungen für die von Ihnen definierten Bereiche anfordern.Typically, when an app wants to access your API, it will need to request permissions to the scopes you define.
  • Austauschen eines Geheimnisses mit Azure AD, um die Identität der App gegenüber Azure AD nachzuweisen.share a secret with Azure AD that proves the app's identity to Azure AD. Dies ist relevant für den Fall, dass es sich bei der App um eine vertrauliche Clientanwendung handelt.This is relevant in the case where the app is a confidential client application. In einer vertraulichen Clientanwendung können Anmeldeinformationen sicher aufbewahrt werden.A confidential client application is an application that can hold credentials securely. Zum Speichern der Anmeldeinformationen wird ein vertrauenswürdiger Back-End-Server benötigt.They require a trusted backend server to store the credentials.

Nach der Registrierung erhält die Anwendung eine GUID, die von der App beim Anfordern von Token mit Azure AD ausgetauscht wird.Once registered, the application will be given a GUID that the app shares with Azure AD when it requests tokens. Wenn es sich bei der App um eine vertrauliche Clientanwendung handelt, wird auch das Geheimnis oder der öffentliche Schlüssel ausgetauscht. Dies hängt davon ab, ob Zertifikate oder Geheimnisse verwendet werden.If the app is a confidential client application, it will also share the secret or the public key, depending on whether certificates or secrets were used.

Für die Microsoft Identity Platform werden Anwendungen mit einem Modell dargestellt, das zwei Hauptfunktionen erfüllt:The Microsoft identity platform represents applications using a model that fulfills two main functions:

Identifizieren der App anhand der unterstützten Authentifizierungsprotokolle und Bereitstellen aller Bezeichner, URLs, Geheimnisse und zugehörigen Informationen, die für die Authentifizierung benötigt werdenIdentify the app by the authentication protocols it supports and provide all the identifiers, URLs, secrets, and related information that are needed to authenticate. Für die Microsoft Identity Platform gilt Folgendes:The Microsoft identity platform:

  • Enthält alle Daten, die zur Unterstützung der Authentifizierung zur Laufzeit erforderlich sind.Holds all the data required to support authentication at runtime.
  • Enthält alle Daten zum Treffen der Entscheidung, auf welche Ressourcen eine App ggf. zugreifen muss und unter welchen Umständen eine bestimmte Anforderung erfüllt werden soll.Holds all the data for deciding what resources an app might need to access, and under what circumstances a given request should be fulfilled.
  • Stellt Infrastruktur für die Implementierung der App-Bereitstellung innerhalb des Mandanten des App-Entwicklers und für andere Azure AD-Mandanten bereit.Provides infrastructure for implementing app provisioning within the app developer's tenant, and to any other Azure AD tenant.
  • Behandelt die Benutzereinwilligung während der Tokenanforderung und vereinfacht die dynamische mandantenübergreifenden Bereitstellung von AppsHandles user consent during token request time and facilitate the dynamic provisioning of apps across tenants

Die Einwilligung ist der Prozess, bei dem ein Ressourcenbesitzer einer Clientanwendung durch spezifische Berechtigungen die Autorisierung für den Zugriff auf geschützte Ressourcen im Auftrag des Ressourcenbesitzers gewährt.Consent is the process of a resource owner granting authorization for a client application to access protected resources, under specific permissions, on behalf of the resource owner. Für die Microsoft Identity Platform gilt Folgendes:The Microsoft identity platform:

  • Ermöglicht Benutzern und Administratoren, der App dynamisch die Zustimmung zum Zugriff auf Ressourcen in ihrem Namen zu erteilen oder zu verweigern.Enables users and administrators to dynamically grant or deny consent for the app to access resources on their behalf.
  • Ermöglicht es Administratoren, letztendlich zu entscheiden, welche Aktionen Apps ausführen und welche Benutzer bestimmte Apps verwenden dürfen und wie auf die Verzeichnisressourcen zugegriffen wird.Enables administrators to ultimately decide what apps are allowed to do and which users can use specific apps, and how the directory resources are accessed.

In der Microsoft Identity Platform beschreibt ein Anwendungsobjekt eine Anwendung als eine abstrakte Entität.In the Microsoft identity platform, an application object describes an application as an abstract entity. Zum Zeitpunkt der Bereitstellung verwendet die Microsoft Identity Platform das Anwendungsobjekt als Blaupause zum Erstellen eines Dienstprinzipals, der eine konkrete Instanz einer Anwendung in einem Verzeichnis oder Mandanten darstellt.At deployment time, the Microsoft identity platform uses the application object as a blueprint to create a service principal, which represents a concrete instance of an application within a directory or tenant. Mit dem Dienstprinzipal wird definiert, welche Aktionen die App in einem bestimmten Zielverzeichnis ausführen darf, wer sie verwenden kann, auf welche Ressourcen sie Zugriff besitzt usw.The service principal defines what the app can actually do in a specific target directory, who can use it, what resources it has access to, and so on. Die Microsoft Identity Platform erstellt mittels Einwilligung aus einem Anwendungsobjekt einen Dienstprinzipal.The Microsoft identity platform creates a service principal from an application object through consent.

Die folgende Abbildung zeigt einen vereinfachten Microsoft Identity Platform-Bereitstellungsablauf, der durch die Einwilligung gesteuert wird.The following diagram shows a simplified Microsoft identity platform provisioning flow driven by consent. Es sind zwei Mandanten (A und B) dargestellt.It shows two tenants (A and B). Mandant A ist der Besitzer der Anwendung.Tenant A owns the application. Mandant B instanziiert die Anwendung über einen Dienstprinzipal.Tenant B is instantiating the application via a service principal.

Vereinfachter Bereitstellungsablauf, der durch Zustimmung gesteuert wird

In diesem Bereitstellungsablauf geschieht Folgendes:In this provisioning flow:

  1. Ein Benutzer von Mandant B versucht, sich mit der App anzumelden, und der Autorisierungsendpunkt fordert ein Token für die Anwendung an.A user from tenant B attempts to sign in with the app, the authorization endpoint requests a token for the application.
  2. Die Anmeldeinformationen des Benutzers werden abgerufen und für die Authentifizierung überprüft.The user credentials are acquired and verified for authentication.
  3. Der Benutzer wird aufgefordert, dem Zugriff auf den Mandanten B für die App zuzustimmen.The user is prompted to provide consent for the app to gain access to tenant B.
  4. Die Microsoft Identity Platform verwendet das Anwendungsobjekt in Mandant A als Blaupause für die Erstellung eines Dienstprinzipals in Mandant B.The Microsoft identity platform uses the application object in tenant A as a blueprint for creating a service principal in tenant B.
  5. Der Benutzer erhält das angeforderte Token.The user receives the requested token.

Sie können diesen Vorgang für weitere Mandanten wiederholen.You can repeat this process for additional tenants. Der Mandant A enthält die Blaupause für die App (Anwendungsobjekt).Tenant A retains the blueprint for the app (application object). Benutzer und Administratoren aller anderen Mandanten, in denen der App die Zustimmung erteilt wird, behalten durch das entsprechende Dienstprinzipalobjekt in jedem Mandanten die Kontrolle darüber, welche Aktionen die Anwendung ausführen darf.Users and admins of all the other tenants where the app is given consent keep control over what the application is allowed to do via the corresponding service principal object in each tenant. Weitere Informationen finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Identity Platform.For more information, see Application and service principal objects in Microsoft identity platform.

Web-App-Anmeldefluss mit Azure ADWeb app sign-in flow with Azure AD

Wenn ein Benutzer im Browser zu einer Web-App navigiert, passiert Folgendes:When a user navigates in the browser to a web app, the following happens:

  • Die Web-App ermittelt, ob der Benutzer bereits authentifiziert wurde.The web app determines whether the user is authenticated.
  • Falls der Benutzer nicht authentifiziert wurde, delegiert die Web-App den Vorgang an Azure AD, damit der Benutzer angemeldet wird.If the user isn't authenticated, the web app delegates to Azure AD to sign in the user. Diese Anmeldung ist mit der Richtlinie der Organisation konform. Dies kann bedeuten, dass der Benutzer zum Eingeben seiner Anmeldeinformationen aufgefordert wird, indem die mehrstufige Authentifizierung oder ein Verfahren ganz ohne Kennwort (z. B. Windows Hello) verwendet wird.That sign in will be compliant with the policy of the organization, which may mean asking the user to enter their credentials, using multi-factor-authentication, or not using a password at all (for example using Windows Hello).
  • Der Benutzer wird aufgefordert, seine Einwilligung für den Zugriff zu erteilen, den die Client-App benötigt.The user is asked to consent to the access that the client app needs. Aus diesem Grund müssen Client-Apps bei Azure AD registriert werden. Azure AD kann dann Token für den Zugriff bereitstellen, für den der Benutzer seine Einwilligung erteilt hat.This is why client apps need to be registered with Azure AD, so that Azure AD can deliver tokens representing the access that the user has consented to.

Nach der erfolgreichen Authentifizierung des Benutzers:When the user has successfully authenticated:

  • Azure AD sendet ein Token an die Web-App.Azure AD sends a token to the web app.
  • Es wird ein Cookie gespeichert, das der Domäne von Azure AD, in der die Identität des Benutzers im Cookiebehälter des Browsers enthalten ist, zugeordnet ist.A cookie is saved, associated with Azure AD's domain, that contains the identity of the user in the browser's cookie jar. Wenn eine App den Browser das nächste Mal zum Navigieren zum Endpunkt für die Azure AD-Autorisierung verwendet, stellt der Browser das Cookie bereit, damit sich der Benutzer nicht erneut anmelden muss.The next time an app uses the browser to navigate to the Azure AD authorization end point, the browser presents the cookie so that the user doesn't have to sign in again. Auf diese Weise wird auch einmaliges Anmelden (SSO) ermöglicht.This is also the way that SSO is achieved. Das Cookie wird von Azure AD erstellt und ist nur für Azure AD verwendbar.The cookie is produced by Azure AD and can only be understood by Azure AD.
  • Anschließend wird das Token von der Web-App überprüft.The web app then validates the token. Wenn die Überprüfung erfolgreich ist, zeigt die Web-App die geschützte Seite an und speichert im Cookiebehälter des Browsers ein Sitzungscookie.If the validation succeeds, the web app displays the protected page and saves a session cookie in the browser's cookie jar. Wenn der Benutzer zu einer anderen Seite navigiert, verfügt die Web-App aufgrund des Sitzungscookies über die Information, dass der Benutzer authentifiziert wurde.When the user navigates to another page, the web app knows that the user is authenticated based on the session cookie.

Das folgende Sequenzdiagramm enthält eine Zusammenfassung dieser Interaktion:The following sequence diagram summarizes this interaction:

Authentifizierungsprozess für Web-Apps

Ermittlung der Authentifizierung des Benutzers durch die Web-AppHow a web app determines if the user is authenticated

Web-App-Entwickler können angeben, ob für alle oder nur für bestimmte Seiten eine Authentifizierung erforderlich ist.Web app developers can indicate whether all or only certain pages require authentication. In ASP.NET/ASP.NET Core wird hierfür beispielsweise das Attribut [Authorize] den Controlleraktionen hinzugefügt.For example, in ASP.NET/ASP.NET Core, this is done by adding the [Authorize] attribute to the controller actions.

Dieses Attribut bewirkt, dass für ASP.NET überprüft wird, ob ein Sitzungscookie mit der Identität des Benutzers vorhanden ist.This attribute causes ASP.NET to check for the presence of a session cookie containing the identity of the user. Falls kein Cookie vorhanden ist, leitet ASP.NET die Authentifizierung an den angegebenen Identitätsanbieter um.If a cookie isn't present, ASP.NET redirects authentication to the specified identity provider. Wenn Azure AD als Identitätsanbieter verwendet wird, leitet die Web-App die Authentifizierung an https://login.microsoftonline.com um, und es wird ein Dialogfeld für die Anmeldung angezeigt.If the identity provider is Azure AD, the web app redirects authentication to https://login.microsoftonline.com, which displays a sign-in dialog.

Delegierung der Anmeldung an Azure AD und Abruf eines Tokens durch die Web-AppHow a web app delegates sign-in to Azure AD and obtains a token

Die Benutzerauthentifizierung erfolgt über den Browser.User authentication happens via the browser. Für das OpenID-Protokoll werden die üblichen HTTP-Protokollnachrichten verwendet.The OpenID protocol uses standard HTTP protocol messages.

  • Die Web-App sendet „HTTP 202 (Umleitung)“ an den Browser, um Azure AD verwenden zu können.The web app sends an HTTP 202 (redirect) to the browser to use Azure AD.
  • Nachdem der Benutzer authentifiziert wurde, sendet Azure AD das Token an die Web-App, indem eine Umleitung über den Browser genutzt wird.When the user is authenticated, Azure AD sends the token to the web app by using a redirect through the browser.
  • Die Umleitung durch die Web-App erfolgt in Form eines Umleitungs-URIs.The redirect is provided by the web app in the form of a redirect URI. Dieser Umleitungs-URI wird unter dem Azure AD-Anwendungsobjekt registriert.This redirect URI is registered with the Azure AD application object. Es kann mehrere Umleitungs-URIs geben, weil die Anwendung ggf. unter mehreren URLs bereitgestellt wird.There can be several redirect URIs because the application may be deployed at several URLs. Daher muss die Web-App auch den zu verwendenden Umleitungs-URI angeben.So the web app will also need to specify the redirect URi to use.
  • Azure AD überprüft, ob der von der Web-App gesendete Umleitungs-URI einer der registrierten URIs für die App ist.Azure AD verifies that the redirect URI sent by the web app is one of the registered redirect URIs for the app.

Anmeldefluss mit Azure AD für Desktop- und mobile AppsDesktop and mobile app sign-in flow with Azure AD

Der oben beschriebene Ablauf gilt mit geringfügigen Abweichungen auch für Desktop- und mobile Anwendungen.The flow described above applies, with slight differences, to desktop and mobile applications.

Für Desktop- und mobile Anwendungen kann für die Authentifizierung ein eingebettetes Websteuerelement oder ein Systembrowser verwendet werden.Desktop and mobile applications can use an embedded Web control, or a system browser, for authentication. Im folgenden Diagramm ist dargestellt, wie eine Desktop- oder mobile App die Microsoft-Authentifizierungsbibliothek (Microsoft Authentication Library, MSAL) verwendet, um Zugriffstoken abzurufen und Web-APIs aufzurufen.The following diagram shows how a Desktop or mobile app uses the Microsoft authentication library (MSAL) to acquire access tokens and call web APIs.

Darstellung einer Desktop-App

Für die MSAL wird ein Browser genutzt, um Token abzurufen, und wie bei Web-Apps wird die Authentifizierung an Azure AD delegiert.MSAL uses a browser to get tokens, and as with web apps, delegates authentication to Azure AD.

Da von Azure AD das gleiche Identitätscookie wie für Web-Apps im Browser gespeichert wird, gilt Folgendes: Wenn die native oder mobile App den Systembrowser verwendet, wird unmittelbar SSO mit der entsprechenden Web-App ermöglicht.Because Azure AD saves the same identity cookie in the browser as it does for web apps, if the native or mobile app uses the system browser it will immediately get SSO with the corresponding web app.

Standardmäßig wird für die MSAL der Systembrowser genutzt. Eine Ausnahme stellen .NET Framework-Desktopanwendungen dar, bei denen ein eingebettetes Steuerelement verwendet wird, um eine stärker integrierte Benutzeroberfläche bereitzustellen.By default, MSAL uses the system browser except for .NET Framework desktop applications where an embedded control is used to provide a more integrated user experience.

Nächste SchritteNext steps

Machen Sie sich unter Microsoft Identity Platform – Glossar für Entwickler mit den wichtigsten Begriffen vertraut.See the Microsoft identity platform developer glossary to get familiar with common terms. Weitere Informationen zu anderen Szenarien für die Authentifizierung von Benutzern, die von der Microsoft Identity Platform unterstützt werden, finden Sie unter Authentifizierungsflüsse und App-Szenarien.See Authentication flows and app scenarios to learn more about other scenarios for authenticating users supported by the Microsoft identity platform. Weitere Informationen zu den Microsoft-Bibliotheken, mit denen Sie für Microsoft-Konten, Azure AD-Konten und Azure AD B2C-Benutzer geeignete Anwendungen entwickeln können – alles mit einem zentralen, optimierten Programmiermodell –, finden Sie unter MSAL-Bibliotheken.See MSAL libraries to learn about the Microsoft libraries that help you develop applications that work with Microsoft Accounts, Azure AD accounts, and Azure AD B2C users all in a single, streamlined programming model.