Authentifizierungs und Autorisierungsgrundlagen
Microsoft Graph ist ein geschütztes API-Gateway 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 autorisiert und überprüft, ob eine App zum Aufrufen von Microsoft Graph autorisiert ist.
Dieser Artikel bietet eine Übersicht über die Anforderungen für eine App, die für den Zugriff auf Daten über microsoft Graph-API autorisiert werden muss. Wenn Sie bereits mit der Funktionsweise von Authentifizierung und Autorisierung vertraut sind, sehen Sie sich Codebeispiele für Apps an, die Microsoft Graph-APIs aufrufen.
Registrieren der App
Bevor Ihre App zum Aufrufen von Microsoft-Graph-API autorisiert werden kann, muss dies dem Microsoft Identity Platform zuerst bekannt sein. Dieser Prozess umfasst nicht das Hochladen Ihres Anwendungscodes auf die Plattform. Stattdessen müssen Sie die App im Microsoft Entra Admin Center registrieren, um die Konfigurationsinformationen einschließlich der folgenden Kernparameter festzulegen:
- 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. Der Microsoft Identity Platform weist den URI nativen und mobilen Apps zu.
- Anmeldeinformationen: Kann ein geheimer Clientschlüssel (eine Zeichenfolge oder ein Kennwort), ein Zertifikat oder Anmeldeinformationen für eine Verbundidentität sein. Ihre App verwendet die Anmeldeinformationen für die Authentifizierung beim Microsoft Identity Platform. Diese Eigenschaft ist nur für vertrauliche Clientanwendungen erforderlich. Für öffentliche Clients wie native, mobile und Single-Page-Anwendungen ist dies nicht erforderlich. Weitere Informationen finden Sie unter Öffentliche Clientanwendungen und vertrauliche Clientanwendungen.
Anschließend fügen Sie diese Informationen einmal ihrem Code hinzu, und die App verwendet die Informationen jedes Mal, wenn ihre Identität während eines Authentifizierungsprozesses nachgewiesen werden muss, bevor sie für den Zugriff auf Ihre Daten autorisiert werden kann.
Weitere Informationen finden Sie unter Registrieren einer Anwendung beim Microsoft Identity Platform.
Zugriffsszenarien
Eine App kann auf zwei Arten auf Daten zugreifen, 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 meldet sich ein Benutzer bei einer Clientanwendung an, die Microsoft Graph in ihrem Namen aufruft. Sowohl die Client-App als auch der Benutzer müssen autorisiert sein, die Anforderung zu stellen.
Damit die Client-App für den Zugriff auf die Daten im Namen des angemeldeten Benutzers autorisiert werden kann, muss sie über die erforderlichen Berechtigungen verfügen, die sie über eine Kombination aus zwei Faktoren erhält:
- Delegierte Berechtigungen, auch als Bereiche bezeichnet: Die von Microsoft Graph verfügbar gemachten Berechtigungen, die die Vorgänge darstellen, die die App im Namen des angemeldeten Benutzers ausführen kann. Die App kann möglicherweise einen Vorgang im Namen eines Benutzers ausführen, aber nicht im Namen eines anderen Benutzers.
- Benutzerberechtigungen: Die Berechtigungen, die der angemeldete Benutzer für die Ressource hat. Der Benutzer kann der Besitzer der Ressource sein, die Ressource kann für sie freigegeben werden, oder ihm werden Berechtigungen über ein rollenbasiertes Zugriffssteuerungssystem (RBAC) wie Microsoft Entra RBAC zugewiesen.
Beispielszenario: Delegierter Zugriff in Microsoft Graph
Der https://graph.microsoft.com/v1.0/me
Endpunkt ist der Zugriffspunkt auf die Informationen des angemeldeten Benutzers, der eine Ressource darstellt, die durch den Microsoft Identity Platform geschützt wird. Für den delegierten Zugriff werden die beiden Faktoren wie folgt erfüllt:
- Der App muss im Namen des angemeldeten Benutzers eine unterstützte delegierte Microsoft Graph-Berechtigung erteilt werden, z. B. die delegierte Berechtigung User.Read .
- Der angemeldete Benutzer in diesem Szenario ist der Besitzer der Daten.
Hinweis
Endpunkte und APIs mit dem /me
Alias arbeiten nur für den angemeldeten Benutzer und werden daher in Szenarien mit delegiertem Zugriff aufgerufen.
Als Alternative zu delegierten Microsoft Graph-Berechtigungen können einer App auch Berechtigungen über ein rollenbasiertes Zugriffssteuerungssystem wie Microsoft Entra RBAC zugewiesen werden.
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.
Damit eine Client-App mit ihrer eigenen Identität auf die Daten zugreifen kann, muss sie über die erforderlichen Berechtigungen verfügen, die sie über eine der folgenden Methoden erhält:
- Der App werden unterstützte Microsoft Graph-Anwendungsberechtigungen zugewiesen, auch als App-Rollen bezeichnet.
- Der App wird der Besitz der Ressource zugewiesen, die sie verwalten möchte.
Hinweis
Als Alternative zu Microsoft Graph-Anwendungsberechtigungen können einer App auch Berechtigungen über ein rollenbasiertes Zugriffssteuerungssystem wie Microsoft Entra RBAC zugewiesen werden.
Beispielszenario: Nur-App-Zugriff in Microsoft Graph
Mit https://graph.microsoft.com/v1.0/users/delta
dem Endpunkt können Sie Änderungen an Benutzerdaten abfragen. Beim reinen App-Zugriff muss der App eine unterstützte Berechtigung gewährt werden, z. B. die Berechtigung User.Read.All Microsoft Graph-Anwendung, damit Änderungen an Benutzerdaten erfolgreich abfragen und empfangen werden können.
Microsoft Graph-Berechtigungen
Wie bereits erwähnt, muss eine App unabhängig vom Zugriffsszenario über Berechtigungen für den Zugriff auf die Daten verfügen, auf die sie zugreifen möchte.
Microsoft Graph macht präzise Berechtigungen verfügbar , die den Zugriff auf Microsoft Graph-Ressourcen wie Benutzer, Gruppen und E-Mails steuern. Für die unterstützten Zugriffsszenarien sind zwei Arten von Berechtigungen 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.
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. 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.
Weitere Informationen zu Microsoft Graph-Berechtigungen und deren Verwendung finden Sie unter Übersicht über Microsoft Graph-Berechtigungen.
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.
Zugriffstoken
Um auf eine geschützte Ressource zuzugreifen, muss eine Anwendung nachweisen, dass sie dazu autorisiert ist, indem sie ein gültiges Zugriffstoken übermittelt. Die Anwendung ruft dieses Zugriffstoken ab, wenn sie eine Authentifizierungsanforderung an den Microsoft Identity Platform die wiederum das Zugriffstoken verwendet, um zu überprüfen, ob die App zum Aufrufen von Microsoft Graph autorisiert ist.
Zugriffstoken, die Microsoft Identity Platform Probleme enthalten Ansprüche, die Details zur Anwendung und in Szenarien mit delegiertem Zugriff den angemeldeten Benutzer darstellen. Web-APIs wie Microsoft Graph, die durch die Microsoft Identity Platform geschützt sind, verwenden die Ansprüche, um den Aufrufer zu überprüfen und sicherzustellen, dass der Aufrufer autorisiert ist, den angeforderten Vorgang auszuführen. Bei Szenarien mit delegiertem Zugriff sind die Berechtigungen sowohl des aufrufenden Benutzers als auch der App Teil der Ansprüche. Für Anwendungsszenarien sind die Berechtigungen der App Teil der Ansprüche. Weitere Informationen zu den Teilen, die Zugriffstoken bilden, finden Sie unter Referenz zu Zugriffstokenansprüchen.
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.
Alternativ können Sie die Microsoft Identity Platform Endpunkte auch direkt ohne die Hilfe einer Authentifizierungsbibliothek verwenden. Weitere Informationen finden Sie in den folgenden Artikeln: