Freigeben über


Lernprogramm: Einrichten einer Android-App zum Anmelden von Benutzern mithilfe der Microsoft Identity Platform

Gilt für:Grüner Kreis mit weißem Häkchen. Mitarbeitermandanten Grüner Kreis mit weißem Häkchen. Externe Mandanten (weitere Informationen)

In diesem Lernprogramm erfahren Sie, wie Sie Ihrer Android-App Microsoft Authentication Library (MSAL) für Android hinzufügen. MSAL ermöglicht Android-Anwendungen die Authentifizierung von Benutzern mit Microsoft Entra.

In diesem Tutorial lernen Sie:

  • Hinzufügen von MSAL-Abhängigkeiten
  • Hinzufügen einer Konfiguration
  • Erstellen einer MSAL SDK-Instanz

Voraussetzungen

  • Ein Mandant für Mitarbeitende. Sie können Ihr Standardverzeichnis verwenden oder einen neuen Mandanten einrichten.
  • Registrieren Sie eine neue App im Microsoft Entra Admin Center, die nur für Konten in diesem Organisationsverzeichnis konfiguriert ist. Weitere Informationen finden Sie unter Registrieren einer Anwendung . Notieren Sie die folgenden Werte auf der Anwendungsübersichtsseite für die spätere Verwendung:
    • Anwendungs-ID (Client)
    • Verzeichnis-ID (Mandant)
  • Ein Android-Projekt. Wenn Sie kein Android-Projekt haben, erstellen Sie es.

Hinzufügen eines Umleitungs-URI

Sie müssen bestimmte Umleitungs-URIs in Ihrer App-Registrierung konfigurieren, um die Kompatibilität mit dem heruntergeladenen Codebeispiel sicherzustellen. Diese URIs sind wichtig, um Benutzer nach der erfolgreichen Anmeldung wieder an die App weiterzuleiten.

  1. Wählen Sie unter Verwalten die Optionen Authentifizierung>Plattform hinzufügen>Android aus.

  2. Geben Sie den Paketnamen Ihres Projekts basierend auf dem Beispieltyp ein, den Sie oben heruntergeladen haben.

    • Java-Beispiel - com.azuresamples.msalandroidapp
    • Kotlin-Beispiel - com.azuresamples.msalandroidkotlinapp
  3. Klicken Sie auf der Seite Android-App konfigurieren im Abschnitt Signatur-Hash auf Generieren eines Signatur-Hash für die Entwicklung, und kopieren Sie den KeyTool-Befehl in Ihre Befehlszeile.

  4. Geben Sie den von KeyTool generierten Signaturhash ein.

  5. Wählen Sie Konfigurieren aus, und speichern Sie die MSAL-Konfiguration, die im Bereich Android-Konfiguration angezeigt wird, damit Sie diese später beim Konfigurieren Ihrer App eingeben können.

  6. Wählen Sie Fertig aus.

Hinzufügen von MSAL-Abhängigkeiten und relevanten Bibliotheken zu Ihrem Projekt

Führen Sie die folgenden Schritte aus, um MSAL-Abhängigkeiten in Ihrem Android-Projekt hinzuzufügen:

  1. Öffnen Sie Ihr Projekt in Android Studio, oder erstellen Sie ein neues Projekt.

  2. Öffnen Sie die build.gradle Ihrer Anwendung und fügen Sie die folgenden Abhängigkeiten hinzu.

    allprojects {
    repositories {
        //Needed for com.microsoft.device.display:display-mask library
        maven {
            url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
            name 'Duo-SDK-Feed'
        }
        mavenCentral()
        google()
        }
    }
    //...
    
    dependencies { 
        implementation 'com.microsoft.identity.client:msal:5.+'
        //...
    }
    

    In der build.gradle Konfiguration werden Repositorys für Projektabhängigkeiten definiert. Sie enthält eine Maven-Repository-URL für die com.microsoft.device.display:display-mask Bibliothek aus Azure DevOps. Darüber hinaus nutzt es Maven Central- und Google-Repositorys. Der Abschnitt "Abhängigkeiten" gibt die Implementierung der MSAL-Version 5 und potenziell anderer Abhängigkeiten an.

  3. Wählen Sie in Android Studio " Dateisynchronisierungsprojekt>mit Gradle-Dateien" aus.

Hinzufügen einer Konfiguration

Sie übergeben die erforderlichen Mandanten-IDs, z. B. die Anwendungs-ID (Client-ID), über eine JSON-Konfigurationseinstellung an das MSAL SDK.

Führen Sie die folgenden Schritte aus, um eine Konfigurationsdatei zu erstellen:

  1. Navigieren Sie im Projektbereich von Android Studio zu app\src\main\res.

  2. Klicken Sie mit der rechten Maustaste auf res, und wählen Sie New>Directory („Neu“ > „Verzeichnis“) aus. Geben Sie raw als neuen Verzeichnisnamen ein, und wählen Sie OK.

  3. Erstellen Sie unter app>src>main>res>raw eine neue JSON-Datei namens auth_config_single_account.json, und fügen Sie die MSAL-Konfiguration ein, die Sie zuvor gespeichert haben.

    Fügen Sie unterhalb des Umleitungs-URIs Folgendes ein:

      "account_mode" : "SINGLE",
    

    Ihre Konfigurationsdatei sollte in etwa wie folgt aussehen:

    {
      "client_id": "00001111-aaaa-bbbb-3333-cccc4444",
      "authorization_user_agent": "WEBVIEW",
      "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D",
      "broker_redirect_uri_registered": true,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    

    Da in diesem Tutorial nur veranschaulicht wird, wie Sie eine App im Einzelkontomodus konfigurieren, finden Sie weitere Informationen unter Einzelkontomodus vs. Mehrfachkontomodus und Konfigurieren Ihrer App

  4. Es wird die Verwendung von „WEBVIEW“ empfohlen. Wenn Sie „authorization_user_agent“ in Ihrer App als „BROWSER“ konfigurieren möchten, müssen Sie die folgenden Änderungen vornehmen. a) Aktualisieren Sie „auth_config_single_account.json“ mit: "authorization_user_agent": "Browser". b) Aktualisieren Sie „AndroidManifest.xml“. Fügen Sie in der App unter app>src>main>AndroidManifest.xml die Aktivität BrowserTabActivity als untergeordnetes Element des <application>-Elements hinzu. Dieser Eintrag ermöglicht Microsoft Entra ID den Rückruf an Ihre Anwendung nach Abschluss der Authentifizierung:

    <!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in-->
    <activity
        android:name="com.microsoft.identity.client.BrowserTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="msauth"
                android:host="Enter_the_Package_Name"
                android:path="/Enter_the_Signature_Hash" />
        </intent-filter>
    </activity>
    
    • Verwenden Sie den Paketnamen, um den Wert android:host=. zu ersetzen. Er sollte wie folgt aussehen: com.azuresamples.msalandroidapp.
    • Verwenden Sie den Signaturhash, um den Wert android:path= zu ersetzen. Stellen Sie sicher, dass Ihr Signatur-Hash mit einem führenden / beginnt. Er sollte wie folgt aussehen: /aB1cD2eF3gH4+iJ5kL6-mN7oP8q=.

    Diese Werte finden Sie ebenfalls auf dem Blatt „Authentifizierung“ Ihrer App-Registrierung.

Erstellen einer MSAL SDK-Instanz

Verwenden Sie den folgenden Code, um die MSAL SDK-Instanz zu initialisieren:

PublicClientApplication.createSingleAccountPublicClientApplication(
    getContext(),
    R.raw.auth_config_single_account,
    new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
        @Override
        public void onCreated(ISingleAccountPublicClientApplication application) {
            // Initialize the single account application instance
            mSingleAccountApp = application;
            loadAccount();
        }

        @Override
        public void onError(MsalException exception) {
            // Handle any errors that occur during initialization
            displayError(exception);
        }
    }
);

Dieser Code erstellt mithilfe der Konfigurationsdatei auth_config_single_account.jsoneine öffentliche Clientanwendung für ein einzelnes Konto. Wenn die Anwendung erfolgreich erstellt wurde, weist sie die Instanz zu mSingleAccountApp und ruft die loadAccount() Methode auf. Wenn während der Erstellung ein Fehler auftritt, behandelt er den Fehler durch Aufrufen der displayError(exception)-Methode.

Stellen Sie sicher, dass Sie die Importanweisungen hinzufügen. Android Studio sollte die Importanweisungen automatisch für Sie einfügen.

Nächste Schritte