Concedere l’accesso utente nell’app Android (Kotlin) di esempio
Questa guida mostra come configurare un'applicazione per dispositivi mobili Android di esempio per l'accesso utente.
In questo articolo si apprenderà come eseguire le attività seguenti:
- Registrare l'applicazione nell'Interfaccia di amministrazione di Microsoft Entra.
- Aggiungere un URL di reindirizzamento della piattaforma.
- Abilitare i flussi client pubblico.
- Aggiornare il file di configurazione del codice di esempio di Android in modo da usare la propria istanza di Microsoft Entra per ID esterno per i dettagli del tenant esterno.
- Eseguire e testare l'applicazione per dispositivi mobili Android di esempio.
Prerequisiti
- Android Studio.
- Un tenant esterno. Se non si dispone già di una versione, iscriversi per ottenere una versione di valutazione gratuita.
Registrare un'applicazione
Per abilitare l'applicazione all'accesso utente con Microsoft Entra, è necessario che Microsoft Entra per ID esterno riconosca l'applicazione creata. La registrazione dell'app stabilisce una relazione di trust tra l'app e Microsoft Entra. Quando si registra un'applicazione, l'ID esterno genera un identificatore univoco noto come ID applicazione (client), un valore usato per identificare l'app durante la creazione di richieste di autenticazione.
La procedura seguente spiega come registrare l'app nell'Interfaccia di amministrazione di Microsoft Entra:
Accedere all’Interfaccia di amministrazione di Microsoft Entra almeno come sviluppatore di applicazioni.
Se si ha accesso a più tenant, usare l'icona Impostazioni
nel menu in alto per passare al tenant esterno dal menu Directory e sottoscrizioni.
Passare a Identità>Applicazioni>Registrazioni app.
Seleziona + Nuova registrazione.
Nella pagina Registra un'applicazione che viene visualizzata:
- Immettere un nome significativo per l’applicazione da mostrare agli utenti dell'app, ad esempio ciam-client-app.
- In Tipi di account supportati selezionare Account solo in questa directory organizzativa.
Selezionare Registra.
Al termine della registrazione, viene visualizzato il riquadro Panoramica dell'applicazione. Registrare l'ID applicazione (client) da usare nel codice sorgente dell'applicazione.
Aggiungere un URL di reindirizzamento della piattaforma
Per specificare il tipo di app per la registrazione, seguire questa procedura:
- In Gestisci selezionare Autenticazione.
- Nella pagina Configurazioni della piattaforma, selezionare Aggiungi una piattaforma, quindi selezionare l'opzione Android.
- Immettere il nome del pacchetto del progetto. Se è stato scaricato il codice di esempio, il valore sarà
com.azuresamples.msaldelegatedandroidkotlinsampleapp
. - Nella sezione Hash della firma del riquadro Configurare l'app Android, selezionare Generazione di un hash della firma per lo sviluppo. Tale operazione cambia per ogni ambiente di sviluppo. Copiare ed eseguire il comando KeyTool per il sistema operativo corrente nel terminale.
- Immettere il valore di Hash della firma generato da KeyTool.
- Seleziona Configura.
- Copiare la configurazione MSAL dal riquadro Configurazione Android e salvarla per la successiva configurazione dell'app.
- Selezionare Fatto.
Abilitare il flusso client pubblico
Per identificare l'app come client pubblico, seguire questa procedura:
In Gestisci selezionare Autenticazione.
In Impostazioni avanzate, selezionare Sì per Consenti flussi client pubblico.
Seleziona Salva per salvare le modifiche.
Concedere il consenso amministratore
Dopo aver registrato l'applicazione, viene assegnata l'autorizzazione User.Read . Tuttavia, poiché il tenant è un tenant esterno, gli utenti del cliente stessi non possono fornire il consenso a questa autorizzazione. L'amministratore deve fornire il consenso a questa autorizzazione per conto di tutti gli utenti nel tenant:
Nella pagina Registrazioni app, selezionare l'applicazione creata (ad esempio ciam-client-app) per aprire la relativa pagina Panoramica.
In Gestisci selezionare Autorizzazioni API.
- Selezionare Concedi consenso amministratore per <nome del tenant>, quindi selezionare Sì.
- Selezionare Aggiorna, quindi verificare che Concesso per <il nome> del tenant venga visualizzato in Stato per l'autorizzazione.
Clonare un'applicazione per dispositivi mobili Android di esempio
Per ottenere l'applicazione di esempio, è possibile clonarla da GitHub o scaricarla come file .zip.
Per clonare l'esempio, aprire un prompt dei comandi, passare alla posizione in cui si vuole creare il progetto e immettere il comando seguente:
git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-android-sample
Configurare l'applicazione per dispositivi mobili Android di esempio
Per abilitare l'autenticazione e l'accesso alle risorse di Microsoft Graph, configurare l'esempio seguendo questa procedura:
In Android Studio, aprire il progetto clonato.
Aprire il file /app/src/main/res/raw/auth_config_ciam.json.
Trovare il segnaposto:
Enter_the_Application_Id_Here
e sostituirlo con l'ID applicazione (client) dell'app registrata in precedenza.Enter_the_Redirect_Uri_Here
e sostituirlo con il valore di redirect_urinel file di configurazione di MSAL (Microsoft Authentication Library) scaricato in precedenza al momento dell’aggiunta dell'URL di reindirizzamento della piattaforma.Enter_the_Tenant_Subdomain_Here
e sostituirlo con il sottodominio della directory (tenant). Ad esempio, se il dominio primario del tenant ècontoso.onmicrosoft.com
, usarecontoso
. Se il sottodominio del tenant non è disponibile, vedere come leggere i dettagli del tenant.
Aprire il file /app/src/main/AndroidManifest.xml.
Trovare il segnaposto:
ENTER_YOUR_SIGNATURE_HASH_HERE
e sostituirlo con l'hash della firma generato in precedenza al momento dell’aggiunta dell'URL di reindirizzamento della piattaforma.
Aprire il file /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt.
Trovare la proprietà denominata
scopes
e impostare gli ambiti registrati in Concedi consenso amministratore. Se non sono stati registrati ambiti, è possibile lasciare vuoto questo elenco di ambiti.private const val scopes = "" // Developers should set the respective scopes of their Microsoft Graph resources here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
L'app è stata configurata ed è pronta per l'esecuzione.
Eseguire e testare l'applicazione per dispositivi mobili Android di esempio
Per compilare ed eseguire l'app, seguire la procedura seguente:
Nella barra degli strumenti, selezionare l'applicazione dal menu delle configurazioni di esecuzione.
Nel menu del dispositivo di destinazione, selezionare il dispositivo in cui si vuole eseguire l'app.
Se non è stato configurato alcun dispositivo, è necessario creare un dispositivo virtuale Android per usare l'emulatore Android o connettere un dispositivo Android fisico.
Selezionare il pulsante Run (Esegui).
Selezionare Acquisisci token in modo interattivo per richiedere un token di accesso.
Se si seleziona API - Esegui GET per chiamare un'API Web ASP.NET Core protetta, verrà visualizzato un errore.
Per altre informazioni sulla chiamata di un'API Web protetta, vedere i passaggi successivi