Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Mitarbeitermandanten
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.
Wählen Sie unter Verwalten die Optionen Authentifizierung>Plattform hinzufügen>Android aus.
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
- Java-Beispiel -
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.
- „KeyTool. exe“ wird als Teil des Java Development Kit (JDK) installiert. Sie müssen auch das OpenSSL-Tool installieren, um den KeyTool-Befehl auszuführen. Weitere Informationen finden Sie in der Android-Dokumentation zum Generieren eines Schlüssels.
Geben Sie den von KeyTool generierten Signaturhash ein.
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.
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:
Öffnen Sie Ihr Projekt in Android Studio, oder erstellen Sie ein neues Projekt.
Ö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 diecom.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.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:
Navigieren Sie im Projektbereich von Android Studio zu app\src\main\res.
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.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
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.
- Verwenden Sie den Paketnamen, um den Wert
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.