Condividi tramite


Accedere agli utenti e chiamare un'API in un'app Android di esempio usando l'autenticazione nativa

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)

Questa guida introduttiva illustra come configurare un'applicazione per dispositivi mobili Android di esempio per chiamare un'API Web di ASP.NET Core.

Prerequisiti

Registrare un'applicazione API Web

  1. Accedi all'interfaccia di amministrazione di Microsoft Entra con almeno il ruolo di 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 e sottoscrizioni.

  3. Vai a Identità>Applicazioni>Registrazioni delle app.

  4. Selezionare + Nuova registrazione.

  5. Nella pagina Registrare un'applicazione visualizzata immettere le informazioni di registrazione dell'applicazione:

    1. Nella sezione Nome immettere un nome di applicazione significativo che verrà visualizzato agli utenti dell'app, ad esempio ciam-ToDoList-api.

    2. In Tipi di account supportatiselezionare account in questa directory organizzativa solo.

  6. Selezionare Registra per creare l'applicazione.

  7. Il riquadro Panoramica dell'applicazione viene visualizzato al termine della registrazione. Registrare l'ID Directory (tenant) e l'ID applicazione (client) da usare nel codice sorgente dell'applicazione.

Configurare gli ambiti API

Un'API deve pubblicare almeno un ambito, detto anche autorizzazione delegata, affinché le app client ottengano correttamente un token di accesso per un utente. Per pubblicare un ambito, seguire questa procedura:

  1. Nella pagina Registrazioni app selezionare l'applicazione API creata (ciam-ToDoList-api) per aprire la relativa pagina Panoramica.

  2. In Gestisci, selezionare Esporre un'API.

  3. Nella parte superiore della pagina, accanto a URI ID applicazione, selezionare il collegamento Aggiungi per generare un URI univoco per questa app.

  4. Accettare l'URI dell'ID applicazione proposto, ad esempio api://{clientId}e selezionare Salva. Quando l'applicazione Web richiede un token di accesso per l'API Web, aggiunge l'URI come prefisso per ogni ambito definito per l'API.

  5. In Ambiti definiti da questa API, seleziona Aggiungi un ambito.

  6. Immettere i valori seguenti che definiscono un accesso in lettura all'API, quindi selezionare Aggiungi ambito per salvare le modifiche:

    Proprietà Valore
    Nome dell'ambito ToDoList.Read
    Chi può fornire il consenso Admins solo
    Nome visualizzato per il consenso dell'amministratore Leggi la lista delle cose da fare degli utenti usando il 'TodoListApi'
    Descrizione del consenso dell'amministratore Consentire all'app di leggere l'elenco ToDo dell'utente utilizzando l'API TodoListApi.
    Stato abilitato
  7. Selezionare di nuovo Aggiungi un ambito e immettere i valori seguenti che definiscono un ambito di accesso in lettura e scrittura all'API. Seleziona Aggiungi ambito per salvare le modifiche.

    Proprietà Valore
    Nome scopo ToDoList.ReadWrite
    Chi può fornire il consenso Solo amministratori
    Nome visualizzato del consenso dell'amministratore Leggere e scrivere le liste ToDo degli utenti usando l'API 'ToDoListApi'
    Descrizione del consenso dell'amministratore Usando 'ToDoListApi', consentire all'app di leggere e scrivere l'elenco delle cose da fare dell'utente
    Stato abilitato
  8. In Gestione, selezionare Manifest per aprire l'editor del manifest dell'API.

  9. Impostare la proprietà accessTokenAcceptedVersion su 2.

  10. Selezionare Salva.

Altre informazioni su principio dei privilegi minimi durante la pubblicazione di autorizzazioni per un'API Web.

Configurare i ruoli dell'app

Un'API deve pubblicare almeno un ruolo applicativo per le applicazioni, anche chiamata autorizzazione dell'applicazione , affinché le app client possano ottenere un token di accesso autonomo. Le autorizzazioni dell'applicazione sono il tipo di autorizzazioni che le API devono pubblicare quando vogliono consentire alle applicazioni clienti di eseguire correttamente l'autenticazione come se stesse autenticando e senza la necessità di richiedere l'accesso da parte degli utenti. Per pubblicare un'autorizzazione dell'applicazione, seguire questa procedura:

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

  2. In Gestisci, seleziona Ruoli dell'app.

  3. Selezionare Crea ruolo app, quindi immettere i valori seguenti e quindi selezionare Applica per salvare le modifiche:

    Proprietà Valore
    Nome visualizzato ToDoList.Read.All
    Tipi di membri consentiti Applicazioni
    Valore ListaAttività.Leggi.Tutto
    Descrizione Consentire all'app di leggere l'elenco ToDo di ogni utente usando il "TodoListApi"
  4. Selezionare di nuovo Crea ruolo app, quindi immettere i valori seguenti per il secondo ruolo dell'app, quindi selezionare Applica per salvare le modifiche:

    Proprietà Valore
    Nome visualizzato ToDoList.ReadWrite.All
    Tipi di membri consentiti Applicazioni
    Valore ToDoList.ReadWrite.All
    Descrizione Consentire all'app di leggere e scrivere le liste ToDo di tutti gli utenti utilizzando l'API "ToDoListApi"

Configurare dichiarazioni facoltative

È possibile aggiungere l'attestazione facoltativa idtyp per aiutare l'API web a determinare se un token è un token dell'app o un token dell'app e utente. Sebbene sia possibile usare una combinazione di scp e ruoli claims per lo stesso scopo, l'uso dell'attestazione idtyp è il modo più semplice per distinguere un token dell'app da un token che combina app e utente. Ad esempio, il valore di questa attestazione è app quando il token è un token solo per app.

Concedere autorizzazioni API all'app di esempio Android

Dopo aver registrato sia l'app client che l'API Web e aver esposto l'API creando ambiti, è possibile configurare le autorizzazioni del client per l'API seguendo questa procedura:

  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 una autorizzazione.

  4. Selezionare la scheda API utilizzate dalla mia organizzazione.

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

  6. Selezionare opzione Autorizzazioni delegate.

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

  8. Seleziona il pulsante Aggiungi autorizzazioni.

  9. A questo punto, le autorizzazioni sono state assegnate correttamente. Tuttavia, poiché il tenant è un tenant di un cliente, gli utenti consumer stessi non possono fornire il consenso a 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 <nome del tenant>e quindi selezionare .

    2. Selezionare Aggiorna, quindi verificare che Concesso per <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 o scaricare l'API Web 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-dotnet-tutorial.git
    
  • Scarica il file .zip. Estrarlo in un percorso di file in cui la lunghezza del nome è inferiore a 260 caratteri.

Configurare ed eseguire un'API Web di esempio

  1. Nell'editor di codice aprire 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json file.

  2. Trova il segnaposto:

    • Enter_the_Application_Id_Here e sostituirlo con l'ID applicazione (client) dell'API Web copiata in precedenza.
    • Enter_the_Tenant_Id_Here e poi sostituirlo con l'ID Directory (tenant) che hai copiato in precedenza.
    • 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 hai il nome del tenant, scopri come leggere i dettagli del tenant.

È necessario ospitare la tua API Web affinché l'app di esempio Android possa chiamarla. Segui Avvio rapido: Distribuzione di un'applicazione web ASP.NET per distribuire la tua API web.

Configurare un'app android per dispositivi mobili di esempio per chiamare l'API Web

L'esempio consente di configurare più endpoint e set di ambiti dell'URL dell'API Web. In questo caso, si configura un solo URL dell'endpoint dell'API Web e i relativi ambiti.

  1. In Android Studio aprire /app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/AccessApiFragment.kt file.

  2. Trovare la proprietà denominata WEB_API_URL_1 e impostare l'URL sull'API Web.

    private const val WEB_API_URL_1 = "" // Developers should set the respective URL of their web API here
    
  3. Trovare la proprietà denominata scopesForAPI1 e impostare gli ambiti registrati in Concedere autorizzazioni API all'app di esempio Android.

    private val scopesForAPI1 = listOf<String>() // Developers should set the respective scopes of their web API here. For example, private val scopes = listOf<String>("api://{clientId}/{ToDoList.Read}", "api://{clientId}/{ToDoList.ReadWrite}")
    

Eseguire un'app di esempio Android 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 fisico.

  3. Selezionare il pulsante Esegui . L'app viene aperta nella schermata di posta elettronica e passcode monouso.

  4. Selezionare la scheda API per testare la chiamata API. Una chiamata riuscita all'API Web restituisce http 200, mentre HTTP 403 indica l'accesso non autorizzato.

Passaggi successivi