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 in SharePoint-Websites und Listendateien in OneDrive, mit Kanälen und Inhalten in Microsoft Teams sowie mit Benutzern in Azure Active Directory (Azure AD) 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 Azure AD 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 Open ID Connect an, bei der es sich um einen offenen Standard handelt. Open ID Connect ist ein Wrapper für das OAuth 2.0-Authentifizierungsprotokoll, das Details zu der Person enthält, die sich angemeldet hat.

Azure AD wird für die gesamte Authentifizierung verwendet. Microsoft Graph nutzt das gleiche Authentifizierungsmodell wie Azure und Office 365, das auf dem Authentifizierungsmodell von Azure AD basiert. Beide Dienste vertrauen Azure AD. Aufgrund dieses gemeinsamen Vertrauens können wir die Authentifizierung verwenden und so diese beiden Dienste mit demselben Authentifizierungsprozess 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 dieser Konzepte bei Azure AD ist das gemeinsame 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 Azure AD anmeldet, um ein Zugriffstoken zur Authentifizierung bei Microsoft Graph zu erhalten, überprüft Azure AD zuerst, ob dieser Benutzer der 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 Azure AD oder ein Geschäfts- oder Schulkonto. Die andere Option ist die zusammengeführte Authentifizierung (Azure AD-und/oder Microsoft-Konten). 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 & Azure AD

Microsoft-Konten & Azure AD

Wie bereits erwähnt, unterstützt Microsoft Graph sowohl Microsoft-Konten als auch Azure AD-Konten (auch als Geschäfts- und Schulkonten bezeichnet). 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 herauszufinden, welchen Kontotyp Ihre Anwendung unterstützt, oder wenn beide Versionen unterstützt werden, legen Sie eine bestimmte Einstellung in der zugehörigen Azure AD-Anwendung fest, die im Azure AD 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. So erlaubt die Webanwendung, dass Benutzer sich anmelden und Zugriffstoken von Azure AD abrufen können, die bei der Übermittlung von Anfragen an Microsoft Graph verwendet werden. 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 bei Azure AD registrieren, müssen Sie die Umleitungs-URL angeben, an die Benutzer nach einer erfolgreichen Anmeldung weitergeleitet werden. Diese URL muss so konfiguriert sein, dass HTTPS verwendet wird, damit sie mit einer Azure AD-Anwendung funktioniert.

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.