Teilen über


Reine Anwendungsauthentifizierung für Intune Data Warehouse

Sie können eine Anwendung mithilfe der Microsoft Entra-ID einrichten und sich beim Intune Data Warehouse authentifizieren. Dieser Prozess ist nützlich für Websites, Apps und Hintergrundprozesse, bei denen die Anwendung keinen Zugriff auf Benutzeranmeldeinformationen haben sollte. Mit den folgenden Schritten autorisieren Sie Ihre Anwendung mit Microsoft Entra ID mithilfe von OAuth 2.0.

Authorization

Microsoft Entra ID verwendet OAuth 2.0, damit Sie den Zugriff auf Webanwendungen und Web-APIs in Ihrem Microsoft Entra-Mandanten autorisieren können. In diesem Leitfaden erfahren Sie, wie Sie Ihre Anwendung mit C# authentifizieren. Der OAuth 2.0-Autorisierungscodefluss wird in Abschnitt 4.1 der OAuth 2.0-Spezifikation beschrieben. Weitere Informationen finden Sie unter Autorisieren des Zugriffs auf Webanwendungen mit OAuth 2.0 und Microsoft Entra ID.

Azure KeyVault

Im folgenden Prozess wird eine private Methode verwendet, um einen App-Schlüssel zu verarbeiten und zu konvertieren. Diese private Methode hat den Namen SecureString. Alternativ können Sie Azure KeyVault verwenden, um den App-Schlüssel zu speichern. Weitere Informationen finden Sie unter Key Vault.

Erstellen einer Web-App

In diesem Abschnitt geben Sie Details zur Web-App an, auf die Sie in Intune verweisen möchten. Eine Web-App ist eine Client-Server-Anwendung. Der Server stellt die Web-App bereit, welche die Benutzeroberfläche, den Inhalt und die Funktionen umfasst. Diese Art von App wird separat im Web verwaltet. Sie verwenden Intune, um einer Web-App Zugriff auf Intune zu gewähren. Der Datenfluss wird von der Web-App initiiert.

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

  2. Wählen Sie Alle Dienste>M365 Microsoft Entra ID>Microsoft Entra ID>App-Registrierungen aus.

  3. Klicken Sie auf Neue Registrierung , um den Bereich Anwendung registrieren anzuzeigen.

  4. Fügen Sie im Bereich Anwendung registrieren Ihre App-Details hinzu:

    • Ein App-Name, z. B. Intune App-Only Auth.
    • Der Unterstützte Kontotyp.
    • Der Umleitungs-URI der Anwendung. Dies ist der Speicherort, zu dem Benutzer während des Authentifizierungsprozesses automatisch navigieren. Sie müssen nachweisen, dass sie das sind, was sie sagen. Weitere Informationen finden Sie unter Was sind Anwendungszugriff und einmaliges Anmelden mit Microsoft Entra ID?
  5. Klicken Sie auf Registrieren.

    Hinweis

    Kopieren Sie die Anwendungs-ID (Client) aus dem App-Bereich, um sie später zu verwenden.

Erstellen eines Schlüssels (Kennwort)

In diesem Abschnitt generiert Microsoft Entra ID einen Schlüsselwert für Ihre App.

  1. Wählen Sie im Bereich App-Registrierungen Ihre neu erstellte App aus, um den App-Bereich anzuzeigen.

  2. Wählen Sie Zertifikate & Geheimnisse am oberen Rand des Bereichs aus, um den Bereich Zertifikate & Geheimnisse anzuzeigen.

  3. Wählen Sie im Bereich Zertifikate & Geheimnisse die Option Geheime Clientschlüssel aus.

  4. Fügen Sie die Schlüsselbeschreibung und eine Ablaufdauer für den Schlüssel hinzu.

  5. Klicken Sie auf Hinzufügen , um die Schlüssel der Anwendung zu speichern und zu aktualisieren.

  6. Sie müssen den generierten Schlüsselwert (base64-codiert) kopieren.

    Hinweis

    Der Schlüsselwert verschwindet, nachdem Sie den Bereich Zertifikate & Geheimnisse verlassen haben. Sie können den Schlüssel später nicht mehr aus diesem Bereich abrufen. Kopieren Sie es zur späteren Verwendung.

Gewähren von Anwendungsberechtigungen

In diesem Abschnitt erteilen Sie den Anwendungen Berechtigungen.

  1. Wählen Sie API-Berechtigungen>Berechtigung>hinzufügen Intune-Anwendungsberechtigungen>aus.
  2. Wählen Sie die Option get_data_warehouse (Data Warehouse-Informationen aus Microsoft Intune abrufen) aus.
  3. Klicken Sie auf Berechtigungen hinzufügen.
  4. Klicken Sie im Bereich API-Zugriff hinzufügen auf Fertig.
  5. Klicken Sie im Bereich API-Berechtigungen auf Administratoreinwilligung erteilen, und klicken Sie auf Ja, wenn Sie höher gestuft werden, um vorhandene Berechtigungen dieser Anwendung zu aktualisieren.

Token generieren

Erstellen Sie mithilfe von Visual Studio ein Konsolen-App-Projekt (.NET Framework), das .NET Framework unterstützt und C# als Codierungssprache verwendet.

  1. Wählen Sie Datei>Neues>Projekt aus, um das Dialogfeld Neues Projekt anzuzeigen.

  2. Wählen Sie auf der linken Seite Visual C# aus, um alle .NET Framework-Projekte anzuzeigen.

  3. Wählen Sie Konsolen-App (.NET Framework) aus, fügen Sie einen App-Namen hinzu, und klicken Sie dann auf OK , um die App zu erstellen.

  4. Wählen Sie im Projektmappen-ExplorerProgram.cs aus, um den Code anzuzeigen.

  5. Fügen Sie im Projektmappen-Explorer einen Verweis auf die Assembly System.Configurationhinzu.

  6. Wählen Sie im PopupmenüDie Option Neues Elementhinzufügen> aus. Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  7. Wählen Sie links unter Visual C#die Option Code aus.

  8. Wählen Sie Klasse aus, ändern Sie den Namen der Klasse in IntuneDataWarehouseClass.cs, und klicken Sie auf Hinzufügen.

  9. Fügen Sie den folgenden Code innerhalb der Main -Methode hinzu:

         var applicationId = ConfigurationManager.AppSettings["appId"].ToString();
         SecureString applicationSecret = ConvertToSecureStr(ConfigurationManager.AppSettings["appKey"].ToString()); // Load as SecureString from configuration file or secret store (i.e. Azure KeyVault)
         var tenantDomain = ConfigurationManager.AppSettings["tenantDomain"].ToString();
         var msalContext = new AuthenticationContext($"https://login.windows.net/" + tenantDomain + "/oauth2/token");
    
         AuthenticationResult authResult = msalContext.AcquireTokenAsync(
             resource: "https://api.manage.microsoft.com/",
             clientCredential: new ClientCredential(
                 applicationId,
                 new SecureClientSecret(applicationSecret))).Result;
    
  10. Fügen Sie zusätzliche Namespaces hinzu, indem Sie den folgenden Code am Anfang der Codedatei hinzufügen:

     using System.Security;
     using Microsoft.Identity.Client;
     using System.Configuration;
    

    Hinweis

    Sie müssen die Microsoft Authentication Library (MSAL) verwenden. Weitere Informationen finden Sie unter Aktualisieren Ihrer Anwendungen für die Verwendung der Microsoft-Authentifizierungsbibliothek (MSAL) und der Microsoft Graph-API.

  11. Fügen Sie nach der Main -Methode die folgende private Methode hinzu, um den App-Schlüssel zu verarbeiten und zu konvertieren:

    private static SecureString ConvertToSecureStr(string appkey)
    {
        if (appkey == null)
            throw new ArgumentNullException("AppKey must not be null.");
    
        var secureAppKey = new SecureString();
    
        foreach (char c in appkey)
            secureAppKey.AppendChar(c);
    
        secureAppKey.MakeReadOnly();
        return secureAppKey;
    }
    
  12. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und wählen Sie dann NuGet-Pakete verwalten aus.

  13. Suchen Sie nach Microsoft.Identity.Client , und installieren Sie das zugehörige Microsoft NuGet-Paket.

  14. Wählen Sie im Projektmappen-Explorer dieApp.configDatei aus, und öffnen Sie sie .

  15. Fügen Sie den appSettings Abschnitt hinzu, damit der XML-Code wie folgt angezeigt wird:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
        <appSettings>
          <add key="appId" value="App ID created from 'Create a Web App' procedure"/>
          <add key="appKey" value="Key created from 'Create a key' procedure" />
          <add key="tenantDomain" value="contoso.onmicrosoft.com"/>
        </appSettings>
    </configuration>
    
  16. Aktualisieren Sie die appIdWerte , appKeyund tenantDomain so, dass sie ihren eindeutigen App-bezogenen Werten entsprechen.

  17. Erstellen Sie Ihre App.

    Hinweis

    Weitere Implementierungscode finden Sie unter Intune-Data-Warehouse-Codebeispiel.

Nächste Schritte

Weitere Informationen zu Azure Key Vault finden Sie unter Was ist Azure Key Vault?