Microsoft Graph-Übersicht zu ASP.NET MVC-Webanwendungen

Abgeschlossen

In dieser Lektion erfahren Sie mehr über den Platz von Microsoft Graph in der größeren Microsoft 365-Plattform. Sie erfahren, wie Sie Microsoft Graph in einer ASP.NET MVC-Anwendung verwenden, um Ereignisse aus dem Kalender des aktuell angemeldeten Benutzers anzuzeigen.

Microsoft 365-Plattform

Microsoft 365-Plattform

Bei Microsoft 365 liegt der Entwicklerschwerpunkt auf der Erfahrung der Benutzer und deren Daten, und als Entwickler können Sie Ihre Anwendung über 1,2 Milliarden Benutzern von Office weltweit zur Verfügung stellen. Dies bietet Ihnen für Ihre Anwendung enorme Chancen. So können Sie es Benutzern ermöglichen, eine Verbindung zu ihren Daten herzustellen und Ihrer Anwendung Informationen hinzuzufügen.

Aktuell werden über 850 Millionen Ereignisse monatlich erstellt, und insgesamt sind über 400 Petabyte Daten im Dienst gespeichert, die Ihren Benutzern einen Mehrwert bieten können.

Wie Sie hier sehen können, ist Microsoft Graph das Gateway zu Ihren Daten in der Microsoft Cloud.

Microsoft Graph – Gateway zu Ihren Daten in der Microsoft Cloud

Microsoft Graph – Gateway zu Ihren Daten in der Microsoft Cloud

Die Microsoft Cloud umfasst zahlreiche Dienste und Datentypen, die wir in Office 365 nutzen können, und sie gelten alle als Bestandteil der Microsoft 365-Plattform.

Entwickler können die E-Mails, Kalender, Kontakte und Aufgaben des angemeldeten Benutzers in benutzerdefinierte Apps integrieren. Wir können mit Inhalten auf SharePoint-Websites und Listendateien in OneDrive, Kanälen und Inhalten in Microsoft Teams und Benutzern in Microsoft Entra ID arbeiten.

Es gibt viele verschiedene Dienste, die Entwickler in ihren benutzerdefinierten Apps nutzen können. Viele dieser Dienste verfügen über eigene APIs, mit denen Entwickler interagieren können.

Allerdings kann es schwierig sein, alle diese einzelnen Dienste mit jeweils verschiedenen Endpunkten zu nutzen. Jede API verfügt möglicherweise über ein eigenes Berechtigungsmodell, was bedeutet, dass verschiedene Konfigurationen zur Zugriffssteuerung vorhanden sind. Unterschiedliche Endpunkte für jeden Dienst bedeuten, dass unsere benutzerdefinierten Anwendungen für jeden Dienst ein Zugriffstoken von Microsoft Entra ID abrufen müssen.

Microsoft Graph vereinfacht den Zugriff auf Microsoft 365-Daten

Microsoft Graph vereinfacht den Zugriff auf Microsoft 365-Daten

Einer der Vorteile von Microsoft Graph ist, dass es als Proxyendpunkt für alle diese anderen Dienste dient. Microsoft Graph umfasst Software wie Office 365 und Windows 10 Enterprise Mobility and Security (EMS) und vereint all diese unterschiedlichen Dienste unter einem einheitlichen Endpunkt: graph.microsoft.com.

Der Vorteil bei der Verwendung von Microsoft Graph ist, dass Entwickler dadurch nur einen einzigen Endpunkt (eine Ressource) haben, was bedeutet, dass sie nur ein einziges Zugriffstoken für die Authentifizierung der verschiedenen Dienste benötigen. Jeder Dienst verfügt nach wie vor über eigene Berechtigungen, sodass weiterhin für die Sicherheit der einzelnen Dienste gesorgt ist. Ein einzelner Endpunkt erleichtert es Entwicklern, Anwendungen zu erstellen.

Microsoft Graph ermöglicht zudem eine einfache Navigation durch die Entitäten und Beziehungen zwischen Entitäten. Obwohl es viele verschiedene Microsoft 365-Dienste wie OneDrive für Dateien oder Outlook für Kontakte und Kalender gibt, sind diese verschiedenen Entitäten miteinander verknüpft. Diese Beziehungen sind in Microsoft Graph zu finden, wodurch es einfach ist, von einer Entität zur nächsten zu navigieren – selbst über unterschiedliche zugrunde liegende Endpunkte hinweg.

Ein einziger Authentifizierungsprozess

Ein einziger Authentifizierungsprozess für Microsoft 365

Microsoft Graph vereinfacht die Erfassung von Token, da für alle diese unterschiedlichen Dienste in Microsoft 365 ein separates Zugriffstoken pro Dienst abgerufen werden muss.

Microsoft Graph leitet die verschiedenen Dienste zusammen, sodass keine individuellen Token für jeden Dienst erforderlich sind. Microsoft Graph leitet Aufrufe über einen Endpunkt an jeden Endpunkt des Diensts weiter.

Damit ist der herkömmliche Ermittlungsdienst nicht mehr erforderlich. Vor Microsoft Graph mussten Entwickler einen Ermittlungsdienst verwenden, um die unterschiedlichen Endpunkte mit Microsoft 365 nach den benutzerspezifischen Endpunkten für jeden Dienst zu fragen, z. B. OneDrive oder Outlook.

Bedenken Sie dabei eines: Da es sich um einen Proxy handelt, werden in diesen nachgelagerten Endpunkten möglicherweise neue Funktionen und Features angezeigt, bevor sie in Microsoft Graph erscheinen. Dies liegt daran, dass Microsoft Graph ein Proxy ist und keine Funktionen verfügbar machen kann, die in einem Dienste, die weitergeleitet werden, nachgeschaltet nicht vorhanden sind.

Authentifizierung und das Zustimmungsframework

Office 365 verfügt über einen einzigen Authentifizierungsprozess, den auch Microsoft Graph nutzt. Benutzer melden sich mit einer Technologie namens OpenID Connect an, bei der es sich um einen offenen Standard handelt. OpenID Connect ist ein Wrapper für das OAuth 2.0-Authentifizierungsprotokoll, das Details zur angemeldeten Person enthält.

Die Microsoft Entra-ID wird für die gesamte Authentifizierung verwendet. Microsoft Graph verwendet dasselbe Authentifizierungsmodell wie Azure und Office 365, das auf dem Authentifizierungsmodell von Microsoft Entra ID basiert. Beide Dienste vertrauen auf Microsoft Entra ID, und durch diese gemeinsame Vertrauensstellung können wir die Authentifizierung nutzen, um beide verschiedenen Dienste mit demselben Authentifizierungsfluss zu nutzen.

Dieser Authentifizierungsprozess unterstützt auch die mehrstufige Authentifizierung (Multi-Factor Authentication, MFA) sowie Anmeldungen von Verbundnutzern. Er unterstützt alle Arten von Anwendungen – von Geräteanwendungen, einschließlich mobiler Geräte, Websites und Anwendungen aus nur einer Seite, die sich zu 100 % im Client befinden, oder monitorlose Anwendungen ohne Benutzerbeteiligung, auch als Dämon-App oder als Dienst bezeichnet.

Eines der Konzepte mit Microsoft Entra ID ist das allgemeine Zustimmungsframework. Eine Zustimmung können Sie sich am besten als Berechtigungen in Form eines Dreiecks vorstellen.

Ein Punkt des Dreiecks ist die Berechtigung, ein weiterer Punkt ist der Benutzer oder die Anwendung, und der letzte Punkt ist die Ressource, mit der Sie kommunizieren möchten. Der Benutzer muss über die Berechtigung für die Ressource verfügen, um mit ihr kommunizieren zu können.

Wenn sich der Benutzer zum ersten Mal bei Microsoft Entra ID anmeldet, um ein Zugriffstoken für die Authentifizierung bei Microsoft Graph abzurufen, überprüft Microsoft Entra zunächst, ob dieser Benutzer dieser Anwendung Zugriff auf Microsoft Graph gewährt hat. Dabei wird explizit überprüft, ob die Anwendung Zugriff auf diese Berechtigungen erhalten hat.

Dies funktioniert so: Wenn der Benutzer diesen Vorgang nicht durchlaufen hat, schaltet sich das gemeinsame Zustimmungsframework ein, und nachdem er sich angemeldet hat, wird das in der vorherigen Abbildung oben dargestellte Dialogfeld angezeigt.

Wenn der Benutzer der Anwendung nicht die Berechtigung für den Endpunkt erteilt hat, wird er vom Zustimmungsframework dazu aufgefordert. Dieser Vorgang wird als delegierte Zustimmung bezeichnet. Wenn der Benutzer die Dialogaufforderung akzeptiert, gewährt er der jeweiligen Anwendung eine bestimmte Berechtigung, im Namen des Benutzers zu handeln.

Authentifizierungsoptionen

Authentifizierungsoptionen

Microsoft Graph unterstützt zwei Authentifizierungsoptionen. Eine Option ist nur Microsoft Entra oder ein Geschäfts-, Schul- oder Unikonto. Die andere Option ist die konvergierte Authentifizierung, die Microsoft Entra ID und oder Microsoft-Konten ist. In diesem Fall können Sie exakt den gleichen Code in Microsoft Graph verwenden sowie die gleichen Endpunkten, dieselben SDKs, um Dateien entweder in OneDrive Consumer oder OneDrive for Business zu erhalten. Das Gleiche gilt für Kalender, Kontakte und E-Mail in outlook.com oder Office 365.

Das Gute daran ist, dass alle von Ihnen abgerufenen Daten von der Anmeldung des angemeldeten Benutzers abhängig sind. Sie müssen also keinen speziellen Code schreiben oder verschiedene APIs oder Endpunkte verwenden, um Daten für Verbraucher- oder Geschäftskonten abzurufen.

Microsoft-Konten & Microsoft Entra-ID

Microsoft-Konten & Microsoft Entra-ID

Wie bereits erwähnt, unterstützt Microsoft Graph sowohl Microsoft-Konten als auch Microsoft Entra-Konten, die auch als Geschäfts-, Schul- und Unikonten bezeichnet werden. In Microsoft Graph-APIs oder -SDKs ist nichts für die Anmeldung eindeutig – der Code ist identisch, und die Anmeldung bestimmt, auf welchen Dienst Microsoft Graph zugreift. Wenn sich der Benutzer mit einem Microsoft-Konto angemeldet hat, wird der Dateiendpunkt OneDrive Consumer zugeordnet, während Anmeldungen mit Geschäfts- und Schulkonten OneDrive for Business zugeordnet werden. Dies ist nur ein Beispiel.

Um zu bestimmen, welchen Kontotyp Ihre App unterstützt, oder wenn beides unterstützt wird, legen Sie eine bestimmte Einstellung in der zugehörigen Microsoft Entra-App fest, die im Microsoft Entra Admin Center registriert ist.

Microsoft Graph und ASP.NET MVC-Webanwendungen

Microsoft Graph und ASP.NET MVC-Webanwendungen

Entwickler können Microsoft Graph in vielen verschiedenen Arten von Anwendungen verwenden. In diesem Modul werden Sie Unterstützung für das Aufrufen von Microsoft Graph hinzufügen, um Ereignisse aus dem Kalender des aktuell angemeldeten Benutzers in einer ASP.NET MVC-Webanwendung anzuzeigen.

Der erste Schritt besteht darin, eine ASP.NET MVC-Webanwendung mithilfe des Visual Studio-Projekterstellungsassistenten zu erstellen. Als Nächstes fügen Sie die Microsoft Authentication Library (MSAL) für .NET und die OWIN-Middleware hinzu und konfigurieren diese. Dies ermöglicht es der Webanwendung Benutzern, sich anzumelden und Zugriffstoken von Microsoft Entra ID abzurufen, die beim Übermitteln von Anforderungen an Microsoft Graph verwendet werden können. Für diese beiden Bibliotheken müssen Sie einige Bibliotheken in Ihrem Projekt installieren. Die Bibliotheken sind als NuGet-Pakete verfügbar.

Vergewissern Sie sich als Nächstes, dass Ihre Anwendung SSL verwendet. Wenn Sie eine Anwendung mit der Microsoft Entra-ID registrieren, müssen Sie die Umleitungs-URL angeben, an die Benutzer nach einer erfolgreichen Anmeldung gesendet werden. Diese URL muss für die Verwendung von HTTPS konfiguriert sein, um mit einer Microsoft Entra-Anwendung zu arbeiten.

Zusammenfassung

In dieser Lektion haben Sie erfahren, wie sich Microsoft Graph in die größere Microsoft 365-Plattform einfügt. Sie haben außerdem gelernt, wie Sie Microsoft Graph in einer ASP.NET MVC-Anwendung verwenden, um Ereignisse aus dem Kalender des aktuell angemeldeten Benutzers anzuzeigen.