Freigeben über


Konfigurieren von Microsoft 365-Diensten mit dem Microsoft Graph-API in Visual Studio

Sie können Microsoft Graph verwenden, um in Microsoft 365 gespeicherte Benutzerinformationen in benutzerdefinierten Anwendungen zu nutzen. Mit verbundenen Diensten in Visual Studio können Sie Ihrer Anwendung Zugriff auf die folgenden Microsoft 365-Dienste gewähren:

  • Outlook: E-Mail, Kalender und Kontakte
  • Microsoft Entra ID: Benutzer, Gruppen und Verzeichnisse
  • OneDrive: Dateien
  • OneNote: Notizen und Notizbücher
  • SharePoint: Websites, Listen und Dokumentbibliotheken
  • Planner: Aufgaben

In diesem Artikel wird beschrieben, wie Sie verbundene Dienste in Visual Studio für die Verwendung von Microsoft Graph in einer ASP.NET MVC-Anwendung konfigurieren, die Ereignisse aus dem Kalender des aktuell angemeldeten Benutzers anzeigt.

Einrichten

Um die Office 365 Connected Services mit Microsoft Graph verwenden zu können, müssen Sie Folgendes ausführen:

Abrufen des Startprojekts

Laden Sie das MVC-App-Beispiel für microsoft Graph ASP.NET Connected Services herunter. Dieses Beispiel enthält die Verweise, die Sie für die Authentifizierung bei Microsoft Graph benötigen. Nachdem Sie das Startprojekt heruntergeladen haben, entzippen Sie das Beispiel graph-tutorial , und öffnen Sie es in Visual Studio.

Hinzufügen des verbundenen Diensts

Visual Studio 2022

  1. Klicken Sie Projektmappen-Explorer auf Verbundene Dienste, um die Registerkarte Verbundene Dienste zu öffnen.
  2. Klicken Sie unter Dienstabhängigkeiten auf die + Schaltfläche, um eine neue Dienstabhängigkeit hinzuzufügen.
  3. Scrollen Sie nach unten, und wählen Sie Access Microsoft 365 services with Microsoft Graph (Microsoft 365-Dienste mit Microsoft Graph zugreifen) aus.

Visual Studio 2017 und Visual Studio 2019

  1. Wählen Sie im Projektmappen-Explorer Verbundene Dienste aus, um die Registerkarte „Verbundene Dienste“ zu öffnen.
  2. Wählen Sie Access Microsoft 365 services with Microsoft Graph provider (Zugriff auf Microsoft 365-Dienste mit Microsoft Graph-Anbieter ) aus.

Konfigurieren des Microsoft 365-Datenzugriffs

  1. Geben Sie die Domäne Ihres Entwicklerkontos ein, und wählen Sie Weiter aus.

    Navigieren Sie Microsoft Entra Admin Center, um Ihren Domänennamen zu finden. Melden Sie sich an, erweitern Sie das Menü >Identität und wählen Sie Übersicht aus. Das Feld Primäre Domäne im Abschnitt Grundlegende Informationen enthält Ihren Domänennamen.

Trinkgeld: Wenn Ihre primäre Adresse lautet, ist admin@contoso.comIhre Domäne contoso.com'.

  1. Wählen Sie Neue Anwendungsregistrierung erstellen aus, und schließen Sie den Vorgang zum Erstellen einer App-Registrierung ab.

  2. Wählen Sie für dieses Tutorial die folgenden Berechtigungen aus:

    • Wählen Sie die Registerkarte Kalender aus, und aktivieren Sie das Kontrollkästchen Kalender lesen , um Ihrer Anwendung die Calendar.Read Berechtigung zu erteilen.
    • Wählen Sie die Registerkarte Benutzer aus, und aktivieren Sie das Kontrollkästchen Anmelden und Lesen Ihres Profils , um Ihrer Anwendung die User.Read Berechtigung zu erteilen.
  3. Wählen Sie Fertig stellen aus.

Aktualisieren der App-Einstellungen

  1. Doppelklicken Sie aufWeb.config.

  2. Fügen Sie in <appSettings> den folgenden Code ein:

    <add key="ida:RedirectUri" value="https://localhost:PORT/" />
    <add key="ida:AppScopes" value="User.Read Calendars.Read" />
    

    Ändern Sie den PORT Wert für so ida:RedirectUri , dass er der URL Ihrer Anwendung entspricht.

Trinkgeld: Die PORT-Informationen finden Sie in den Projekteigenschaften.

Ausführen des Beispiels

Speichern Sie Ihre Änderungen und starten Sie das Projekt. Wählen Sie als Nächstes die Schaltfläche Klicken Sie hier, um sich anzumelden , die Sie zu https://login.microsoftonline.comumleitet. Melden Sie sich mit Ihrem Entwicklerkonto an, und stimmen Sie den angeforderten Berechtigungen zu.

Auf der Startseite wird Ihr Name angezeigt, der angibt, dass Sie angemeldet sind. Auf der Registerkarte Kalender wird für Ihr Konto entsprechend eine Tabelle mit Ereignissen angezeigt.

Wählen Sie auf dem Avatar in der oberen rechten Ecke Abmelden aus, um die Sitzung zurückzusetzen und zur Startseite zurückzukehren.

Untersuchen des Codes

Sie können nun die Dateien und den Code in Visual Studio untersuchen, um mehr über dieses Startprojekt zu erfahren.

Anforderung an Microsoft Graph-API

Die Hilfsprogramme\GraphHelper.cs enthält die Methoden, die graphServiceClient verwenden, um Anforderungen an den Microsoft Graph-Dienst zu senden. Diese Klasse implementiert die GetUserDetailsAsync-Methode , die das Microsoft Graph SDK verwendet, um benutzerinformationen durch Aufrufen des /me Endpunkts zu erfassen.

Die GetEventsAsync-Methode verwendet den /v1.0/me/events Endpunkt, um Kalenderdaten anzufordern. Der select OData-Abfrageparameter beschränkt die für jedes Ereignis zurückgegebenen Felder auf die in der Ansicht angezeigten Felder. Der orderBy Parameter sortiert die Ergebnisse nach dem Datum und der Uhrzeit ihrer Erstellung, wobei das letzte Element zuerst ist.

Die GetAuthenticatedClient-Methode initialisiert einen GraphServiceClient mit einem Authentifizierungsanbieter und versucht, mithilfe der AcquireTokenSilent-Methode ein zuvor abgerufenes Zugriffstoken aus dem Tokenspeicher abzurufen. Beachten Sie, dass dem Benutzer eine interaktive Anmeldung angezeigt wird, wenn acquireTokenSilent fehlschlägt.

Authentifizierung

Die App_Start\Startup.Auth.cs konfiguriert die OWIN-Middleware mit den Werten aus Web.config und definiert die folgenden Rückrufmethoden OnAuthenticationFailedAsync und OnAuthorizationCodeReceivedAsync , die aufgerufen werden, wenn der Anmeldeprozess von Azure zurückgegeben wird.

Die Methode OnAuthorizationCodeReceivedAsync umschließt den Standardbenutzertokencache der ConfidentialClientApplication mit der SessionTokenStore-Klasse . Die MSAL-Bibliothek verarbeitet die Logik zum Speichern der Token und zum Aktualisieren der Token bei Bedarf. Der Code übergibt die von Microsoft Graph abgerufenen Benutzerdetails an das SessionTokenStore-Objekt , um sie in der Sitzung zu speichern.

Tokencache

TokenStorage\SessionTokenCache.cs implementiert eine Tokenspeicherklasse, um den MSAL-Tokencache und die Benutzerdetails in der Benutzersitzung zu serialisieren und zu speichern. Sie können diesen durch Ihren eigenen benutzerdefinierten Tokencache ersetzen. Weitere Informationen finden Sie unter Zwischenspeichern von Zugriffstoken.

An- und Abmelden

Controller\AccountController.cs ist ein Controller zum Verarbeiten der Anmeldung, der eine SignIn- und SignOut-Aktion definiert. Die SignIn-Aktion überprüft, ob die Anforderung bereits authentifiziert wurde. Ist das nicht der Fall, wird die OWIN-Middleware aufgerufen, um den Benutzer zu authentifizieren. Die Aktion SignOut ruft die OWIN-Middleware auf, um sich abzumelden.

Views

Views\Shared\_Layout.cshtml definiert das globale Layout der App. Es fügt Bootstrap für einfache Formatierungen und Font Awesome für Symbole hinzu, definiert das Layout der Navigationsleiste und verwendet die Warnungsklasse zum Anzeigen von Warnungen.

Views\Home\Index.cshtml und Views\Calendar\Index.cshtml enthalten die Benutzeroberfläche zum Anzeigen der aus Azure abgerufenen Informationen.

Benötigen Sie Hilfe?

Wenn Sie Hilfe benötigen, veröffentlichen Sie Ihre Fragen auf Microsoft Q&A. Markieren Sie Ihren Beitrag mit {microsoft-graph-identity}.