Was ist Authentifizierung?What is authentication?

Warnung

Dieser Inhalt gilt für den älteren v1.0-Endpunkt von Azure AD.This content is for the older Azure AD v1.0 endpoint. Verwenden Sie Microsoft Identity Platform für neue Projekte.Use the Microsoft identity platform for new projects.

Authentifizierung ist die Anforderung ordnungsgemäßer Anmeldeinformationen von einer Partei. Sie bildet die Grundlage für die Erstellung eines Sicherheitsprinzipals für die Identitäts- und Zugriffssteuerung.Authentication is the act of challenging a party for legitimate credentials, providing the basis for creation of a security principal to be used for identity and access control. Vereinfacht ausgedrückt, ist es der Vorgang, mit dem Sie den Nachweis erbringen, dass Sie derjenige sind, für den Sie sich ausgeben.In simpler terms, it's 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.

Autorisierung ist die Gewährung einer Handlungsberechtigung für einen authentifizierten Sicherheitsprinzipal.Authorization is the act of granting an authenticated security principal 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 it. Autorisierung wird manchmal verkürzt als AuthZ bezeichnet.Authorization is sometimes shortened to AuthZ.

Azure Active Directory für Entwickler (v1.0) (Azure AD) vereinfacht die Authentifizierung für Anwendungsentwickler durch die Bereitstellung von Identity-as-a-Service, durch Unterstützung branchenüblicher Protokolle wie OAuth 2.0 und OpenID Connect sowie durch Open-Source-Bibliotheken für verschiedene Plattformen, sodass Sie schnell mit der Programmierung beginnen können.Azure Active Directory for developers (v1.0) (Azure AD) 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.

Im Programmiermodell von Azure AD sind im Wesentlichen zwei Anwendungsfälle vorgesehen:There are two primary use cases in the Azure AD programming model:

  • Im Rahmen einer OAuth 2.0-Autorisierungsgewährung: Wenn der Ressourcenbesitzer die Clientanwendung autorisiert und dem Client dadurch Zugriff auf Ressourcen des Ressourcenbesitzers gewährt.During an OAuth 2.0 authorization grant flow - when the resource owner grants authorization to the client application, allowing the client to access the resource owner's resources.
  • Im Rahmen des Ressourcenzugriffs durch den Client: Gemäß Implementierung durch den Ressourcenserver unter Verwendung der Werte des Anspruchs aus dem Zugriffstoken, die als Grundlage für Zugriffssteuerungsentscheidungen herangezogen werden.During resource access by the client - as implemented by the resource server, using the claims values present in the access token to make access control decisions based upon them.

Azure AD-AuthentifizierungsgrundlagenAuthentication basics in Azure AD

Betrachten Sie das einfachste Szenario, bei dem eine Identität erforderlich ist: Ein Benutzer in einem Webbrowser muss sich gegenüber einer Webanwendung authentifizieren.Consider the most basic scenario where identity is required: a user in a web browser needs to authenticate to a web application. Im folgenden Diagramm wird dieses Szenario veranschaulicht:The following diagram shows this scenario:

Übersicht über die Anmeldung bei Webanwendungen

Folgendes müssen Sie über die verschiedenen im Diagramm gezeigten Komponenten wissen:Here's what you need to know about the various components shown in the diagram:

  • Azure AD ist der Identitätsanbieter.Azure AD is the identity provider. Der Identitätsanbieter ist für die Überprüfung der Identität von Benutzern und Anwendungen zuständig, die im Verzeichnis einer Organisation vorhanden sind, und bei erfolgreicher Authentifizierung dieser Benutzer und Anwendungen auch für die Ausgabe von Sicherheitstoken.The identity provider is responsible for verifying the identity of users and applications that exist in an organization's directory, and issues security tokens upon successful authentication of those users and applications.
  • Jede Anwendung, die ihre Authentifizierung in Azure AD auslagern möchte, muss in Azure Active Directory (Azure AD) registriert werden.An application that wants to outsource authentication to Azure AD must be registered in Azure Active Directory (Azure AD). Azure AD registriert die App im Verzeichnis und identifiziert sie eindeutig.Azure AD registers and uniquely identifies the app in the directory.
  • Mit den Open-Source-Authentifizierungsbibliotheken von Azure AD können sich die Entwickler um die Protokolldetails kümmern und die Authentifizierung für Sie vereinfachen.Developers can use the open-source Azure AD authentication libraries to make authentication easy by handling the protocol details for you. Weitere Informationen finden Sie in den v2.0-Authentifizierungsbibliotheken und v1.0-Authentifizierungsbibliotheken für Microsoft Identity Platform.For more info, see Microsoft identity platform v2.0 authentication libraries and v1.0 authentication libraries.
  • Nach der Authentifizierung eines Benutzers muss die Anwendung das Sicherheitstoken des Benutzers überprüfen, um sicherzustellen, dass die Authentifizierung erfolgreich war.Once a user has been authenticated, the application must validate the user's security token to ensure that authentication was successful. Es sind Schnellstarts, Tutorials und Codebeispiele in einer Vielzahl von Sprachen und Frameworks verfügbar, die zeigen, wie die Anwendung vorgehen muss.You can find quickstarts, tutorials, and code samples in a variety of languages and frameworks which show what the application must do.
    • Um eine App schnell zu erstellen und Funktionen wie das Abrufen von Token, Aktualisieren von Token, Anmelden eines Benutzers, Anzeigen einiger Benutzerinformationen und vieles mehr hinzuzufügen, lesen Sie den Abschnitt Schnellstarts in der Dokumentation.To quickly build an app and add functionality like getting tokens, refreshing tokens, signing in a user, displaying some user info, and more, see the Quickstarts section of the documentation.
    • Ausführlichere, szenariobasierte Verfahren für wichtige Authentifizierungsentwickleraufgaben wie das Abrufen von Zugriffstoken und deren Verwendung in Aufrufen der Microsoft Graph-API und anderer APIs, die Implementierung der Anmeldung bei Microsoft mit einer traditionellen webbrowsergestützten App unter Verwendung von OpenID Connect und mehr finden Sie im Abschnitt Tutorials der Dokumentation.To get in-depth, scenario-based procedures for top auth developer tasks like obtaining access tokens and using them in calls to the Microsoft Graph API and other APIs, implementing sign-in with Microsoft with a traditional web browser-based app using OpenID Connect, and more, see the Tutorials section of the documentation.
    • Um Codebeispiele herunterzuladen, navigieren Sie zu GitHub.To download code samples, go to GitHub.
  • Der Fluss von Anforderungen und Antworten für den Authentifizierungsprozess ergibt sich aus dem von Ihnen verwendeten Authentifizierungsprotokoll (etwa OAuth 2.0, OpenID Connect, WS-Federation oder SAML 2.0).The flow of requests and responses for the authentication process is determined by the authentication protocol that you used, such as OAuth 2.0, OpenID Connect, WS-Federation, or SAML 2.0. Weitere Informationen zu Protokollen finden Sie im Abschnitt Konzepte > Authentifizierungsprotokoll der Dokumentation.For more info about protocols, see the Concepts > Authentication protocol section of the documentation.

Im Beispielszenario oben können Sie die Apps gemäß diesen beiden Rollen klassifizieren:In the example scenario above, you can classify the apps according to these two roles:

  • Apps, die sicher auf Ressourcen zugreifen müssenApps that need to securely access resources
  • Apps, die die Rolle der Ressource selbst übernehmenApps that play the role of the resource itself

Ausgabe von Token und Codes für die einzelnen AbläufeHow each flow emits tokens and codes

Je nach Art Ihres Clients können die Authentifizierungsflows (einer oder mehrere) verwendet werden, die von Azure AD unterstützt werden.Depending on how your client is built, it can use one (or several) of the authentication flows supported by Azure AD. Mit diesen Abläufen können verschiedene Token (ID-Token, Aktualisierungstoken, Zugriffstoken) und Autorisierungscodes erstellt werden, und es sind unterschiedliche Token erforderlich.These flows can produce a variety of tokens (id_tokens, refresh tokens, access tokens) as well as authorization codes, and require different tokens to make them work. Dieses Diagramm enthält eine Übersicht:This chart provides an overview:

FlowFlow ErforderlichRequires id_tokenid_token Zugriffstokenaccess token Aktualisierungstokenrefresh token Autorisierungscodeauthorization code
AutorisierungscodeflowAuthorization code flow xx xx xx xx
Impliziter FlowImplicit flow xx xx
Hybrid-OIDC-AblaufHybrid OIDC flow xx xx
Einlösung des AktualisierungstokensRefresh token redemption Aktualisierungstokenrefresh token xx xx xx
„Im Auftrag von“-AblaufOn-behalf-of flow Zugriffstokenaccess token xx xx xx
ClientanmeldeinformationenClient credentials x (nur App)x (app-only)

Für Token, die im impliziten Modus ausgestellt werden, gilt eine Längenbeschränkung, weil sie per URL zurück an den Browser übergeben werden (response_mode ist hierbei query oder fragment).Tokens issued via the implicit mode have a length limitation due to being passed back to the browser via the URL (where response_mode is query or fragment). Für einige Browser gilt eine Größenbeschränkung für die URL, die in die Browserleiste eingefügt werden kann. Es tritt ein Fehler auf, wenn die URL zu lang ist.Some browsers have a limit on the size of the URL that can be put in the browser bar and fail when it is too long. Diese Token verfügen daher nicht über Ansprüche der Art groups oder wids.Thus, these tokens do not have groups or wids claims.

Da Sie nun einen Überblick über die Grundlagen haben, lesen Sie weiter, um das App-Identitätsmodell und die API zu verstehen, um zu erfahren, wie die Bereitstellung in Azure AD funktioniert, und um Links zu detaillierten Informationen zu den allgemeinen Szenarien abzurufen, die Azure AD unterstützt.Now that you have an overview of the basics, read on to understand the identity app model and API, how provisioning works in Azure AD, and links to detailed info about the common scenarios that Azure AD supports.

AnwendungsmodellApplication model

Azure AD stellt Anwendungen dar, die einem bestimmten Modell folgen, das zwei Hauptfunktionen erfüllen soll:Azure AD represents applications following a specific model that's designed to fulfill two main functions:

  • Identifizieren der App anhand der von ihr unterstützten Authentifizierungsprotokolle: Dies beinhaltet die Aufzählung aller Bezeichner, URLs, Geheimnisse und verwandten Informationen, die zur Authentifizierungszeit benötigt werden.Identify the app according to the authentication protocols it supports - This involves enumerating all the identifiers, URLs, secrets, and related information that are needed at authentication time. Auf Azure AD trifft dabei Folgendes zu:Here, Azure AD:

    • Enthält alle Daten, die zur Unterstützung der Authentifizierung zur Laufzeit erforderlich sind.Holds all the data required to support authentication at run time.
    • Enthält alle Daten, um zu entscheiden, auf welche Ressourcen eine App zugreifen muss und ob 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 whether a given request should be fulfilled and under what circumstances.
    • Stellt die Infrastruktur für die Implementierung der App-Bereitstellung innerhalb des Mandanten des App-Entwicklers und für andere Azure AD-Mandanten bereit.Provides the infrastructure for implementing app provisioning within the app developer's tenant and to any other Azure AD tenant.
  • Behandeln der Zustimmung des Benutzers während der Tokenanforderungszeit und Ermöglichen der dynamischen mandantenübergreifenden Bereitstellung von Apps. Hierbei übernimmt Azure AD die folgenden Aufgaben:Handle user consent during token request time and facilitate the dynamic provisioning of apps across tenants - Here, Azure AD:

    • 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 Azure AD beschreibt ein Anwendungsobjekt eine Anwendung als eine abstrakte Entität.In Azure AD, an application object describes an application as an abstract entity. Entwickler arbeiten mit Anwendungen.Developers work with applications. Zum Zeitpunkt der Bereitstellung verwendet Azure AD ein angegebenes Anwendungsobjekt als Blaupause zum Erstellen eines Dienstprinzipals, der eine konkrete Instanz einer Anwendung in einem Verzeichnis oder einem Mandanten darstellt.At deployment time, Azure AD uses a given application object as a blueprint to create a service principal, which represents a concrete instance of an application within a directory or tenant. Es ist der Dienstprinzipal, der definiert, welche Aktionen die App in einem bestimmten Zielverzeichnis ausführen darf, wer sie verwenden kann, auf welche Ressourcen sie Zugriff besitzt usw.It's the service principal that 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. Azure AD erstellt einen Dienstprinzipal aus einem Anwendungsobjekt über Zustimmung.Azure AD creates a service principal from an application object through consent.

Die folgende Abbildung zeigt einen vereinfachten Azure AD-Bereitstellungsablauf, der durch Zustimmung gesteuert wird.The following diagram shows a simplified Azure AD provisioning flow driven by consent. Darin gibt es zwei Mandanten (A und B), wobei Mandant A Besitzer der Anwendung ist, und Mandant B die Anwendung über einen Dienstprinzipal instanziiert.In it, two tenants exist (A and B), where tenant A owns the application, and 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. Azure AD verwendet das Anwendungsobjekt in Mandant A als Blaupause für das Erstellen eines Dienstprinzipals in Mandant B.Azure AD 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 beliebig oft für andere Mandanten (C, D, usw.) wiederholen.You can repeat this process as many times as you want for other tenants (C, D, and so on). 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 Mandaten 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 retain control over what the application is allowed to do through 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.

Ansprüche in Sicherheitstokens von Azure ADClaims in Azure AD security tokens

Von Azure AD ausgestellte Sicherheitstoken (Zugriffs- und ID-Token) enthalten Ansprüche oder Assertionen von Informationen zum authentifizierten Antragsteller.Security tokens (access and ID tokens) issued by Azure AD contain claims, or assertions of information about the subject that has been authenticated. Anwendungen können Ansprüche für verschiedene Aufgaben verwenden, z.B. für die folgenden:Applications can use claims for various tasks, including:

  • Überprüfen des TokensValidate the token
  • Identifizieren des Verzeichnismandanten des AntragstellersIdentify the subject's directory tenant
  • Anzeigen der BenutzerinformationenDisplay user information
  • Bestimmen der Autorisierung des AntragstellersDetermine the subject's authorization

Welche Ansprüche in einem Sicherheitstoken enthalten sind, hängt von der Art des Tokens, von der Art der Anmeldeinformationen für die Benutzerauthentifizierung sowie von der Anwendungskonfiguration ab.The claims present in any given security token are dependent upon the type of token, the type of credential used to authenticate the user, and the application configuration.

Die folgende Tabelle enthält eine kurze Beschreibung der einzelnen Anspruchsarten, die von Azure AD ausgegeben werden.A brief description of each type of claim emitted by Azure AD is provided in the table below. Weitere Informationen finden Sie finden Sie in den Themen zu den Zugriffstoken und ID-Token, die von Azure AD ausgestellt werden.For more detailed information, see the access tokens and ID tokens issued by the Azure AD.

AnspruchClaim BESCHREIBUNGDescription
Anwendungs-IDApplication ID Die Anwendung, die das Token verwendet.Identifies the application that is using the token.
ZielgruppeAudience Die Empfängerressource, für die das Token vorgesehen ist.Identifies the recipient resource the token is intended for.
Application Authentication Context Class Reference (Kontextklassenreferenz für die Anwendungsauthentifizierung)Application Authentication Context Class Reference Die Art der Clientauthentifizierung (öffentlicher oder vertraulicher Client).Indicates how the client was authenticated (public client vs. confidential client).
AuthentifizierungszeitpunktAuthentication Instant Datum und Uhrzeit der Authentifizierung.Records the date and time when the authentication occurred.
AuthentifizierungsmethodeAuthentication Method Die Authentifizierungsmethode für den Antragsteller des Tokens (Kennwort, Zertifikat oder Ähnliches).Indicates how the subject of the token was authenticated (password, certificate, etc.).
First Name (Vorname)First Name Der Vorname des Benutzers gemäß Angabe in Azure AD.Provides the given name of the user as set in Azure AD.
GruppenGroups Objekt-IDs von Azure AD-Gruppen, denen der Benutzer angehört.Contains object IDs of Azure AD groups that the user is a member of.
IdentitätsanbieterIdentity Provider Der Identitätsanbieter, der den Antragsteller des Tokens authentifiziert hat.Records the identity provider that authenticated the subject of the token.
Ausgestellt umIssued At Die Zeit, zu der das Token ausgestellt wurde (wird häufig für die Tokenaktualität verwendet).Records the time at which the token was issued, often used for token freshness.
Issuer (Aussteller)Issuer Der STS, der das Token ausgestellt hat, sowie der Azure AD-Mandant.Identifies the STS that emitted the token as well as the Azure AD tenant.
Last Name (Nachname)Last Name Der Nachname des Benutzers gemäß Angabe in Azure AD.Provides the surname of the user as set in Azure AD.
NameName Ein lesbarer Wert, der Aufschluss über den Antragsteller des Tokens gibt.Provides a human readable value that identifies the subject of the token.
ObjectIDObject ID Ein unveränderlicher, eindeutiger Bezeichner des Antragstellers in Azure AD.Contains an immutable, unique identifier of the subject in Azure AD.
RollenRoles Anzeigenamen von Azure AD-Anwendungsrollen, die dem Benutzer erteilt wurden.Contains friendly names of Azure AD Application Roles that the user has been granted.
ScopeScope Die Berechtigungen, die der Clientanwendung gewährt wurden.Indicates the permissions granted to the client application.
SubjectSubject Der Prinzipal, für den das Token Informationen bestätigt.Indicates the principal about which the token asserts information.
Mandanten-IDTenant ID Ein unveränderlicher, eindeutiger Bezeichner des Verzeichnismandanten, der das Token ausgestellt hat.Contains an immutable, unique identifier of the directory tenant that issued the token.
TokengültigkeitsdauerToken Lifetime Das Zeitintervall, für das ein Token gültig ist.Defines the time interval within which a token is valid.
BenutzerprinzipalnameUser Principal Name Der Benutzerprinzipalname des Antragstellers.Contains the user principal name of the subject.
VersionVersion Die Versionsnummer des Tokens.Contains the version number of the token.

Nächste SchritteNext steps