Verwenden von Microsoft Entra ID für den Zugriff auf die Intune-APIs in Microsoft Graph

Der Microsoft Graph-API unterstützt jetzt Microsoft Intune mit bestimmten APIs und Berechtigungsrollen. Die Microsoft Graph-API verwendet Microsoft Entra ID für die Authentifizierung und Zugriffssteuerung.
Der Zugriff auf die Intune-APIs in Microsoft Graph erfordert Folgendes:

  • Eine Anwendungs-ID mit:

    • Berechtigung zum Aufrufen Microsoft Entra ID und der Microsoft Graph-APIs.
    • Berechtigungsbereichen, die für bestimmte Anwendungsaufgaben relevant sind
  • Benutzeranmeldeinformationen mit:

    • Berechtigung für den Zugriff auf den Microsoft Entra Mandanten, der der Anwendung zugeordnet ist.
    • Rollenberechtigungen zur Unterstützung der Anwendungsberechtigungsbereiche
  • Der Endbenutzer, der der App die Berechtigung zum Ausführen von Anwendungsaufgaben für seinen Azure-Mandanten erteilen soll.

Inhalt dieses Artikels:

  • Zeigt, wie Sie eine Anwendung mit Zugriff auf die Microsoft Graph-API und relevanten Berechtigungsrollen registrieren.

  • Beschreibt die Intune-API-Berechtigungsrollen.

  • Enthält Intune-API-Authentifizierungsbeispiele für C# und PowerShell.

  • Beschreibt, wie mehrere Mandanten unterstützt werden.

Weitere Informationen finden Sie unter:

Registrieren von Apps, um die Microsoft Graph-API zu verwenden

So registrieren Sie eine App, um die Microsoft Graph-API zu verwenden:

  1. Melden Sie sich mit Administratoranmeldeinformationen beim Microsoft Intune Admin Center an.

    Dazu können Sie Folgendes verwenden:

    • Die Administratorkonto des Mandanten
    • Ein Mandantenbenutzerkonto mit aktivierter Einstellung Benutzer können Anwendungen registrieren .
  2. Wählen Sie Alle Dienste>M365 Microsoft Entra ID>Microsoft Entra ID>App-Registrierungen aus.

    Menübefehl
  3. Klicken Sie entweder auf Neue Registrierung, um eine neue Anwendung zu erstellen, oder wählen Sie eine vorhandene Anwendung aus. (Wenn Sie eine vorhandene Anwendung auswählen, überspringen Sie den nächsten Schritt.)

  4. Geben Sie im Bereich Anwendung registrieren Folgendes an:

  5. Im Anwendungsbereich:

    1. Beachten Sie den Wert der Anwendungs-ID (Client).

    2. Wählen Sie API-Berechtigungen aus.

  6. Wählen Sie im Bereich API-Berechtigungen die OptionMicrosoft-APIs>MicrosoftGraph-Berechtigung> hinzufügen aus. Wählen Sie dann den Berechtigungstyp aus, den Ihre Anwendung benötigt.

    Wählen Sie die für Ihre App erforderlichen Rollen aus, indem Sie links neben den relevanten Namen ein Häkchen setzen. Informationen zu bestimmten Intune-Berechtigungsbereichen finden Sie unter Intune-Berechtigungsbereiche. Weitere Informationen zu anderen Graph-API Berechtigungsbereichen finden Sie in der Referenz zu Microsoft Graph-Berechtigungen.

    Wählen Sie für optimale Ergebnisse nur so viele Rollen, wie für die Implementierung Ihrer Anwendung erforderlich sind.

Data Warehouse- und Berichtsberechtigungen

Wenn Sie eine Anwendung über die Microsoft Entra Admin Center hinzufügen, können Sie die Intune-API-Berechtigungen basierend auf den Anforderungen Ihrer Anwendung auswählen.

  • get_data_warehouse: Verwenden Sie diese API-Berechtigung, um zugriff auf die Intune Data Warehouse-API von Microsoft Intune zu gewähren. Weitere Informationen finden Sie unter Verwenden des Microsoft Intune Data Warehouse.

Partnerlösungs-APIs

Die folgenden Intune-API-Berechtigungen sind verfügbar, wenn Sie eine Anwendung über die Microsoft Entra Admin Center hinzufügen:

  • get_device_compliance: Diese API-Berechtigung wird verwendet, um Gerätestatus- und Konformitätsinformationen aus Microsoft Intune abzurufen. Diese API-Berechtigung wird von Network Access Control-Partnern verwendet. Weitere Informationen finden Sie unter Network Access Control Integration in Intune.
  • manage_partner_compliance_policy: Diese API-Berechtigung wird verwendet, um Partnerkonformitätsrichtlinien mit Microsoft Intune zu verwalten. Diese API-Berechtigung ermöglicht es der App, Partnerkonformitätsrichtlinien und ihre Microsoft Entra Gruppenzuweisung ohne angemeldeten Benutzer an Microsoft Intune zu senden. Sie wird von Gerätekonformitätspartnern verwendet. Weitere Informationen finden Sie unter Partner zur Gerätekonformität von Drittanbietern.
  • pfx_cert_provider : Diese API-Berechtigung wird verwendet, um PFX-Zertifikate für einen bestimmten Benutzer an Intune zu senden. Intune übermittelt das Zertifikat an alle Geräte, die vom Benutzer registriert wurden. Weitere Informationen finden Sie unter PFX Import PowerShell.
  • scep_challenge_provider : Diese API-Berechtigung wird verwendet, um SCEP-Herausforderungen zur Zertifikatanforderungsüberprüfung an Intune zu senden. Es wird von Zertifizierungsstellenpartnern verwendet. Weitere Informationen finden Sie unter Partnerzertifizierungsstelle.
  • update_device_attributes : Diese API-Berechtigung wird verwendet, um Geräteinformationen von Partnern für gerätekonformität und mobile Bedrohungsabwehr an Intune zu senden. Weitere Informationen finden Sie unter Mobile Threat Defense-Integration mit Intune und Drittanbietern für die Gerätekonformität.
  • update_device_health: Diese API-Berechtigung wird verwendet, um Informationen zur Geräteintegrität und bedrohungsbasierten status von Mobilen Threat Defense-Partnern an Intune zu senden. Weitere Informationen finden Sie unter Integration von Mobile Threat Defense in Intune.

Wenn Sie ein Partner sind, der an der Integration in Intune mithilfe dieser API-Berechtigungen interessiert ist, wenden Sie sich an das Microsoft Intelligent Security Association]-Team, um Weitere Informationen zu erhalten.

Wenn Sie fertig sind, wählen Sie Berechtigungen hinzufügen aus, um Ihre Änderungen zu speichern.

An diesem Punkt können Sie auch:

  • Wählen Sie aus, um allen Mandantenkonten die Berechtigung zu erteilen, die App ohne Angabe von Anmeldeinformationen zu verwenden.

    Sie können zu diesem Zweck Berechtigungen erteilen und die Bestätigungsaufforderung akzeptieren.

    Wenn Sie die Anwendung zum ersten Mal ausführen, werden Sie aufgefordert, der App die Berechtigung zum Ausführen der ausgewählten Rollen zu erteilen.

  • Machen Sie die App für Benutzer außerhalb Ihres Mandanten verfügbar. (Dies ist in der Regel nur für Partner erforderlich, die mehrere Mandanten/Organisationen unterstützen.)

    Gehen Sie hierzu folgendermaßen vor:

    1. Wählen Sie im Anwendungsbereich Manifest aus.

      Blatt
    2. Ändern Sie den Wert der availableToOtherTenants Einstellung in true.

    3. Speichern Sie Ihre Änderungen.

App-Auflistung

Wenn Sie beim Anfordern Ihres App-Eintrags bei verwendung von Graph-API eine große Datenmenge erhalten, tritt möglicherweise der Fehler 503 Dienst nicht verfügbar auf. Es wird empfohlen, es erneut mit einem kleineren Seitenformat zu versuchen, z. B. 20 oder weniger Elemente.

Intune-Berechtigungsbereiche

Microsoft Entra ID und Microsoft Graph verwenden Berechtigungsbereiche, um den Zugriff auf Unternehmensressourcen zu steuern.

Berechtigungsbereiche (auch OAuth-Bereiche genannt) steuern den Zugriff auf bestimmte Intune-Entitäten und deren Eigenschaften. In diesem Abschnitt werden die Berechtigungsbereiche für Intune-API-Features zusammengefasst.

So erhalten Sie weitere Informationen:

Wenn Sie Microsoft Graph berechtigungen erteilen, können Sie die folgenden Bereiche angeben, um den Zugriff auf Intune-Features zu steuern: In der folgenden Tabelle sind die Intune-API-Berechtigungsbereiche zusammengefasst. In der ersten Spalte wird der Name des Features angezeigt, wie er im Microsoft Intune Admin Center angezeigt wird, und die zweite Spalte enthält den Namen des Berechtigungsbereichs.

Zugriffseinstellung aktivieren Bereichsname
Remoteaktionen mit Auswirkungen auf den Benutzer auf Microsoft Intune-Geräten durchführen DeviceManagementManagedDevices.PrivilegedOperations.All
Microsoft Intune-Geräte lesen und schreiben DeviceManagementManagedDevices.ReadWrite.All
Microsoft Intune-Geräte lesen DeviceManagementManagedDevices.Read.All
Microsoft Intune-RBAC-Einstellungen lesen und schreiben DeviceManagementRBAC.ReadWrite.All
Microsoft Intune-RBAC-Einstellungen lesen DeviceManagementRBAC.Read.All
Microsoft Intune-Apps lesen und schreiben DeviceManagementApps.ReadWrite.All
Microsoft Intune-Apps lesen DeviceManagementApps.Read.All
Lesen und Schreiben Microsoft Intune Gerätekonfiguration und -richtlinien DeviceManagementConfiguration.ReadWrite.All
Lesen Microsoft Intune Gerätekonfiguration und -richtlinien DeviceManagementConfiguration.Read.All
Microsoft Intune-Konfiguration lesen und schreiben DeviceManagementServiceConfig.ReadWrite.All
Microsoft Intune-Konfiguration lesen DeviceManagementServiceConfig.Read.All

In der Tabelle sind die Einstellungen aufgeführt, die im Microsoft Intune Admin Center angezeigt werden. In den folgenden Abschnitten werden die Bereiche in alphabetischer Reihenfolge beschrieben.

Derzeit ist für alle Intune-Berechtigungsbereiche Administratorzugriff erforderlich. Dies bedeutet, dass Sie die entsprechenden Anmeldeinformationen benötigen, wenn Sie Apps oder Skripts ausführen, die auf Intune-API-Ressourcen zugreifen.

DeviceManagementApps.Read.All

  • Zugriffseinstellung aktivieren: Microsoft Intune-Apps lesen

  • Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:

    • Client-Apps
    • Mobile App-Kategorien
    • App-Schutzrichtlinien
    • App-Konfigurationen

DeviceManagementApps.ReadWrite.All

  • Zugriffseinstellung aktivieren: Lese- und Schreibzugriff Microsoft Intune Apps

  • Ermöglicht die gleichen Vorgänge wie DeviceManagementApps.Read.All

  • Ermöglicht außerdem Änderungen an den folgenden Entitäten:

    • Client-Apps
    • Mobile App-Kategorien
    • App-Schutzrichtlinien
    • App-Konfigurationen

DeviceManagementConfiguration.Read.All

  • Zugriffseinstellung aktivieren: Lesen Microsoft Intune Gerätekonfiguration und -richtlinien

  • Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:

    • Gerätekonfiguration
    • Gerätekonformitätsrichtlinie
    • Benachrichtigungen

DeviceManagementConfiguration.ReadWrite.All

  • Zugriffseinstellung aktivieren: Lesen und Schreiben Microsoft Intune Gerätekonfiguration und -richtlinien

  • Ermöglicht die gleichen Vorgänge wie DeviceManagementConfiguration.Read.All

  • Apps können auch die folgenden Entitäten erstellen, zuweisen, löschen und ändern:

    • Gerätekonfiguration
    • Gerätekonformitätsrichtlinie
    • Benachrichtigungen

DeviceManagementManagedDevices.PrivilegedOperations.All

  • Zugriffseinstellung aktivieren: Ausführen von Remoteaktionen, die sich auf den Benutzer auswirken, auf Microsoft Intune Geräten

  • Ermöglicht die folgenden Remoteaktionen auf einem verwalteten Gerät:

    • Zurückziehen
    • Wischen
    • Kennung zurücksetzen/wiederherstellen
    • Remotesperre
    • Aktivieren/Deaktivieren des Modus für verlorene Daten
    • Pc bereinigen
    • Neustart
    • Löschen eines Benutzers von einem freigegebenen Gerät

DeviceManagementManagedDevices.Read.All

  • Zugriffseinstellung aktivieren: Lesen Microsoft Intune Geräten

  • Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:

    • Verwaltetes Gerät
    • Gerätekategorie
    • Erkannte App
    • Remoteaktionen
    • Informationen zu Schadsoftware

DeviceManagementManagedDevices.ReadWrite.All

  • Zugriffseinstellung aktivieren: Lese- und Schreibzugriff Microsoft Intune Geräten

  • Ermöglicht die gleichen Vorgänge wie DeviceManagementManagedDevices.Read.All

  • Apps können auch die folgenden Entitäten erstellen, löschen und ändern:

    • Verwaltetes Gerät
    • Gerätekategorie
  • Die folgenden Remoteaktionen sind ebenfalls zulässig:

    • Geräte suchen
    • Deaktivieren der Aktivierungssperre
    • Remoteunterstützung anfordern

DeviceManagementRBAC.Read.All

  • Zugriffseinstellung aktivieren: Lesen Microsoft Intune RBAC-Einstellungen

  • Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:

    • Rollenzuweisungen
    • Rollendefinitionen
    • Ressourcenvorgänge

DeviceManagementRBAC.ReadWrite.All

  • Zugriffseinstellung aktivieren: Lese- und Schreibzugriff Microsoft Intune RBAC-Einstellungen

  • Ermöglicht die gleichen Vorgänge wie DeviceManagementRBAC.Read.All

  • Apps können auch die folgenden Entitäten erstellen, zuweisen, löschen und ändern:

    • Rollenzuweisungen
    • Rollendefinitionen

DeviceManagementServiceConfig.Read.All

  • Zugriffseinstellung aktivieren: Konfiguration Microsoft Intune lesen

  • Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:

    • Geräteregistrierung
    • Apple-Pushbenachrichtigungszertifikat
    • Apple-Programm zur Geräteregistrierung
    • Apple Volume Purchase Program
    • Exchange Connector
    • Bedingungen
    • Cloud PKI
    • Branding
    • Mobile Threat Defense

DeviceManagementServiceConfig.ReadWrite.All

  • Zugriffseinstellung aktivieren: Lesen und Schreiben Microsoft Intune Konfiguration

  • Ermöglicht die gleichen Vorgänge wie DeviceManagementServiceConfig.Read.All_

  • Apps können auch die folgenden Intune-Features konfigurieren:

    • Geräteregistrierung
    • Apple-Pushbenachrichtigungszertifikat
    • Apple-Programm zur Geräteregistrierung
    • Apple Volume Purchase Program
    • Exchange Connector
    • Bedingungen
    • Cloud PKI
    • Branding
    • Mobile Threat Defense

Beispiele für Microsoft Entra-Authentifizierung

In diesem Abschnitt wird gezeigt, wie Sie Microsoft Entra ID in Ihre C#- und PowerShell-Projekte integrieren.

In jedem Beispiel müssen Sie eine Anwendungs-ID angeben, die mindestens den DeviceManagementManagedDevices.Read.All Berechtigungsbereich aufweist (weiter oben erläutert).

Beim Testen eines der beiden Beispiele erhalten Sie möglicherweise HTTP status 403 (Verboten) Fehler wie die folgenden:

{
  "error": {
    "code": "Forbidden",
    "message": "Application is not authorized to perform this operation - Operation ID " +
       "(for customer support): 00000000-0000-0000-0000-000000000000 - " +
       "Activity ID: cc7fa3b3-bb25-420b-bfb2-1498e598ba43 - " +
       "Url: https://example.manage.microsoft.com/" +
       "Service/Resource/RESTendpoint?" +
       "api-version=2017-03-06 - CustomApiErrorPhrase: ",
    "innerError": {
      "request-id": "00000000-0000-0000-0000-000000000000",
      "date": "1980-01-0112:00:00"
    }
  }
}

Überprüfen Sie in diesem Fall Folgendes:

  • Sie haben die Anwendungs-ID auf eine id aktualisiert, die für die Verwendung des Microsoft Graph-API und des DeviceManagementManagedDevices.Read.All Berechtigungsbereichs autorisiert ist.

  • Ihre Mandantenanmeldeinformationen unterstützen administrative Funktionen.

  • Ihr Code ähnelt den angezeigten Beispielen.

Authentifizieren von Microsoft Entra ID in C#

In diesem Beispiel wird gezeigt, wie Sie mit C# eine Liste von Geräten abrufen, die Ihrem Intune-Konto zugeordnet sind.

Hinweis

Azure AD Graph-API befindet sich in der Deaktivierungsphase. Weitere Informationen finden Sie unter Aktualisieren Ihrer Anwendungen für die Verwendung der Microsoft-Authentifizierungsbibliothek (MSAL) und der Microsoft Graph-API.

  1. Starten Sie Visual Studio, und erstellen Sie dann ein neues Projekt für die Visual C#-Konsolen-App (.NET Framework).

  2. Geben Sie einen Namen für Ihr Projekt ein, und geben Sie nach Bedarf weitere Details an.

    Erstellen eines C#-Konsolen-App-Projekts in Visual Studio
  3. Verwenden Sie die Projektmappen-Explorer, um das Microsoft MSAL NuGet-Paket zum Projekt hinzuzufügen:

    1. Klicken Sie mit der rechten Maustaste auf den Projektmappen-Explorer.
    2. Wählen Sie NuGet-Pakete verwalten... aus.>Durchsuchen.
    3. Wählen Sie Microsoft.Identity.Client und dann Installieren aus.
  4. Fügen Sie oben in Program.cs die folgenden -Anweisungen hinzu:

    using Microsoft.Identity.Client;
    using System.Net.Http;
    
  5. Fügen Sie eine Methode hinzu, um den Autorisierungsheader zu erstellen:

    private static async Task<string> GetAuthorizationHeader()
    {
        string applicationId = "<Your Application ID>";
        string authority = "https://login.microsoftonline.com/common/";
        Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
        AuthenticationContext context = new AuthenticationContext(authority);
        AuthenticationResult result = await context.AcquireTokenAsync(
            "https://graph.microsoft.com",
            applicationId, redirectUri,
            new PlatformParameters(PromptBehavior.Auto));
        return result.CreateAuthorizationHeader();
    

    Denken Sie daran, den Wert von application_ID so zu ändern, dass er mit einem übereinstimmt, dem mindestens der DeviceManagementManagedDevices.Read.All Berechtigungsbereich gewährt wurde, wie weiter oben beschrieben.

  6. Fügen Sie eine Methode hinzu, um die Liste der Geräte abzurufen:

    private static async Task<string> GetMyManagedDevices()
    {
        string authHeader = await GetAuthorizationHeader();
        HttpClient graphClient = new HttpClient();
        graphClient.DefaultRequestHeaders.Add("Authorization", authHeader);
        return await graphClient.GetStringAsync(
            "https://graph.microsoft.com/beta/me/managedDevices");
    }
    
  7. Aktualisieren Sie Main , um GetMyManagedDevices aufzurufen:

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. Kompilieren Sie Das Programm, und führen Sie es aus.

Wenn Sie Ihr Programm zum ersten Mal ausführen, sollten Sie zwei Eingabeaufforderungen erhalten. Die erste fordert Ihre Anmeldeinformationen an, und die zweite erteilt Berechtigungen für die managedDevices Anforderung.

Als Referenz finden Sie hier das abgeschlossene Programm:

using Microsoft.Identity.Client;
using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace IntuneGraphExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string devices = GetMyManagedDevices().GetAwaiter().GetResult();
            Console.WriteLine(devices);
        }

        private static async Task<string> GetAuthorizationHeader()
        {
            string applicationId = "<Your Application ID>";
            string authority = "https://login.microsoftonline.com/common/";
            Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
            AuthenticationContext context = new AuthenticationContext(authority);
            AuthenticationResult result = await context.AcquireTokenAsync("https://graph.microsoft.com", applicationId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
            return result.CreateAuthorizationHeader();
        }

        private static async Task<string> GetMyManagedDevices()
        {
            string authHeader = await GetAuthorizationHeader();
            HttpClient graphClient = new HttpClient();
            graphClient.DefaultRequestHeaders.Add("Authorization", authHeader);
            return await graphClient.GetStringAsync("https://graph.microsoft.com/beta/me/managedDevices");
        }
    }
}

Authentifizieren von Microsoft Entra ID mithilfe von Microsoft Graph PowerShell

PowerShell-Skripts können das Microsoft Graph PowerShell-Modul für die Authentifizierung verwenden. Weitere Informationen finden Sie unter Microsoft Graph PowerShell und in den Intune PowerShell-Beispielen.

Unterstützung mehrerer Mandanten und Partner

Wenn Ihr organization Organisationen mit ihren eigenen Microsoft Entra Mandanten unterstützt, sollten Sie Ihren Clients erlauben, Ihre Anwendung mit ihren jeweiligen Mandanten zu verwenden.

Gehen Sie hierzu folgendermaßen vor:

  1. Vergewissern Sie sich, dass das Clientkonto im Zielmandanten Microsoft Entra vorhanden ist.

  2. Vergewissern Sie sich, dass Ihr Mandantenkonto Benutzern das Registrieren von Anwendungen ermöglicht (siehe Benutzereinstellungen).

  3. Richten Sie eine Beziehung zwischen den einzelnen Mandanten ein.

    Führen Sie dazu eine der folgenden Aktionen aus:

    a. Verwenden Sie das Microsoft Partner Center , um eine Beziehung zu Ihrem Kunden und dessen E-Mail-Adresse zu definieren.

    b. Laden Sie den Benutzer ein, Gast Ihres Mandanten zu werden.

So laden Sie den Benutzer ein, Gast Ihres Mandanten zu sein:

  1. Wählen Sie im Bereich Schnellaufgaben die Option Gastbenutzer hinzufügen aus.

    Hinzufügen eines Gastbenutzers mithilfe von Schnellaufgaben
  2. Geben Sie die E-Mail-Adresse des Clients ein, und fügen Sie (optional) eine personalisierte Nachricht für die Einladung hinzu.

    Einladen eines externen Benutzers als Gast
  3. Wählen Sie Einladen aus.

Dadurch wird eine Einladung an den Benutzer gesendet.

Eine Beispiel-Gast-Einladung

Der Benutzer muss den Link Erste Schritte auswählen, um Ihre Einladung anzunehmen.

Wenn die Beziehung eingerichtet ist (oder Ihre Einladung akzeptiert wurde), fügen Sie das Benutzerkonto der Verzeichnisrolle hinzu.

Denken Sie daran, den Benutzer nach Bedarf anderen Rollen hinzuzufügen. Damit der Benutzer beispielsweise Intune-Einstellungen verwalten kann, muss er entweder ein globaler Administrator oder ein Intune-Dienstadministrator sein.

Ferner gilt Folgendes:

  • Verwenden Sie https://admin.microsoft.com , um Ihrem Benutzerkonto eine Intune-Lizenz zuzuweisen.

  • Aktualisieren Sie den Anwendungscode so, dass er sich bei der Microsoft Entra Mandantendomäne des Clients authentifiziert und nicht bei Ihrer eigenen.

    Angenommen, Ihre Mandantendomäne lautet contosopartner.onmicrosoft.com , und die Mandantendomäne Ihres Clients lautet northwind.onmicrosoft.com. Sie würden Ihren Code aktualisieren, um sich beim Mandanten Ihres Clients zu authentifizieren.

    Um dies in einer C#-Anwendung basierend auf dem vorherigen Beispiel zu tun, würden Sie den Wert der authority Variablen ändern:

    string authority = "https://login.microsoftonline.com/common/";
    

    in

    string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";