Condividi tramite


Guida introduttiva: Consentire agli utenti di accedere in un'app mobile di esempio

Prima di iniziare, usa il selettore Scegliere un tipo di tenant nella parte superiore di questa pagina per selezionare il tipo di tenant. Microsoft Entra ID offre due configurazioni tenant, forza lavoro e esterna. Una configurazione del tenant della forza lavoro è destinata ai dipendenti, alle app interne e ad altre risorse dell'organizzazione. Un tenant esterno è destinato alle app rivolte ai clienti.

In questa guida introduttiva si scarica ed esegue un esempio di codice che illustra come un'applicazione Android può accedere agli utenti e ottenere un token di accesso per chiamare l'API Microsoft Graph.

Le applicazioni devono essere rappresentate da un oggetto app in Microsoft Entra ID in modo che Microsoft Identity Platform possa fornire token all'applicazione.

Prerequisiti

Registrare l'applicazione

Per registrare l'applicazione e aggiungere manualmente le informazioni di registrazione dell'app alla soluzione, seguire questa procedura:

  1. Accedi all'interfaccia di amministrazione di Microsoft Entra come almeno Sviluppatore di Applicazioni.

  2. Se hai accesso a più tenant, usa l'icona Impostazioni nel menu in alto per passare al tenant in cui si vuole registrare l'applicazione dal menu Directory + sottoscrizioni.

  3. Accedi a Identity>Applications>Registrazioni app.

  4. Selezionare Nuova registrazione.

  5. Immettere un Nome per la tua applicazione. Gli utenti dell'app potrebbero visualizzare questo nome ed è possibile modificarlo in un secondo momento.

  6. Per Tipi di account supportati, selezionare account in qualsiasi directory organizzativa (qualsiasi directory di Microsoft Entra - Multitenant) e account Microsoft personali (ad esempio Skype, Xbox). Per informazioni sui diversi tipi di account, selezionare l'opzione Aiutami a scegliere.

  7. Seleziona Registra.

  8. In Gestisci, seleziona Autenticazione>Aggiungi una piattaforma>Android.

  9. 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
  10. Nella sezione hash della firma del riquadro Configura la tua app Android, selezionare Generare un hash della firma di sviluppo. e copiare il comando KeyTool nella riga di comando.

  11. Immettere il hash della firma generato da KeyTool.

  12. Selezionare Configura e salvare la configurazione MSAL visualizzata nel riquadro di configurazione di Android in modo da poterla immettere quando si configura l'app in un secondo momento.

  13. Selezionare Fine.

Ottenere l'app di esempio

Configurare l'applicazione di esempio

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

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

  3. Nell'app >src>main>res>raw, vai al file JSON denominato auth_config_single_account.json e incolla la configurazione MSAL che hai salvato 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": false,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    
  4. Apri il file /app/src/main/AndroidManifest.xml.

  5. Trova il segnaposto.

    • enter_the_signature_hash e sostituiscilo con l'hash della firma che hai generato in precedenza quando hai aggiunto l'URL di reindirizzamento della piattaforma.

    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

Eseguire l'app di esempio

Scegli l'emulatore o il dispositivo fisico dall'elenco a discesa dispositivi disponibili di Android Studio e avvia l'app.

L'applicazione di esempio si apre nella schermata modalità a account singolo. Un ambito predefinito, user.read, viene fornito per impostazione predefinita, che viene usato durante la lettura dei dati del proprio profilo durante la chiamata all'API Microsoft Graph. L'URL per la chiamata all'API Microsoft Graph viene fornito per impostazione predefinita. Se lo si desidera, è possibile modificare entrambe le opzioni.

Screenshot dell'app di esempio MSAL che mostra l'utilizzo di account singolo e multiplo.

Usa il menu dell'app per passare tra modalità account singolo e modalità account multiplo.

In modalità account singolo accedere con un account aziendale o home:

  1. Selezionare Ottenere i dati del grafo in modo interattivo per richiedere all'utente le credenziali. L'output della chiamata all'API Microsoft Graph verrà visualizzato nella parte inferiore della schermata.
  2. Dopo aver eseguito l'accesso, selezionare Recupera dati del grafico in modo silenzioso per effettuare una chiamata all'API Microsoft Graph senza richiedere nuovamente le credenziali all'utente. L'output della chiamata all'API Microsoft Graph verrà visualizzato nella parte inferiore della schermata.

In modalità più account è possibile ripetere gli stessi passaggi. Inoltre, è possibile rimuovere l'account connesso, che rimuove anche i token memorizzati nella cache per tale account.

Funzionamento dell'esempio

Diagramma che mostra come funziona l'app di esempio generata da questo quickstart.

Il codice è organizzato in frammenti che mostrano come scrivere un'app MSAL con un singolo e più account. I file di codice sono organizzati come segue:

File Dimostra
MainActivity Gestisce l'interfaccia utente
MSGraphRequestWrapper Chiama l'API Microsoft Graph usando il token fornito da MSAL
MultipleAccountModeFragment Inizializza un'applicazione multi-account, carica un account utente e ottiene un token per chiamare l'API Microsoft Graph
SingleAccountModeFragment Inizializza un'applicazione con account singolo, carica un account utente e ottiene un token per chiamare l'API Microsoft Graph
res/auth_config_multiple_account.json File di configurazione multiconto
res/auth_config_single_account.json File di configurazione dell'account singolo
Gradle Scripts/build.grade (Module:app) Le dipendenze della libreria MSAL vengono aggiunte qui

Ora esamineremo questi file in modo più dettagliato ed evidenzieremo il codice specifico di MSAL.

Passaggi successivi

Passare all'esercitazione android in cui si crea un'app Android che ottiene un token di accesso da Microsoft Identity Platform e la usa per chiamare l'API Microsoft Graph.

La guida introduttiva illustra come configurare app Android, .NET MAUI Android e iOS/macOS per consentire agli utenti di accedere registrando le applicazioni, configurando URL di reindirizzamento, aggiornando le configurazioni e testando l'app.

Prerequisiti

Registrare l'applicazione

Per consentire all'applicazione di autenticare utenti con Microsoft Entra, è necessario che Microsoft Entra External ID sia a conoscenza dell'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.

I passaggi seguenti illustrano come registrare l'app nell'interfaccia di amministrazione di Microsoft Entra:

  1. Accedi all'interfaccia di amministrazione di Microsoft Entra come almeno uno Sviluppatore di applicazioni.

  2. Se si ha accesso a più tenant, usare l'icona Impostazioni nel menu in alto per passare al tenant esterno dal menu Directory + sottoscrizioni.

  3. Accedi a Identity>Applications>Registrazioni app.

  4. Selezionare + Nuova registrazione.

  5. Nella pagina Registrare un'applicazione visualizzata;

    1. Immettere un nome applicazione significativo Nome che sarà visualizzato agli utenti dell'app, ad esempio ciam-client-app.
    2. In Tipi di account supportati, selezionare Account solo in questa directory organizzativa.
  6. Seleziona Registra.

  7. Il riquadro Panoramica dell'applicazione viene visualizzato al termine della registrazione con successo. 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 dell'app, seguire questa procedura:

  1. In Gestisciselezionare Autenticazione.
  2. Nella pagina configurazioni della piattaforma, selezionare Aggiungi una piattaformae quindi selezionare l'opzione Android.
  3. Immettere il nome del pacchetto del progetto. Se è stato scaricato il codice di esempio , questo valore è com.azuresamples.msaldelegatedandroidkotlinsampleapp.
  4. Nella sezione Signature hash del riquadro Configura la tua app Android, selezionate Generazione di un hash della firma di sviluppo. Ciò cambierà per ogni ambiente di sviluppo. Copiate ed eseguite il comando KeyTool per il vostro sistema operativo nel vostro terminale.
  5. Immettere il hash della firma generato da KeyTool.
  6. Selezionare Configura.
  7. Copia la Configurazione MSAL dal riquadro di configurazione del Android e salvala per la configurazione successiva dell'app.
  8. Selezionare Fine.

Abilitare il flusso client pubblico

Per identificare l'app come client pubblico, seguire questa procedura:

  1. In Gestisciselezionare Autenticazione.

  2. Nelle Impostazioni avanzate, alla voce Consenti flussi client pubblici, seleziona .

  3. Selezionare Salva per salvare le modifiche.

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 del tenant deve fornire il consenso a questa autorizzazione per conto di tutti gli utenti nel tenant:

  1. Nella pagina registrazioni dell'app selezionare l'applicazione creata( ad esempio ciam-client-app) per aprire la relativa pagina Panoramica.

  2. In Gestisciselezionare autorizzazioni API .

    1. Selezionare Concedi consenso amministratore per <nome tenant>, quindi selezionare .
    2. Selezionare Aggiorna, quindi verificare che Concesso per <il nome del tenant del tuo account> sia visualizzato in Stato per l'autorizzazione.

Clonare un'applicazione 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 e 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 di esempio

Per abilitare l'autenticazione e l'accesso alle risorse di Microsoft Graph, configurare l'esempio seguendo questa procedura:

  1. In Android Studio aprire il progetto clonato.

  2. Aprire file /app/src/main/res/raw/auth_config_ciam.json.

  3. Trova 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_uri nel file di configurazione di Microsoft Authentication Library (MSAL) scaricato in precedenza quando è stato aggiunto l'URL di reindirizzamento della piattaforma.
    • Enter_the_Tenant_Subdomain_Here e sostituirlo con il sottodominio Directory (tenant). Ad esempio, se il dominio primario del tenant è contoso.onmicrosoft.com, usare contoso. Se non conosci il sottodominio del tenant, scopri come leggere i dettagli del tenant.
  4. Apri il file /app/src/main/AndroidManifest.xml.

  5. Trova il segnaposto.

    • ENTER_YOUR_SIGNATURE_HASH_HERE e sostituiscilo con l'hash della firma che hai generato in precedenza quando hai aggiunto l'URL di reindirizzamento della piattaforma.
  6. Aprire il file /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt.

  7. Trova la proprietà denominata scopes e imposta gli ambiti registrati in concedi il consenso dell'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'app di esempio

Per compilare ed eseguire l'app, seguire questa procedura:

  1. Nella barra degli strumenti selezionare l'app dal menu Delle configurazioni di esecuzione.

  2. Nel menu del dispositivo di destinazione selezionare il dispositivo in cui si vuole eseguire l'app.

    Se non sono configurati dispositivi, è necessario creare un dispositivo virtuale Android per usare l'emulatore Android o connettere un dispositivo Android fisico.

  3. Selezionare il pulsante Esegui.

  4. Selezionare Acquisire token in modo interattivo per richiedere un token di accesso.

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

Passaggi successivi