Authentifizierungs und Autorisierungsgrundlagen
Microsoft Graph ist eine geschützte Web-API für den Zugriff auf Daten in Microsoft-Clouddiensten wie Microsoft Entra ID und Microsoft 365. Sie wird durch die Microsoft Identity Platform geschützt, die OAuth-Zugriffstoken verwendet, um zu überprüfen, ob eine App zum Aufrufen von Microsoft Graph autorisiert ist.
Dieser Artikel bietet eine Übersicht über die Microsoft Identity Platform, Zugriffstoken und wie Ihre App Zugriffstoken erhalten kann. Weitere Informationen zur Microsoft Identity Platform finden Sie unter Was ist die Microsoft Identity Platform?. Wenn Sie wissen, wie Sie eine App in die Microsoft Identity Platform integrieren, um Token abzurufen, lesen Sie die Microsoft Identity Platform Codebeispiele, um Informationen und Beispiele speziell für Microsoft Graph zu erhalten.
Registrieren der App
Bevor Ihre App ein Zugriffstoken vom Microsoft Identity Platform abrufen kann, muss es im Microsoft Entra Admin Center registriert werden. Durch die Registrierung wird Ihre App in Microsoft Identity Platform integriert, und es werden die zum Abrufen von Token verwendeten Informationen festgelegt, beispielsweise:
- Anwendungs-ID: Ein eindeutiger Bezeichner, der von Microsoft Identity Platform zugewiesen wird.
- Umleitungs-URI/URL: Mindestens ein Endpunkt, an dem Ihre App Antworten vom Microsoft Identity Platform empfängt. (Bei nativen und mobilen Apps wird der URI vom Microsoft Identity Platform zugewiesen.)
- Geheimer Clientschlüssel: Ein Kennwort, das Ihre App für die Authentifizierung beim Microsoft Identity Platform verwendet. Optional können Sie ein Zertifikat oder Anmeldeinformationen für Verbundidentitäten verwenden. Diese Eigenschaft ist für öffentliche Clients wie native, mobile und Single-Page-Anwendungen nicht erforderlich.
Weitere Informationen finden Sie unter Registrieren einer Anwendung beim Microsoft Identity Platform.
Zugriffsszenarien
Die Methode, die eine App für die Authentifizierung beim Microsoft Identity Platform verwendet, hängt davon ab, wie die App auf die Daten zugreifen soll. Dieser Zugriff kann auf eine von zwei Arten erfolgen, wie in der folgenden Abbildung dargestellt.
- Delegierter Zugriff: Eine App, die im Namen eines angemeldeten Benutzers agiert.
- Nur-App-Zugriff: Eine App, die mit ihrer eigenen Identität agiert.
Delegierter Zugriff (Zugriff im Namen eines Benutzers)
In diesem Zugriffsszenario hat sich ein Benutzer bei einer Clientanwendung angemeldet, und die Clientanwendung ruft Microsoft Graph im Namen des Benutzers auf. Sowohl der Client als auch der Benutzer müssen autorisiert sein, die Anforderung zu stellen.
Delegierter Zugriff erfordert delegierte Berechtigungen, die auch als Bereiche bezeichnet werden. Bereiche sind Berechtigungen, die von einer bestimmten Ressource verfügbar gemacht werden, und stellen die Vorgänge dar, die eine App im Namen eines Benutzers ausführen kann.
Da sowohl die App als auch der Benutzer für die Anforderung autorisiert sein müssen, gewährt die Ressource der Client-App die delegierten Berechtigungen, damit die Client-App im Namen des angegebenen Benutzers auf Daten zugreifen kann. Für den Benutzer sind die Aktionen, die er für die Ressource ausführen kann, von den Berechtigungen abhängig, die er für den Zugriff auf die Ressource hat. Beispielsweise kann der Benutzer der Besitzer der Ressource sein oder ihm über ein rollenbasiertes Zugriffssteuerungssystem (Role-Based Access Control System, RBAC) wie Microsoft Entra RBAC eine bestimmte Rolle zugewiesen werden.
Hinweis
Endpunkte und APIs mit dem /me
Alias arbeiten nur für den angemeldeten Benutzer und werden daher in Szenarien mit delegiertem Zugriff aufgerufen.
Nur App-Zugriff (Zugriff ohne Benutzer)
In diesem Zugriffsszenario kann die Anwendung ohne angemeldeten Benutzer eigenständig mit Daten interagieren. Der reine App-Zugriff wird in Szenarien wie Automatisierung und Sicherung verwendet und hauptsächlich von Apps verwendet, die als Hintergrunddienste oder Daemons ausgeführt werden. Es ist geeignet, wenn es nicht wünschenswert ist, einen Benutzer angemeldet zu haben, oder wenn die erforderlichen Daten nicht auf einen einzelnen Benutzer festgelegt werden können.
Apps erhalten über eine der folgenden Methoden Berechtigungen zum Aufrufen von Microsoft Graph mit ihrer eigenen Identität:
- Wenn der App Anwendungsberechtigungen zugewiesen werden, auch als App-Rollen bezeichnet
- Wenn der App der Besitz der Ressource zugewiesen wird, die sie verwalten möchte
Hinweis
Eine App kann auch Berechtigungen über Berechtigungen erhalten, die von einem rollenbasierten Zugriffssteuerungssystem wie Microsoft Entra RBAC gewährt werden.
Microsoft Graph-Berechtigungen
Microsoft Graph macht präzise Berechtigungen verfügbar, die den Zugriff von Apps auf Microsoft Graph-Ressourcen wie Benutzer, Gruppen und E-Mail steuern. Als Entwickler entscheiden Sie basierend auf dem Zugriffsszenario und den vorgängen, die Sie ausführen möchten, welche Microsoft Graph-Berechtigungen für Ihre App anzufordern sind.
Microsoft Graph macht zwei Arten von Berechtigungen für die unterstützten Zugriffsszenarien verfügbar:
- Delegierte Berechtigungen: Diese werden auch als Bereiche bezeichnet und ermöglichen es der Anwendung, im Namen des angemeldeten Benutzers zu handeln.
- Anwendungsberechtigungen: Die App wird auch als App-Rollen bezeichnet und ermöglicht es der App, eigenständig auf Daten zuzugreifen, ohne dass ein Benutzer angemeldet ist.
Wenn sich ein Benutzer bei einer App anmeldet, muss die App die Berechtigungen angeben, die sie in das Zugriffstoken einbeziehen muss. Diese Berechtigungen:
- Kann für die Anwendung von einem Administrator vorautorisiert werden.
- Kann vom Benutzer direkt eingewilligt werden.
- Wenn sie nicht vorautorisiert ist, sind möglicherweise Administratorrechte erforderlich, um die Zustimmung zu erteilen. Beispielsweise für Berechtigungen mit größeren potenziellen Sicherheitsauswirkungen.
Weitere Informationen zu Berechtigungen und Zustimmung finden Sie unter Einführung in Berechtigungen und Zustimmung.
Hinweis
Als bewährte Methode sollten Sie die Berechtigungen mit den wenigsten Rechten anfordern, die Ihre App benötigt, um auf Daten zuzugreifen und korrekt zu funktionieren. Die Anforderung von Berechtigungen mit mehr als den erforderlichen Rechten ist im Hinblick auf die Sicherheit nicht zu empfehlen und kann dazu führen, dass Benutzer ihre Zustimmung verweigern und die Nutzung Ihrer App beeinträchtigt wird.
Weitere Informationen zu Microsoft Graph-Berechtigungen und deren Verwendung finden Sie unter Übersicht über Microsoft Graph-Berechtigungen.
Zugriffstoken
Eine Anwendung sendet eine Authentifizierungsanforderung an den Microsoft Identity Platform, um Zugriffstoken abzurufen, die sie zum Aufrufen einer API verwendet, z. B. Microsoft Graph. Zugriffstoken, die die Microsoft Identity Platform Probleme enthalten Ansprüche, bei denen es sich um Details zur Anwendung und in Szenarien mit delegiertem Zugriff um den Benutzer handelt. Web-APIs, die durch die Microsoft Identity Platform geschützt sind, z. B. Microsoft Graph, verwenden die Ansprüche, um den Aufrufer zu überprüfen und sicherzustellen, dass der Aufrufer über die richtigen Berechtigungen zum Ausführen des angeforderten Vorgangs verfügt. Der Aufrufer sollte Zugriffstoken als nicht sichtbare Zeichenfolgen behandeln, da der Inhalt des Tokens nur für die API vorgesehen ist. Schützen Sie Zugriffstoken beim Aufrufen von Microsoft Graph immer, indem Sie sie über einen sicheren Kanal übertragen, der TLS (Transport Layer Security) nutzt.
Zugriffstoken sind eine Art von Sicherheitstoken, das vom Microsoft Identity Platform bereitgestellt wird. Sie sind kurzlebig, weisen jedoch eine variable Standardlebensdauer auf.
Zum Aufrufen von Microsoft Graph sendet die App eine Autorisierungsanforderung, indem sie das Zugriffstoken als Bearertoken an den Autorisierungsheader in einer HTTP-Anforderung anfügt. Der folgende Aufruf gibt beispielweise die Profilinformationen des angemeldeten Benutzers zurück (das Zugriffstoken wurde zur besseren Lesbarkeit gekürzt):
GET https://graph.microsoft.com/v1.0/me/ HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer EwAoA8l6BAAU ... 7PqHGsykYj7A0XqHCjbKKgWSkcAg==
Weitere Informationen zu Microsoft Identity Platform Zugriffstoken finden Sie unter ID-Token im Microsoft Identity Platform.
Abrufen eines Zugriffstokens
Es wird empfohlen, Authentifizierungsbibliotheken zu verwenden, um Ihre Tokeninteraktionen mit dem Microsoft Identity Platform zu verwalten. Authentifizierungsbibliotheken abstrahieren viele Protokolldetails wie Validierung, Cookieverarbeitung, Tokenzwischenspeicherung und Aufrechterhaltung sicherer Verbindungen, sodass Sie sich auf die Funktionalität Ihrer App konzentrieren können. Microsoft veröffentlicht Open-Source-Clientbibliotheken und Servermiddleware.
Für den Microsoft Identity Platform-Endpunkt:
- MsAL-Clientbibliotheken (Microsoft Authentication Library) sind für verschiedene Frameworks verfügbar, einschließlich für .NET, JavaScript, Android und iOS. Alle Plattformen befinden sich in der produktionsgestützten Vorschauphase, und für den Fall, dass Breaking Changes eingeführt werden, garantiert Microsoft einen Pfad zum Upgrade.
- Servermiddleware von Microsoft ist für .NET Core und ASP.NET (OWIN OpenID Connect und OAuth) und für Node.js (Microsoft Identity Platform Passport.js) verfügbar.
- Die Microsoft Identity Platform ist auch mit vielen Authentifizierungsbibliotheken von Drittanbietern kompatibel.
Eine vollständige Liste der Microsoft-Clientbibliotheken, Microsoft-Servermiddleware und kompatiblen Bibliotheken von Drittanbietern finden Sie in Microsoft Identity Platform Dokumentation.
Sie brauchen keine Authentifizierungsbibliothek zu verwenden, um ein Zugriffstoken zu abzurufen. Informationen zur direkten Verwendung der Microsoft Identity Platform-Endpunkte ohne Die Hilfe einer Authentifizierungsbibliothek finden Sie in den folgenden Artikeln: