Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
si applica a: utenti aziendali
utenti esterni (ulteriori informazioni)
In questa esercitazione viene illustrato come aggiungere Microsoft Authentication Library (MSAL) per Android all'app Android. MSAL consente alle applicazioni Android di autenticare gli utenti con Microsoft Entra.
In questo tutorial, tu;
- Aggiungere una dipendenza MSAL
- Aggiungere la configurazione
- Creare un'istanza di MSAL SDK
Prerequisiti
- Inquilino della forza lavoro. È possibile usare la directory predefinita o configurare un nuovo tenant.
- Registrare una nuova app nell'interfaccia di amministrazione di Microsoft Entra, configurata solo per gli account in questa directory organizzativa. Per altri dettagli, vedere Registrare un'applicazione . Registrare i valori seguenti dalla pagina Panoramica dell'applicazione per usarli in un secondo momento:
- ID applicazione (cliente)
- ID della directory (cliente)
- Un progetto Android. Se non si ha un progetto Android, crearlo.
Aggiungere un URI di reindirizzamento
È necessario configurare URI di reindirizzamento specifici nella registrazione dell'app per garantire la compatibilità con l'esempio di codice scaricato. Questi URI sono essenziali per reindirizzare gli utenti all'app dopo l'accesso.
In Gestisci selezionare Autenticazione>Aggiungi una piattaforma>Android.
Immettere il nome del pacchetto del progetto in base al tipo di esempio scaricato in precedenza.
- Esempio Java -
com.azuresamples.msalandroidapp
- Esempio di Kotlin -
com.azuresamples.msalandroidkotlinapp
- Esempio Java -
Nella sezione Codice hash della firma del riquadro Configurare l'app Android selezionare Generazione di un codice hash della firma di sviluppo e copiare il comando KeyTool nella riga di comando.
- KeyTool.exe viene installato come parte di Java Development Kit (JDK). È anche necessario installare lo strumento OpenSSL per eseguire il comando KeyTool. Per altre informazioni, vedere la documentazione di Android relativa alla generazione di una chiave.
Immettere il valore di Hash della firma generato da KeyTool.
Selezionare Configura e salvare la Configurazione MSAL visualizzata nella pagina Configurazione di Android in modo da poterla immettere durante la configurazione dell'app in seguito.
Selezionare Fine.
Aggiungere le dipendenze MSAL e le librerie pertinenti al tuo progetto
Per aggiungere dipendenze MSAL nel progetto Android, seguire questa procedura:
Aprire il progetto in Android Studio o creare un nuovo progetto.
Aprire il
build.gradle
dell'applicazione e aggiungere le dipendenze seguenti: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.+' //... }
Nella configurazione
build.gradle
i repository vengono definiti per le dipendenze del progetto. Include un URL del repository Maven per la libreriacom.microsoft.device.display:display-mask
di Azure DevOps. Inoltre, utilizza i repository Maven Central e Google. La sezione dependencies specifica l'implementazione di MSAL versione 5 e potenzialmente altre dipendenze.In Android Studio selezionare File>Sincronizza progetto con Gradle Files.
Aggiungere la configurazione
È possibile passare gli identificatori del tenant necessari, ad esempio l'ID applicazione (client) all'SDK MSAL tramite un'impostazione di configurazione JSON.
Usare questi passaggi per creare un file di configurazione:
Nel riquadro del progetto di Android Studio, vai a app\src\main\res.
Fare clic con il pulsante destro del mouse su res e scegliere Nuova cartella>. Immettere
raw
come nome della nuova directory e selezionare OK.Nell'app >src>main>res>raw, crea un nuovo file JSON denominato
auth_config_single_account.json
e incolla la Configurazione MSAL salvata in precedenza.Sotto l'URI di reindirizzamento incollare:
"account_mode" : "SINGLE",
Il file di configurazione dovrebbe essere simile a questo esempio:
{ "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" } } ] }
Poiché questa esercitazione illustra solo come configurare un'app in modalità Account singolo, vedere modalità account singolo e multiplo e configurazione dell'app per altre informazioni
È consigliabile usare "WEBVIEW". Se vuoi configurare "authorization_user_agent" come "BROWSER" nella tua app, devi apportare gli aggiornamenti seguenti. a) Aggiorna auth_config_single_account.json con "authorization_user_agent": "Browser". b) Aggiornare AndroidManifest.xml. Nell'app, vai all'app >src>main>AndroidManifest.xml, aggiungi l'attività
BrowserTabActivity
come figlio dell'elemento<application>
. Questa voce consente a Microsoft Entra ID di richiamare l'applicazione al termine dell'autenticazione:<!--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>
- Usare il nome pacchetto per sostituire
android:host=.
valore. Dovrebbe essere simile acom.azuresamples.msalandroidapp
. - Utilizzare la firma hash per sostituire il valore
android:path=
. Assicurarsi che sia presente un/
iniziale all'inizio dell'hash della firma. Dovrebbe essere simile a/aB1cD2eF3gH4+iJ5kL6-mN7oP8q=
.
Questi valori sono disponibili anche nel pannello Autenticazione della registrazione dell'app.
- Usare il nome pacchetto per sostituire
Creare un'istanza di MSAL SDK
Per inizializzare l'istanza di MSAL SDK, usare il codice seguente:
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);
}
}
);
Questo codice crea un'applicazione client pubblica con account singolo usando il file di configurazione auth_config_single_account.json. Quando l'applicazione viene creata correttamente, assegna l'istanza a mSingleAccountApp
e chiama il metodo loadAccount()
. Se si verifica un errore durante la creazione, gestisce l'errore chiamando il metodo displayError(exception).
Assicurati di includere le istruzioni di importazione. Android Studio dovrebbe includere automaticamente le istruzioni di importazione.