Condividi tramite


Guida introduttiva: Effettuare l'accesso degli utenti e chiamare un'API web in un'app di esempio per dispositivi mobili

Si applica a: cerchio bianco con un simbolo X grigio. tenant della forza lavoro cerchio verde con un simbolo di segno di spunta bianco. tenant esterni (altre)

All'inizio, usa il selettore Scegli 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.

Questa guida illustra come configurare un'applicazione per dispositivi mobili di esempio per l'accesso degli utenti e chiamare un'API Web ASP.NET Core.

In questo articolo vengono eseguite le attività seguenti:

  • Aggiungere un URL di reindirizzamento della piattaforma a un'applicazione Web.
  • Abilitare i flussi client pubblici.
  • Aggiorna il file di esempio del codice di configurazione Android per utilizzare il tuo Microsoft Entra External ID per i dettagli del tenant del cliente.
  • Eseguire e testare l'applicazione per dispositivi mobili Android di esempio.
  • Chiamare un'API Web protetta.

Prerequisiti

  • Studio Android.

  • Un tenant esterno. Se non ne hai già uno, registrati per una prova gratuita.

  • Registrare una nuova applicazione Web client nel centro di amministrazione di Microsoft Entra, configurata per gli account in qualsiasi directory organizzativa e per gli account Microsoft personali. 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)
  • Registrazione api Web che espone almeno un ambito (autorizzazioni delegate) e un ruolo dell'app (autorizzazione dell'applicazione), ad esempio ToDoList.Read. Se non l'hai già fatto, segui le istruzioni per chiamare un'API in un'app Android di esempio per dispositivi mobili per avere un'API Web ASP.NET Core protetta e funzionale. Assicurarsi di completare i passaggi seguenti:

    • Configurare gli ambiti API
    • Configurare i ruoli dell'app
    • Configurare attestazioni facoltative
    • Clonare o scaricare l'API Web di esempio
    • Configurare ed eseguire un'API Web di esempio

Aggiungere un URL di reindirizzamento della piattaforma

Per specificare il tipo di app per la registrazione dell'app, seguire questa procedura:

  1. In Gestire, seleziona Autenticazione.
  2. Nella pagina configurazioni della piattaforma selezionare Aggiungi una piattaformae quindi selezionare '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 hash della firma del riquadro Configura la tua app Android, selezionare Generazione di un hash della firma di sviluppo. Ciò cambierà per ogni ambiente di sviluppo. Copia ed esegui il comando KeyTool per il sistema operativo nel Terminale.
  5. Immettere il hash della firma generato da KeyTool.
  6. Selezionare Configura.
  7. Copiare il configurazione MSAL dal riquadro configurazione di Android e salvarlo per una configurazione successiva dell'app.
  8. Selezionare Fine.

Abilitare il flusso client pubblico

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

  1. In Gestire, seleziona Autenticazione.

  2. In Impostazioni avanzate, nella sezione Consenti flussi client pubblici, selezionare .

  3. Selezionare Salva per salvare le modifiche.

Concedere autorizzazioni api Web all'app di esempio

Dopo aver registrato la tua app client e l'API Web, ed esposto l'API creando ambiti specifici, è possibile configurare le autorizzazioni del client per l'API seguendo questi passaggi:

  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 .

  3. In Autorizzazioni configurate, selezionare Aggiungi un'autorizzazione.

  4. Seleziona la scheda le API che la mia organizzazione utilizza.

  5. Nell'elenco delle API selezionare l'API, ad esempio ciam-ToDoList-api.

  6. Selezionare l'opzione Autorizzazioni delegate.

  7. Nell'elenco delle autorizzazioni selezionare ToDoList.Read, ToDoList.ReadWrite (usare la casella di ricerca, se necessario).

  8. Selezionare il pulsante Aggiungi permessi.

  9. A questo punto, le autorizzazioni sono state assegnate correttamente. Tuttavia, poiché il tenant appartiene a un cliente, gli utenti consumatori stessi non possono fornire il consenso per queste autorizzazioni. Per risolvere questo problema, l'amministratore deve fornire il consenso a queste autorizzazioni per conto di tutti gli utenti nel tenant:

    1. Selezionare Concedi consenso amministratore per <il nome del tenant>e quindi selezionare .

    2. Selezionare Aggiorna, quindi verificare che < il nome del tenant>appaia sotto Stato per entrambe le autorizzazioni.

  10. Nell'elenco Autorizzazioni configurate selezionare l'ToDoList.Read e ToDoList.ReadWrite autorizzazioni, una alla volta e quindi copiare l'URI completo dell'autorizzazione per un uso successivo. L'URI completo delle autorizzazioni è simile a api://{clientId}/{ToDoList.Read} o api://{clientId}/{ToDoList.ReadWrite}.

Clonare un'applicazione per dispositivi mobili 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 per dispositivi mobili Android di esempio

Per abilitare l'autenticazione e l'accesso alle risorse dell'API Web, configurare l'esempio seguendo questa procedura:

  1. In Android Studio aprire il progetto clonato.

  2. Aprire il 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 tuo locatario, scopri come leggere i dettagli del locatario.
  4. Apri il file /app/src/main/AndroidManifest.xml.

  5. Trova il segnaposto:

    • Sostituisci ENTER_YOUR_SIGNATURE_HASH_HERE con l'hash della firma che hai generato prima quando hai aggiunto l'URL di reindirizzamento della piattaforma.
  6. Apri il file /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt.

  7. Trovare la proprietà denominata WEB_API_BASE_URL e impostare l'URL sull'API Web.

  8. Trova la proprietà denominata scopes e imposta gli ambiti registrati in , quindi concedi le autorizzazioni API Web all'app di esempio Android.

    private const val scopes = "" // Developers should set the respective scopes of their web API 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 un'app di esempio e chiamare l'API Web

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. Selezionare API : eseguire GET per chiamare l'API Web di base ASP.NET configurata in precedenza. Una chiamata riuscita all'API Web restituisce HTTP 200, mentre HTTP 403 indica l'accesso non autorizzato.