Condividi tramite


Eseguire l'accesso degli utenti e chiamare un'API nell'app per dispositivi mobili iOS di esempio usando l'autenticazione nativa

Questo esempio illustra come configurare un'applicazione iOS di esempio per chiamare un'API Web ASP.NET Core.

Prerequisiti

Registrare un'applicazione API Web

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra almeno come 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. Passare a Identità>Applicazioni>Registrazioni app.

  4. Seleziona + Nuova registrazione.

  5. Nella pagina Registra un'applicazione visualizzata immettere le informazioni sulla 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 supportati selezionare Account solo in questa directory organizzativa.

  6. Selezionare Registra per creare l'applicazione.

  7. Il riquadro di 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 dell'API

Un'API deve pubblicare almeno un ambito, detto anche Autorizzazione delegata, affinché le app client possano ottenere 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 di Panoramica.

  2. In Gestisci selezionare Esponi 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 selezionare 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 ambito ToDoList.Read
    Utenti che possono fornire il consenso Solo amministratori
    Nome visualizzato consenso dell'amministratore Lettura dell'elenco di attività degli utenti tramite 'TodoListApi'
    Descrizione consenso dell'amministratore Consente all'app di leggere l'elenco di attività dell'utente tramite 'TodoListApi'.
    Provincia Abilitato
  7. Selezionare di nuovo Aggiungi ambito e immettere i valori seguenti che definiscono un ambito di accesso in lettura e scrittura all'API. Selezionare Aggiungi ambito per salvare le modifiche:

    Proprietà valore
    Nome ambito ToDoList.ReadWrite
    Utenti che possono fornire il consenso Solo amministratori
    Nome visualizzato consenso dell'amministratore Lettura e scrittura nell'elenco di attività degli utenti tramite 'ToDoListApi'
    Descrizione consenso dell'amministratore Consente all'app di leggere e scrivere nell'elenco di attività dell'utente tramite 'ToDoListApi'.
    Provincia Abilitato
  8. In Gestisci selezionare Manifesto per aprire l'editor del manifesto dell'API.

  9. Impostare la proprietà accessTokenAcceptedVersion su 2.

  10. Seleziona Salva.

Altre informazioni sul 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 dell'app per le applicazioni, detto anche Autorizzazione dell'applicazione, affinché le app client possano ottenere autonomamente un token di accesso. Le autorizzazioni dell'applicazione sono il tipo di autorizzazioni che le API devono pubblicare quando vogliono consentire alle applicazioni client di eseguire correttamente l'autenticazione in modo autonomo, senza richiedere l'accesso degli utenti. Per pubblicare un'autorizzazione dell'applicazione, seguire questa procedura:

  1. Nella pagina Registrazioni app selezionare l'applicazione creata, ad esempio ciam-ToDoList-api, per aprire la relativa pagina di Panoramica.

  2. In Gestisci selezionare Ruoli dell'app.

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

    Proprietà valore
    Nome visualizzato ToDoList.Read.All
    Tipi di membro consentiti Applicazioni
    Valore ToDoList.Read.All
    Descrizione Consente all'app di leggere l'elenco di attività di ogni utente tramite 'TodoListApi'
  4. Selezionare di nuovo Crea un ruolo app, 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 membro consentiti Applicazioni
    Valore ToDoList.ReadWrite.All
    Descrizione Consente all'app di leggere e scrivere nell'elenco di attività di ogni utente tramite 'ToDoListApi'

Configurare le attestazioni facoltative

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

Concedere le autorizzazioni dell'API all'app iOS di esempio

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

  1. Nella pagina Registrazioni app selezionare l'applicazione creata, ad esempio ciam-client-app, per aprire la relativa pagina di Panoramica.

  2. In Gestisci selezionare Autorizzazioni API.

  3. In Autorizzazioni configurate selezionare Aggiungi un'autorizzazione.

  4. Selezionare la scheda API usate dall'organizzazione.

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

  9. A questo punto, le autorizzazioni sono state assegnate correttamente. Poiché il tenant è un tenant del cliente, gli utenti consumer stessi non possono tuttavia 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>, quindi selezionare .

    2. Selezionare Aggiorna, quindi verificare che Concesso per <nome del tenant> venga visualizzato in Stato per entrambe le autorizzazioni.

  10. Nell'elenco Autorizzazioni configurate selezionare e autorizzazioni ToDoList.Read e ToDoList.ReadWrite, una alla volta, 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 un'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
    
  • Scaricare 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 il file 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json.

  2. Trovare 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 sostituirlo con l'ID directory (tenant) copiato in precedenza.
    • Enter_the_Tenant_Subdomain_Here e sostituirlo con il sottodominio della directory (tenant). Ad esempio, se il dominio primario del tenant è contoso.onmicrosoft.com, usare contoso. Se non si ha il nome del tenant, vedere come leggere i dettagli del tenant.

È necessario ospitare l'API Web per l'app iOS di esempio per chiamarla. Seguire le indicazioni in Avvio rapido: Distribuire un'app Web ASP.NET per distribuire l'API Web.

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

  1. In Xcode aprire il file /NativeAuthSampleApp/ProtectedAPIViewController.swift.

  2. Trovare Enter_the_Protected_API_Full_URL_Here e sostituire questo valore con l'URL dell'API Web.

    let protectedAPIUrl = "Enter_the_Protected_API_Full_URL_Here" // Developers should set the respective URL of their web API here
    
  3. Trovare Enter_the_Protected_API_Scopes_Here e impostare gli ambiti registrati in Concedere le autorizzazioni dell'API all'app iOS di esempio.

    let protectedAPIScopes = ["Enter_the_Protected_API_Scopes_Here"] // Developers should set the respective scopes of their web API here.For example, let protectedAPIScopes = ["api://{clientId}/{ToDoList.Read}","api://{clientId}/{ToDoList.ReadWrite}"]
    

Eseguire l'app iOS di esempio e chiamare l'API Web

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

  1. Per compilare ed eseguire il codice, selezionare Run dal menu Product in Xcode. Dopo una compilazione riuscita, Xcode avvierà l'app di esempio nel simulatore.
  2. 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