Condividi tramite


Configurare l'autenticazione in un'app Android di esempio usando Azure AD B2C

Importante

A partire dal 1° maggio 2025, Azure AD B2C non sarà più disponibile per l'acquisto per i nuovi clienti. Altre informazioni sono disponibili nelle domande frequenti.

Questo articolo usa un'applicazione Android di esempio (Kotlin e Java) per illustrare come aggiungere l'autenticazione di Azure Active Directory B2C (Azure AD B2C) alle app per dispositivi mobili.

Informazioni generali

OpenID Connect (OIDC) è un protocollo di autenticazione basato su OAuth 2.0. È possibile usare OIDC per consentire agli utenti di accedere in modo sicuro a un'applicazione. Questo esempio di app per dispositivi mobili usa il flusso PKCE (Microsoft Authentication Library) con il codice di autorizzazione OIDC. MSAL è una libreria fornita da Microsoft che semplifica l'aggiunta del supporto di autenticazione e autorizzazione alle app per dispositivi mobili.

Il flusso di accesso prevede i passaggi seguenti:

  1. Gli utenti aprono l'app e selezionano Accedi.
  2. L'app apre il browser di sistema del dispositivo mobile e avvia una richiesta di autenticazione ad Azure AD B2C.
  3. Gli utenti si registrano o accedono, reimpostano la password o accedono con un account di social networking.
  4. Dopo l'accesso degli utenti, Azure AD B2C restituisce un codice di autorizzazione all'app.
  5. L'app esegue le azioni seguenti:
    1. Scambia il codice di autorizzazione con un token ID, un token di accesso e un token di aggiornamento.
    2. Legge le attestazioni del token ID.
    3. Archivia i token in una cache in memoria per usarli in un secondo momento.

Panoramica della registrazione dell'app

Per consentire all'app di accedere con Azure AD B2C e chiamare un'API Web, registrare due applicazioni nella directory di Azure AD B2C.

  • La registrazione dell'applicazione per dispositivi mobili consente all'app di accedere con Azure AD B2C. Durante la registrazione dell'app specificare l'URI di reindirizzamento. L'URI di reindirizzamento è l'endpoint a cui gli utenti vengono reindirizzati da Azure AD B2C dopo l'autenticazione con Azure AD B2C. Il processo di registrazione dell'app genera un ID applicazione, noto anche come ID client, che identifica in modo univoco l'app per dispositivi mobili (ad esempio, ID app: 1).

  • La registrazione dell'API Web consente all'app di chiamare un'API Web protetta. La registrazione espone le autorizzazioni dell'API Web (ambiti). Il processo di registrazione dell'app genera un ID applicazione, che identifica in modo univoco l'API Web (ad esempio, ID app: 2). Concedere all'app per dispositivi mobili (ID app: 1) le autorizzazioni per gli ambiti dell'API Web (ID app: 2).

La registrazione delle app e l'architettura dell'applicazione sono illustrate nei diagrammi seguenti:

Diagramma dell'app per dispositivi mobili con registrazioni e token di chiamata api Web.

Chiamare a un'API Web

Al termine dell'autenticazione, gli utenti interagiscono con l'app, che richiama un'API Web protetta. L'API Web usa l'autenticazione del token di connessione. Il token di connessione è il token di accesso ottenuto dall'app da Azure AD B2C. L'app passa il token nell'intestazione di autorizzazione della richiesta HTTPS.

Authorization: Bearer <access token>

Se l'ambito del token di accesso non corrisponde agli ambiti dell'API Web, la libreria di autenticazione ottiene un nuovo token di accesso con gli ambiti corretti.

Flusso di uscita

Il flusso di disconnesso prevede i passaggi seguenti:

  1. Dall'app gli utenti si disconnetteno.
  2. L'app cancella gli oggetti sessione e la libreria di autenticazione cancella la cache dei token.
  3. L'app porta gli utenti all'endpoint di disconnesso di Azure AD B2C per terminare la sessione di Azure AD B2C.
  4. Gli utenti vengono reindirizzati all'app.

Prerequisiti

Un computer che esegue:

Passaggio 1: Configurare il flusso utente

Quando gli utenti tentano di accedere all'app, l'app avvia una richiesta di autenticazione all'endpoint di autorizzazione tramite un flusso utente. Il flusso utente definisce e controlla l'esperienza utente. Dopo aver completato il flusso utente, Azure AD B2C genera un token e quindi reindirizza gli utenti all'applicazione.

Se non è già stato fatto, creare un flusso utente o un criterio personalizzato. Ripetere i passaggi per creare tre flussi utente separati come indicato di seguito:

  • Flusso utente di accesso e iscrizione combinato, ad esempio susi. Questo flusso utente supporta anche l'esperienza password dimenticata.
  • Flusso utente di modifica del profilo, ad esempio edit_profile.
  • Flusso utente di reimpostazione della password, ad esempio reset_password.

Azure AD B2C antepone B2C_1_ il nome del flusso utente. Ad esempio, susi diventa B2C_1_susi.

Passaggio 2: Registrare le applicazioni per dispositivi mobili

Creare l'app per dispositivi mobili e la registrazione dell'applicazione API Web e specificare gli ambiti dell'API Web.

Passaggio 2.1: Registrare l'app per le API Web

Per creare la registrazione dell'app per le API Web (ID app: 2), seguire questa procedura:

  1. Accedi al portale di Azure.

  2. Assicurarsi di usare la directory che contiene il tenant di Azure AD B2C. Selezionare l'icona Directory e sottoscrizioni nella barra degli strumenti del portale.

  3. Nelle impostazioni del portale | Directory + sottoscrizioni, trova la directory di Azure AD B2C nell'elenco Nome directory e seleziona Cambia.

  4. Nel portale di Azure cercare e selezionare Azure AD B2C.

  5. Selezionare l'opzione Registrazioni appe quindi selezionare Nuova registrazione.

  6. In Nome immettere un nome per l'applicazione, ad esempio my-api1. Lasciare i valori predefiniti per URI di reindirizzamento e Tipi di account supportati.

  7. Selezionare Registrazione.

  8. Al termine della registrazione dell'app, selezionare Panoramica.

  9. Registrare il valore ID applicazione (client) per usarlo in un secondo momento quando si configura l'applicazione Web.

    Screenshot che illustra come ottenere un'applicazione I P Web I.

Passaggio 2.2: Configurare gli ambiti dell'app per le API Web

  1. Selezionare l'applicazione my-api1 creata (ID app: 2) per aprire la relativa pagina Panoramica.

  2. In Gestisci selezionare Esporre un'API.

  3. Accanto a URI ID applicazione selezionare il collegamento Imposta. Sostituire il valore predefinito (GUID) con un nome univoco (ad esempio, tasks-api) e quindi selezionare Salva.

    Quando l'applicazione Web richiede un token di accesso per l'API Web, deve aggiungere questo URI come prefisso per ogni ambito definito per l'API.

  4. In Ambiti definiti da questa API selezionare Aggiungi un ambito.

  5. Per creare un ambito che definisce l'accesso in lettura all'API:

    1. In Nome ambito immettere tasks.read.
    2. Per Nome visualizzato del consenso amministratore immettere Accesso in lettura all'API attività.
    3. Per Descrizione del consenso amministratore immettere Consente l'accesso in lettura all'API delle attività.
  6. Seleziona Aggiungi ambito.

  7. Selezionare Aggiungi un ambito e quindi aggiungere un ambito che definisce l'accesso in scrittura all'API:

    1. In Nome ambito immettere tasks.write.
    2. Per Nome visualizzato del consenso amministratore immettere Accesso in scrittura all'API attività.
    3. Per descrizione del consenso amministratore immettere Consente l'accesso in scrittura all'API delle attività.
  8. Seleziona Aggiungi ambito.

Passaggio 2.3: Registrare l'app per dispositivi mobili

Per creare la registrazione dell'app per dispositivi mobili, eseguire le operazioni seguenti:

  1. Accedi al portale di Azure.

  2. Selezionare l'opzione Registrazioni appe quindi selezionare Nuova registrazione.

  3. In Nome immettere un nome per l'applicazione, ad esempio android-app1.

  4. In Tipi di account supportati, selezionare Account in qualsiasi provider di identità o directory organizzativa (per autenticare gli utenti con flussi utente).

  5. In URI di reindirizzamento selezionare Client pubblico/nativo (mobile e desktop) e quindi immettere uno degli URI seguenti nella casella URL:

    • Per l'esempio Kotlin: msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
    • Per l'esempio Java: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
  6. Selezionare Registrazione.

  7. Al termine della registrazione dell'app, selezionare Panoramica.

  8. Registrare l'ID applicazione (client) per usarlo in un secondo momento, quando si configura l'applicazione per dispositivi mobili.

    Screenshot che evidenzia l'ID applicazione Android

Passaggio 2.4: Concedere all'app per dispositivi mobili le autorizzazioni per l'API Web

Per concedere all'app (ID app: 1) le autorizzazioni, seguire questa procedura:

  1. Selezionare Registrazioni app e quindi selezionare l'app creata (ID app: 1).

  2. In Gestisci selezionare Autorizzazioni API.

  3. In Autorizzazioni configurate selezionare Aggiungi un'autorizzazione.

  4. Selezionare la scheda Le mie API.

  5. Selezionare l'API (ID app: 2) a cui concedere l'accesso all'applicazione Web. Ad esempio, immettere my-api1.

  6. In Autorizzazione espandere le attività e quindi selezionare gli ambiti definiti in precedenza, ad esempio tasks.read e tasks.write.

  7. Selezionare Aggiungi autorizzazioni.

  8. Selezionare Concedi consenso amministratore per <il nome> del tenant.

  9. Selezionare .

  10. Selezionare Aggiorna e quindi verificare che Concesso per ... sia visualizzato in Stato per entrambi gli ambiti.

  11. Nell'elenco Autorizzazioni configurate selezionare l'ambito e quindi copiare il nome completo dell'ambito.

    Screenshot del riquadro autorizzazioni configurato, che mostra che vengono concesse le autorizzazioni di accesso in lettura.

Passaggio 3: Ottenere l'esempio di app per dispositivi mobili Android

Effettuare una delle operazioni riportate di seguito:

  • Scaricare uno di questi esempi:

    Estrarre il file di esempio .zip nella cartella di lavoro.

  • Clonare l'applicazione per dispositivi mobili Android di esempio da GitHub.

    git clone https://github.com/Azure-Samples/ms-identity-android-kotlin
    

Passaggio 4: Configurare l'API Web di esempio

Questo esempio acquisisce un token di accesso con gli ambiti pertinenti che l'app per dispositivi mobili può usare per un'API Web. Per chiamare un'API Web dal codice, eseguire le operazioni seguenti:

  1. Usare un'API Web esistente o crearne una nuova. Per altre informazioni, vedere Abilitare l'autenticazione nell'API Web usando Azure AD B2C.
  2. Modificare il codice di esempio per chiamare un'API Web.

Passaggio 5: Configurare l'app per dispositivi mobili di esempio

Aprire il progetto di esempio con Android Studio o un altro editor di codice e quindi aprire il file /app/src/main/res/raw/auth_config_b2c.json .

Il file di configurazioneauth_config_b2c.jsoncontiene informazioni sul provider di identità di Azure AD B2C. L'app per dispositivi mobili usa queste informazioni per stabilire una relazione di trust con Azure AD B2C, consentire l'accesso e l'uscita degli utenti, acquisire i token e convalidarli.

Aggiorna le seguenti proprietà delle impostazioni dell'app:

Chiave Valore
client_id L'ID dell'applicazione per dispositivi mobili del passaggio 2.3.
redirect_uri URI di reindirizzamento dell'applicazione per dispositivi mobili del passaggio 2.3.
autorità L'autorità è un URL che indica una directory da cui MSAL può richiedere token. Usare il formato seguente: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy> Sostituire <your-tenant-name> con il nome del tenant di Azure AD B2C. <your-sign-in-sign-up-policy> Sostituire quindi con i flussi utente o i criteri personalizzati creati nel passaggio 1.

Aprire la B2CConfiguration classe e aggiornare i membri della classe seguenti:

Chiave Valore
Politiche Elenco dei flussi utente o dei criteri personalizzati creati nel passaggio 1.
azureAdB2CHostName La prima parte del nome del tenant di Azure AD B2C, ad esempio https://contoso.b2clogin.com.
nome del locatario Nome completo del tenant di Azure AD B2C .
Ambiti Ambiti dell'API Web creati nel passaggio 2.4.

Passaggio 6: Eseguire e testare l'app per dispositivi mobili

  1. Compilare ed eseguire il progetto.

  2. In alto a sinistra selezionare l'icona hamburger (chiamata anche icona del menu compresso), come illustrato di seguito:

    Screenshot che evidenzia l'hamburger o il menu compresso, icona.

  3. Nel riquadro sinistro selezionare Modalità B2C.

    Screenshot che evidenzia il comando

  4. Selezionare Esegui flusso utente.

    Screenshot che evidenzia il pulsante

  5. Iscriversi o accedere con l'account locale o social di Azure AD B2C.

  6. Dopo aver completato l'autenticazione, verrà visualizzato il nome visualizzato nel riquadro modalità B2C .

    Screenshot che mostra un'autenticazione riuscita, con l'utente connesso e i criteri visualizzati.

Passaggi successivi

Scopri come: