Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Werknemerstenants
Externe tenants (meer informatie)
In deze zelfstudie leert u hoe u Microsoft Authentication Library (MSAL) voor Android toevoegt aan uw Android-app. MET MSAL kunnen Android-toepassingen gebruikers verifiëren met Microsoft Entra.
In deze handleiding zul je
- MSAL-afhankelijkheid toevoegen
- Configuratie toevoegen
- MSAL SDK-exemplaar maken
Voorwaarden
- Een personeelstenant. U kunt uw Default Directory- gebruiken of een nieuwe tenant instellen.
- Registreer een nieuwe app in het Microsoft Entra-beheercentrum, geconfigureerd voor alleen accounts in deze organisatorische directory. Raadpleeg Een applicatie registreren voor meer details. Noteer de volgende waarden van de Overview pagina van de applicatie voor later gebruik.
- Applicatie (client) ID
- Directory-id (huurder)
- Een Android-project. Als u geen Android-project hebt, maakt u het.
Een omleidings-URI toevoegen
U moet specifieke omleidings-URI's configureren in uw app-registratie om compatibiliteit met het gedownloade codevoorbeeld te garanderen. Deze URI's zijn essentieel voor het terugleiden van gebruikers naar de app nadat ze zich hebben aangemeld.
Selecteer onder Beheren achtereenvolgens Verificatie>Een platform toevoegen>Android.
Voer de pakketnaam van uw project in op basis van het voorbeeldtype dat u hierboven hebt gedownload.
- Java-voorbeeld -
com.azuresamples.msalandroidapp - Kotlin-voorbeeld -
com.azuresamples.msalandroidkotlinapp
- Java-voorbeeld -
Selecteer in de Handtekeninghash-sectie van het Instellingen voor uw Android-app configureren paneel Een handtekeninghash voor ontwikkeling genereren en kopieer de KeyTool-opdracht naar de opdrachtregel.
- KeyTool.exe is geïnstalleerd als onderdeel van de JDK (Java Development Kit). U moet ook het OpenSSL-hulpprogramma installeren om de KeyTool-opdracht uit te voeren. Zie de Android-documentatie over het genereren van een sleutel voor meer informatie.
Voer de handtekening-hash in die is gegenereerd door KeyTool.
Selecteer Configureren en sla de MSAL-configuratie op die wordt weergegeven in het configuratievenster van Android , zodat u deze kunt invoeren wanneer u de app later configureert.
Kies Gereed.
MSAL-afhankelijkheid en relevante bibliotheken toevoegen aan uw project
Volg deze stappen om MSAL-afhankelijkheden toe te voegen aan uw Android-project:
Open uw project in Android Studio of maak een nieuw project.
Open de
build.gradlevan uw toepassing en voeg de volgende afhankelijkheden toe: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 de
build.gradle-configuratie worden opslagplaatsen gedefinieerd voor projectafhankelijkheden. Het bevat een URL van de Maven-opslagplaats voor decom.microsoft.device.display:display-mask-bibliotheek van Azure DevOps. Daarnaast worden Maven Central en Google-opslagplaatsen gebruikt. In de sectie Afhankelijkheden wordt de implementatie van MSAL versie 5 en mogelijk andere afhankelijkheden opgegeven.Selecteer in Android Studio de optie Bestand>Synchroniseer project met Gradle-bestanden.
Configuratie toevoegen
U geeft de vereiste tenant-id's, zoals de toepassings-id (client), door aan de MSAL SDK via een JSON-configuratie-instelling.
Gebruik deze stappen om een configuratiebestand te maken:
Navigeer in het projectvenster van Android Studio naar app\src\main\res.
Klik met de rechtermuisknop op res en kies Nieuwe>Directory. Voer
rawin als de nieuwe mapnaam en selecteer OK-.Maak in app>src>main>res>raween nieuw JSON-bestand met de naam
auth_config_single_account.jsonen plak de MSAL-configuratie die u eerder hebt opgeslagen.Plak onder de omleidings-URI:
"account_mode" : "SINGLE",Uw configuratiebestand moet er ongeveer uitzien als in dit voorbeeld:
{ "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" } } ] }Aangezien deze uitleg alleen laat zien hoe u een app configureert in de modus voor één account, zie voor meer informatie over de modus voor één account versus meerdere accounts en het configureren van uw app.
U wordt aangeraden WEBVIEW te gebruiken. Als u 'authorization_user_agent' wilt configureren als BROWSER in uw app, moet u de volgende updates uitvoeren. a) Werk auth_config_single_account.json bij met 'authorization_user_agent': 'Browser'. b) AndroidManifest.xmlbijwerken. In de app ga naar app>src>main>AndroidManifest.xml, voeg de activiteit
BrowserTabActivitytoe als een subelement van het element<application>. Met deze vermelding kan Microsoft Entra ID terugbellen naar uw toepassing nadat deze de verificatie heeft voltooid:<!--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>- Gebruik de pakketnaam om
android:host=.waarde te vervangen. Het moet eruitzien alscom.azuresamples.msalandroidapp. - Gebruik de Signature Hash- om
android:path=waarde te vervangen. Zorg ervoor dat er een voorloop-/aan het begin van uw handtekening-hash staat. Het moet eruitzien als/aB1cD2eF3gH4+iJ5kL6-mN7oP8q=.
U kunt deze waarden ook vinden in de sectie Authenticatie van uw app-registratie.
- Gebruik de pakketnaam om
MSAL SDK-exemplaar maken
Gebruik de volgende code om het MSAL SDK-exemplaar te initialiseren:
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);
}
}
);
Met deze code maakt u een openbare clienttoepassing met één account met behulp van het configuratiebestand auth_config_single_account.json. Wanneer de toepassing is gemaakt, wordt het exemplaar toegewezen aan mSingleAccountApp en wordt de methode loadAccount() aangeroepen. Als er een fout optreedt tijdens het maken, wordt de fout afgehandeld door de methode displayError(exception) aan te roepen.
Zorg ervoor dat je de importverklaringen opneemt. Android Studio moet automatisch de importinstructies voor u bevatten.