Grundlagen zu Authentifizierung und Autorisierung für Microsoft GraphAuthentication and authorization basics for Microsoft Graph

Um Microsoft Graph aufzurufen, muss Ihre Anwendung ein Zugriffstoken von Microsoft Identity Platform abrufen.To call Microsoft Graph, your app must acquire an access token from the Microsoft identity platform. Das Zugriffstoken enthält Informationen zu Ihrer App und die Berechtigungen, über die es für die Ressourcen und APIs verfügt, die über Microsoft Graph bereitgestellt werden.The access token contains information about your app and the permissions it has for the resources and APIs available through Microsoft Graph. Um ein Zugriffstoken abzurufen, muss Ihre App bei Microsoft Identity Platform registriert sein und entweder durch einen Benutzer oder einen Administrator zum Zugreifen auf die benötigten Microsoft Graph-Ressourcen autorisiert werden.To get an access token, your app must be registered with the Microsoft identity platform and be authorized by either a user or an administrator for access to the Microsoft Graph resources it needs.

Dieses Thema enthält eine Übersicht über Zugriffstoken, Microsoft Identity Platform und das Verfahren zum Abrufen von Zugriffstoken durch Ihre App.This topic provides an overview of access tokens, the Microsoft identity platform, and how your app can get access tokens. Wenn Sie mit der Verfahren zum Integrieren einer App in Microsoft Identity Platform zum Abrufen von Token vertraut sind, finden Sie Informationen und Beispiele speziell zu Microsoft Graph unter Nächste Schritte.If you are already familiar with integrating an app with the Microsoft identity platform to get tokens, see the Next Steps section for information and samples specific to Microsoft Graph.

ZugriffstokenAccess tokens

Von Microsoft Identity Platform ausgestellte Zugriffstoken sind base64-codierte JSON Web Token (JWT).Access tokens issued by the Microsoft identity platform are base 64 encoded JSON Web Tokens (JWT). Sie enthalten Informationen (Ansprüche), die von Microsoft Identity Platform gesicherte Web-APIs wie Microsoft Graph verwenden, um die aufrufende Funktion zu überprüfen und sicherzustellen, dass diese über die richtigen Berechtigungen zum Ausführen des angeforderten Vorgangs verfügt.They contain information (claims) that web APIs secured by the Microsoft identity platform, like Microsoft Graph, use to validate the caller and to ensure that the caller has the proper permissions to perform the operation they're requesting. Beim Aufrufen von Microsoft Graph können Sie Zugriffstoken als undurchsichtig (opak) behandeln.When calling Microsoft Graph, you can treat access tokens as opaque. Zugriffstoken sollten immer über einen sicheren Kanal wie z. B. Transport Layer Security (HTTPS) übertragen werden.You should always transmit access tokens over a secure channel, such as transport layer security (HTTPS).

Es folgt ein Beispiel für ein Microsoft Identity Platform-Zugriffstoken:The following is an example of a Microsoft identity platform access token:

EwAoA8l6BAAU7p9QDpi/D7xJLwsTgCg3TskyTaQAAXu71AU9f4aS4rOK5xoO/SU5HZKSXtCsDe0Pj7uSc5Ug008qTI+a9M1tBeKoTs7tHzhJNSKgk7pm5e8d3oGWXX5shyOG3cKSqgfwuNDnmmPDNDivwmi9kmKqWIC9OQRf8InpYXH7NdUYNwN+jljffvNTewdZz42VPrvqoMH7hSxiG7A1h8leOv4F3Ek/oeJX6U8nnL9nJ5pHLVuPWD0aNnTPTJD8Y4oQTp5zLhDIIfaJCaGcQperULVF7K6yX8MhHxIBwek418rKIp11om0SWBXOYSGOM0rNNN59qNiKwLNK+MPUf7ObcRBN5I5vg8jB7IMoz66jrNmT2uiWCyI8MmYDZgAACPoaZ9REyqke+AE1/x1ZX0w7OamUexKF8YGZiw+cDpT/BP1GsONnwI4a8M7HsBtDgZPRd6/Hfqlq3HE2xLuhYX8bAc1MUr0gP9KuH6HDQNlIV4KaRZWxyRo1wmKHOF5G5wTHrtxg8tnXylMc1PKOtaXIU4JJZ1l4x/7FwhPmg9M86PBPWr5zwUj2CVXC7wWlL/6M89Mlh8yXESMO3AIuAmEMKjqauPrgi9hAdI2oqnLZWCRL9gcHBida1y0DTXQhcwMv1ORrk65VFHtVgYAegrxu3NDoJiDyVaPZxDwTYRGjPII3va8GALAMVy5xou2ikzRvJjW7Gm3XoaqJCTCExN4m5i/Dqc81Gr4uT7OaeypYTUjnwCh7aMhsOTDJehefzjXhlkn//2eik+NivKx/BTJBEdT6MR97Wh/ns/VcK7QTmbjwbU2cwLngT7Ylq+uzhx54R9JMaSLhnw+/nIrcVkG77Hi3neShKeZmnl5DC9PuwIbtNvVge3Q+V0ws2zsL3z7ndz4tTMYFdvR/XbrnbEErTDLWrV6Lc3JHQMs0bYUyTBg5dThwCiuZ1evaT6BlMMLuSCVxdBGzXTBcvGwihFzZbyNoX+52DS5x+RbIEvd6KWOpQ6Ni+1GAawHDdNUiQTQFXRxLSHfc9fh7hE4qcD7PqHGsykYj7A0XqHCjbKKgWSkcAg==

Zum Aufrufen von Microsoft Graph fügen Sie das Zugriffstoken als Bearertoken an den Autorisierungsheader einer HTTP-Anforderung an.To call Microsoft Graph, you attach the access token as a Bearer token to the Authorization header in an HTTP request. Der folgende Aufruf gibt beispielweise die Profilinformationen des angemeldeten Benutzers zurück (das Zugriffstoken wurde zur besseren Lesbarkeit gekürzt):For example, the following call that returns the profile information of the signed-in user (the access token has been shortened for readability):

HTTP/1.1
Authorization: Bearer EwAoA8l6BAAU ... 7PqHGsykYj7A0XqHCjbKKgWSkcAg==
Host: graph.microsoft.com`
GET https://graph.microsoft.com/v1.0/me/

Registrieren Ihrer App bei Microsoft Identity PlatformRegister your app with the Microsoft identity platform

Bevor Ihre App ein Token von Microsoft Identity Platform beziehen kann, muss es im Azure-Portal registriert werden.Before your app can get a token from the Microsoft identity platform, it must be registered in the Azure portal. Durch die Registrierung wird Ihre App in Microsoft Identity Platform integriert, und es werden die zum Abrufen von Token verwendeten Informationen festgelegt, beispielsweise:Registration integrates your app with the Microsoft identity platform and establishes the information that it uses to get tokens, including:

  • Anwendungs-ID: Ein eindeutiger Bezeichner, der von Microsoft Identity Platform zugewiesen wird.Application ID: A unique identifier assigned by the Microsoft identity platform.
  • Umleitungs-URI/-URL: Ein oder mehrere Endpunkte, an denen Ihre App Antworten von Microsoft Identity Platform empfängt.Redirect URI/URL: One or more endpoints at which your app will receive responses from the Microsoft identity platform. (Bei nativen und mobilen Apps ist dies ein von Microsoft Identity Platform zugewiesener URI.)(For native and mobile apps, this is a URI assigned by the Microsoft identity platform.)
  • Anwendungsgeheimnis: Ein Kennwort oder ein öffentliches/privates Schlüsselpaar, mit dem sich Ihre App bei Microsoft Identity Platform authentifiziert.Application Secret: A password or a public/private key pair that your app uses to authenticate with the Microsoft identity platform. (Für native oder mobile Apps nicht erforderlich.)(Not needed for native or mobile apps.)

Die während der Registrierung konfigurierten Eigenschaften werden in der Anforderung verwendet.The properties configured during registration are used in the request. In der folgenden Tokenanforderung beispielsweise ist client_id die Anwendungs-ID, redirect_uri ist einer der registrierten Umleitungs-URIs Ihrer App, und client_secret ist das Anwendungsgeheimnis.For example, in the following token request: client_id is the Application ID, redirect_uri is one of your app's registered Redirect URIs, and client_secret is the Application Secret.

// Line breaks for legibility only

POST /common/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20mail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh    // NOTE: Only required for web apps

Microsoft Graph-BerechtigungenMicrosoft Graph permissions

Microsoft Graph macht differenzierte Berechtigungen verfügbar, die den Zugriff von Apps auf Ressourcen wie Benutzer, Gruppen und E-Mails steuern.Microsoft Graph exposes granular permissions that control the access that apps have to resources, like users, groups, and mail. Als Entwickler entscheiden Sie, welche Berechtigungen für Microsoft Graph angefordert werden.As a developer, you decide which permissions to request for Microsoft Graph. Wenn ein Benutzer sich bei Ihrer App anmeldet, erhält er oder in einigen Fällen ein Administrator die Möglichkeit, diesen Berechtigungen zuzustimmen.When a user signs in to your app they, or, in some cases, an administrator, are given a chance to consent to these permissions. Falls der Benutzer zustimmt, erhält Ihre App Zugriff auf die angeforderten Ressourcen und APIs.If the user consents, your app is given access to the resources and APIs that it has requested. Für Apps, die ohne angemeldeten Benutzer ausgeführt werden, kann den Berechtigungen während der Installation der App von einem Administrator vorab zugestimmt werden (vorab genehmigte Apps).For apps that don't take a signed-in user, permissions can be pre-consented to by an administrator when the app is installed.

Microsoft Graph verfügt über zwei Arten von Berechtigungen:Microsoft Graph has two types of permissions:

  • Delegierte Berechtigungen werden von Apps verwendet, die mit angemeldetem Benutzer ausgeführt werden.Delegated permissions are used by apps that have a signed-in user present. Bei diesen Apps stimmt der Benutzer oder ein Administrator den von der App angeforderten Berechtigungen zu, und die App kann als angemeldeter Benutzer agieren, wenn sie Aufrufe an Microsoft Graph sendet.For these apps either the user or an administrator consents to the permissions that the app requests and the app can act as the signed-in user when making calls to Microsoft Graph. Einigen delegierten Berechtigungen kann von Benutzern zugestimmt werden, die kein Administrator sind, aber einige höhere Rechte erfordern Administratorzustimmung.Some delegated permissions can be consented by non-administrative users, but some higher-privileged permissions require administrator consent.

  • Anwendungsberechtigungen werden von Apps verwendet, die keinen angemeldeten Benutzer erfordern, z. B. Apps, die als Hintergrunddienste oder Daemons ausgeführt werden.Application permissions are used by apps that run without a signed-in user present; for example, apps that run as background services or daemons. Für Anwendungsberechtigungen ist immer die Einwilligung eines Administrators erforderlich.Application permissions can only be consented by an administrator.

Effektive Berechtigungen sind die Berechtigungen, über die Ihre App verfügt, wenn sie Aufrufe an Microsoft Graph sendet. Es ist wichtig, den Unterschied zwischen den delegierten und Anwendungsberechtigungen zu verstehen, die Ihren Apps gewährt werden, und ihren effektiven Berechtigungen beim Senden von Aufrufen an Microsoft Graph.Effective permissions are the permissions that your app will have when making requests to Microsoft Graph. It is important to understand the difference between the delegated and application permissions that your app is granted and its effective permissions when making calls to Microsoft Graph.

  • Bei delegierten Berechtigungen sind die effektiven Berechtigungen der App die Schnittmenge der delegierten Berechtigungen, die der App (per Zustimmung) gewährt wurden und den Rechten des derzeit angemeldeten Benutzers.For delegated permissions, the effective permissions of your app will be the intersection of the delegated permissions the app has been granted (via consent) and the privileges of the currently signed-in user. Ihre App kann nie mehr Rechte als der angemeldete Benutzer haben.Your app can never have more privileges than the signed-in user. In Organisationen werden die Rechte des angemeldeten Benutzers ggf. durch eine Richtlinie oder die Mitgliedschaft in einer oder mehreren Administratorrollen bestimmt.Within organizations, the privileges of the signed-in user may be determined by policy or by membership in one or more administrator roles. Weitere Informationen zu Administratorrollen finden Sie unter Zuweisen von Administratorrollen in Azure Active Directory.For more information about administrator roles, see Assigning administrator roles in Azure Active Directory.

    Nehmen wir beispielsweise an, Ihrer App wurde die delegierte Berechtigung "User.ReadWrite.All" gewährt.For example, assume your app has been granted the User.ReadWrite.All delegated permission. Diese Berechtigung gewährt Ihrer App nominell die Berechtigung zum Lesen und Aktualisieren des Profils aller Benutzer in einer Organisation.This permission nominally grants your app permission to read and update the profile of every user in an organization. Wenn der angemeldete Benutzer ein globaler Administrator ist, kann Ihre App das Profil aller Benutzer in der Organisation aktualisieren.If the signed-in user is a global administrator, your app will be able to update the profile of every user in the organization. Wenn der angemeldete Benutzer jedoch kein Mitglied einer Administratorrolle ist, kann Ihre App nur das Profil des angemeldeten Benutzers aktualisieren.However, if the signed-in user is not in an administrator role, your app will be able to update only the profile of the signed-in user. Die Profile anderer Benutzer in der Organisation können nicht von der App aktualisiert werden, da der Benutzer, in dessen Namen die App agieren darf, nicht über diese Rechte verfügt.It will not be able to update the profiles of other users in the organization because the user that it has permission to act on behalf of does not have those privileges.

  • Bei Anwendungsberechtigungen sind die effektiven Berechtigungen der App sämtliche Rechte, die die Berechtigung impliziert.For application permissions, the effective permissions of your app will be the full level of privileges implied by the permission. Eine App mit der Anwendungsberechtigung "User.ReadWrite.All" kann beispielsweise das Profil aller Benutzer in der Organisation aktualisieren.For example, an app that has the User.ReadWrite.All application permission can update the profile of every user in the organization.

Hinweis Standardmäßig können Apps, denen Anwendungsberechtigungen für die folgenden Datasets erteilt wurden, auf alle Postfächer in der Organisation zugreifen:Note By default, apps that have been granted application permissions to the following data sets can access all the mailboxes in the organization:

Administratoren können die App-Zugriffsrichtlinie so konfigurieren, dass der Zugriff auf bestimmte Postfächer eingeschränkt wird.Administrators can configure application access policy to limit app access to specific mailboxes.

Eine vollständige Liste der delegierten Berechtigungen und Anwendungsberechtigungen für Microsoft Graph sowie Informationen dazu, welche für Berechtigungen Administratorzustimmung erforderlich ist, finden Sie in der Berechtigungsreferenz.For a complete list of delegated and application permissions for Microsoft Graph, as well as which permissions require administrator consent, see the Permissions reference.

Abrufen eines ZugriffstokensGetting an access token

Wie die meisten Entwickler werden auch Sie wahrscheinlich Authentifizierungsbibliotheken zum Verwalten Ihrer Tokeninteraktionen mit Microsoft Identity Platform verwenden.Like most developers, you will probably use authentication libraries to manage your token interactions with the Microsoft identity platform. Authentifizierungsbibliotheken nehmen dem Entwickler viele Protokolldetails wie Überprüfung, Cookiebehandlung, Zwischenspeicherung von Token und Aufrechterhaltung sicherer Verbindungen ab, sodass Sie sich auf die Entwicklung Ihrer App konzentrieren können.Authentication libraries abstract many protocol details, like validation, cookie handling, token caching, and maintaining secure connections, away from the developer and let you focus your development on your app. Microsoft veröffentlicht Open Source-Clientbibliotheken und Servermiddleware.Microsoft publishes open source client libraries and server middleware.

Für den Microsoft Identity Platform-Endpunkt:For the Microsoft identity platform endpoint:

  • Microsoft Authentication Library (MSAL)-Clientbibliotheken sind für .NET, JavaScript, Android und Objective-c verfügbar. Alle Plattformen befinden sich in produktionsunterstützter Vorschau, und für den Fall der Einführung grundlegender Änderungen garantiert Microsoft einen Upgradepfad.Microsoft Authentication Library (MSAL) client libraries are available for .NET, JavaScript, Android, and Objective-c. All platforms are in production-supported preview, and, in the event breaking changes are introduced, Microsoft guarantees a path to upgrade.
  • Servermiddleware von Microsoft steht für .NET Core und ASP.NET (OWIN OpenID Connect und OAuth) sowie für Node.js (Microsoft Identity Platform und Passport.js) zur Verfügung.Server middleware from Microsoft is available for .NET core and ASP.NET (OWIN OpenID Connect and OAuth) and for Node.js (Microsoft the Microsoft identity platform Passport.js).
  • Microsoft Identity Platform ist mit vielen Authentifizierungsbibliotheken von Drittanbietern kompatibel.The Microsoft identity platform is compatible with many third-party authentication libraries.

Eine vollständige Liste der Microsoft-Clientbibliotheken, Microsoft-Servermiddleware und kompatibler Bibliotheken von Drittanbietern finden Sie unter Microsoft Identity Platform-Authentifizierungsbibliotheken.For a complete list of Microsoft client libraries, Microsoft server middleware, and compatible third-party libraries, see Microsoft identity platform authentication libraries.

Sie brauchen keine Authentifizierungsbibliothek zu verwenden, um ein Zugriffstoken zu abzurufen.You do not need to use an authentication library to get an access token. Informationen dazu, wie Sie die Microsoft Identity Platform-Endpunkte ohne Hilfe einer Authentifizierungsbibliothek direkt verwenden können, finden Sie unter Microsoft Identity Platform-Authentifizierung.To learn about directly using the Microsoft identity platform endpoints without the help of an authentication library, see Microsoft identity platform authentication

Nächste SchritteNext steps

Wenn Sie mit dem Code beginnen möchten, können Sie die folgenden Ressourcen zu Hilfe nehmen, die Sie bei der Implementierung von Authentifizierung und Autorisierung mit Microsoft Identity Platform in Ihrer App unterstützen.If you're ready to jump into code, you can use the following resources to help you implement authentication and authorization with the Microsoft identity platform in your app.

Microsoft Graph-Schulung und BeispieleMicrosoft Graph training and samples

Um Ihnen den sofortigen Einstieg zu ermöglichen, haben wir eine Reihe von Schulungsmodulen und anderen Ressourcen entwickelt, die Ihnen zeigen, wie Sie sich authentifizieren und die API auf einer Vielzahl von Plattformen verwenden können.To help you get started quickly, we've created a series of training modules and other resources that show you how to authenticate and use the API on a variety of platforms.

Beispiele und Dokumentation zu Microsoft Identity PlatformMicrosoft identity platform samples and documentation

Die Microsoft Identity Platform-Dokumentation enthält Artikel und Codebeispiele, die sich auf Authentifizierung und Autorisierung mit Microsoft Identity Platform konzentrieren.The Microsoft identity platform documentation contains articles and samples that specifically focus on authentication and authorization with the Microsoft identity platform.

Siehe auchSee also