Condividi tramite


Esercitazione: Configurare un'app Android per l'accesso degli utenti tramite Microsoft Identity Platform

si applica a: cerchio verde con una spunta bianca. utenti aziendali cerchio verde con una spunta bianca. 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.

  1. In Gestisci selezionare Autenticazione>Aggiungi una piattaforma>Android.

  2. 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
  3. 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.

  4. Immettere il valore di Hash della firma generato da KeyTool.

  5. 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.

  6. Selezionare Fine.

Aggiungere le dipendenze MSAL e le librerie pertinenti al tuo progetto

Per aggiungere dipendenze MSAL nel progetto Android, seguire questa procedura:

  1. Aprire il progetto in Android Studio o creare un nuovo progetto.

  2. 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 libreria com.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.

  3. 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:

  1. Nel riquadro del progetto di Android Studio, vai a app\src\main\res.

  2. Fare clic con il pulsante destro del mouse su res e scegliere Nuova cartella>. Immettere raw come nome della nuova directory e selezionare OK.

  3. 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

  4. È 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 a com.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.

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.

Passaggi successivi