Condividi tramite


Concedere l’accesso utente e chiamare un'API Web protetta nell'app iOS (Swift) di esempio

Questa guida mostra come configurare un'applicazione per dispositivi mobili iOS di esempio per l'accesso utente e chiamare un'API Web ASP.NET Core.

In questo articolo si apprenderà come eseguire le attività seguenti:

  • Registrare l'applicazione nell'Interfaccia di amministrazione di Microsoft Entra.
  • Aggiungere un URL di reindirizzamento della piattaforma.
  • Abilitare i flussi client pubblico.
  • Aggiornare il file di configurazione del codice di esempio di iOS in modo da usare la propria istanza di Microsoft Entra per ID esterno per i dettagli del tenant esterno.
  • Eseguire e testare un'applicazione per dispositivi mobili iOS di esempio.

Prerequisiti

  • Xcode.

  • Un tenant esterno. Se non si dispone già di una versione, iscriversi per ottenere una versione di valutazione gratuita.

  • Registrazione API che espone almeno un ambito (autorizzazioni delegate) e un ruolo app (autorizzazione dell'applicazione), ad esempio ToDoList.Read. Se questa operazione non è ancora stata eseguita, seguire le istruzioni per chiamare un'API in un'app per dispositivi mobili iOS di esempio per avere un'API Web protetta da funzionalità ASP.NET Core. Assicurarsi di completare i passaggi seguenti:

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

Registrare un'applicazione

Per abilitare l'applicazione all'accesso utente con Microsoft Entra, è necessario che Microsoft Entra per ID esterno riconosca l'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.

La procedura seguente spiega come registrare l'app nell'Interfaccia di amministrazione di Microsoft Entra:

  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 che viene visualizzata:

    1. Immettere un nome significativo per l’applicazione da mostrare agli utenti dell'app, ad esempio ciam-client-app.
    2. In Tipi di account supportati selezionare Account solo in questa directory organizzativa.
  6. Selezionare Registra.

  7. Al termine della registrazione, viene visualizzato il riquadro Panoramica dell'applicazione. 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, seguire questa procedura:

  1. In Gestisci selezionare Autenticazione.
  2. Nella pagina Configurazioni della piattaforma, selezionare Aggiungi una piattaforma, quindi selezionare l'opzione iOS/macOS.
  3. Immettere l'ID del bundle del progetto. Se è stato scaricato il codice di esempio, il valore sarà com.microsoft.identitysample.ciam.MSALiOS.
  4. Selezionare Configura e salvare la Configurazione MSAL visualizzata nel riquadro Configurazione di iOS/macOS per poterla inserire successivamente durante la configurazione dell'app.
  5. Selezionare Fatto.

Abilitare il flusso client pubblico

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

  1. In Gestisci selezionare Autenticazione.

  2. In Impostazioni avanzate, selezionare per Consenti flussi client pubblico.

  3. Seleziona Salva per salvare le modifiche.

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

  2. In Gestisci selezionare Autorizzazioni API. Nell'elenco Autorizzazioni configurate all'applicazione è stata assegnata l'autorizzazione User.Read. Tuttavia, poiché il tenant è esterno, gli utenti consumer non possono fornire il consenso a questa autorizzazione. L'amministratore deve fornire il consenso a questa autorizzazione 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> sia visualizzato in Stato per entrambi gli ambiti.

Concedere le autorizzazioni dell'API Web 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 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. 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>, quindi selezionare .

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

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

Clonare un'applicazione per dispositivi mobili iOS 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, 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-ios-sample.git
    

Configurare l'applicazione per dispositivi mobili iOS di esempio

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

  1. In Xcode aprire il progetto clonato.

  2. Aprire il file /MSALiOS/Configuration.swift.

  3. Trovare 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 kRedirectUrinel file di configurazione di MSAL (Microsoft Authentication Library) scaricato in precedenza al momento dell’aggiunta dell'URL di reindirizzamento della piattaforma.
    • Enter_the_Protected_API_Full_URL_Here e sostituirlo con l'URL dell'API Web. Enter_the_Protected_API_Full_URL_Here deve includere l'URL di base (l'URL dell'API Web distribuita) e l'endpoint (/api/todolist) per l'API Web ASP.NET.
    • Enter_the_Protected_API_Scopes_Here e sostituirlo con gli ambiti registrati in Concedere le autorizzazioni API Web all'app iOS di esempio.
    • 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 il sottodominio del tenant non è disponibile, vedere come leggere i dettagli del tenant.

L'app è stata configurata ed è pronta per l'esecuzione.

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. Al termine della compilazione, Xcode avvierà l'app di esempio nel simulatore.
  2. Selezionare Acquisisci token in modo interattivo per richiedere un token di accesso.
  3. Selezionare API -Eseguire GET per chiamare l'API Web ASP.NET Core configurata in precedenza. Una chiamata riuscita all'API Web restituisce HTTP 200, mentre HTTP 403 indica un accesso non autorizzato.