Condividi tramite


Scenario: App nativa che chiama l'API Web

Informazioni su come creare un'app nativa per l'accesso degli utenti autenticati da AD FS 2019 e acquisire token utilizzando la libreria MSAL per chiamare le API web.

Prima di leggere questo articolo, è necessario avere familiarità con i concetti di ADFS e il flusso di concessione del codice di autorizzazione

Panoramica

Panoramica

In questo flusso si aggiunge l'autenticazione all’app nativa (client pubblico), che può quindi accedere agli utenti e chiamare un'API Web. Per chiamare un'API Web da un'app nativa che accede agli utenti, è possibile utilizzare il metodo di acquisizione token AcquireTokenInteractive di MSAL. Per abilitare questa interazione, MSAL sfrutta un Web browser.

Per comprendere meglio come configurare un'app nativa in AD FS per acquisire il token di accesso in modo interattivo, utilizziamo un esempio disponibile qui e analizziamo i passaggi di registrazione dell'app e di configurazione del codice.

Prerequisiti

  • Strumenti client di GitHub
  • AD FS 2019 o versioni successive configurati e in esecuzione
  • Visual Studio 2013 o versione successiva

Registrazione app in ADFS

Questa sezione mostra come registrare l'app nativa come client pubblico e l'API Web come relying party (RP) in AD FS

  1. In Gestione ADFS, fare clic con il pulsante destro del mouse su Gruppi di applicazioni e selezionare Aggiungi gruppo applicazioni.

  2. Nella Configurazione guidata Gruppo applicazioni, per Nome immettere NativeAppToWebApi e in Applicazioni client-server selezionare il modello Applicazione nativa che accede a un modello API Web. Fare clic su Avanti.

    Screenshot della pagina iniziale della Procedura guidata Aggiungi gruppo di applicazioni che mostra l'applicazione nativa che accede a un modello di API Web evidenziato.

  3. Copia il identificatore Client valore. Verrà utilizzato in seguito come valore per ClientId nel file App.config dell'applicazione. Immettere le informazioni seguenti per URI di reindirizzamento:https://ToDoListClient. Fare clic su Aggiungi. Fare clic su Avanti.

    Screenshot della pagina Applicazione nativa della Procedura guidata Aggiungi gruppo di applicazioni che mostra il reindirizzamento di U R I.

  4. Nella schermata Configura API Web, immettere l'identificatore:https://localhost:44321/. Fare clic su Aggiungi. Fare clic su Avanti. Questo valore verrà utilizzato in seguito nei file App.config e Web.config dell'applicazione.

    Screenshot della pagina Configura API Web della Procedura guidata Aggiungi gruppo di applicazioni che mostra l'identificatore corretto.

  5. Nella schermata Applica criteri di controllo degli accessi, selezionare Autorizza tutti e fare clic su Avanti.

    Screenshot della pagina Scegli criteri Controllo di accesso della Procedura guidata Aggiungi gruppo di applicazioni che mostra l'opzione Consenti tutti evidenziata.

  6. Nella schermata Configura autorizzazioni applicazione, assicurarsi che sia selezionato openid e fare clic su Avanti.

    Screenshot della pagina Configura autorizzazioni applicazione della Procedura guidata Aggiungi gruppo di applicazioni che mostra l'opzione I D aperta selezionata.

  7. Nella schermata Riepilogo fare clic su Avanti.

  8. Nella schermata Completa, fare clic su Chiudi.

  9. In Gestione AD FS, fare clic su Gruppi di applicazioni e selezionare il gruppo di applicazioni NativeAppToWebApi. Fare clic con il pulsante destro del mouse e selezionare Proprietà.

    Screenshot della finestra di dialogo Gestione di A D F S che mostra il gruppo NativeAppToWebApi evidenziato e l'opzione Proprietà nell'elenco a discesa.

  10. Nella schermata delle proprietà NativeAppToWebApi, selezionare NativeAppToWebApi – Web API in Web API e fare clic su Modifica...

    Screenshot della finestra di dialogo Proprietà NativeAppToWebApi che mostra l'applicazione NativeAppToWebApi - Web A I evidenziata.

  11. Nella schermata NativeAppToWebApi – Web API Properties, selezionare la scheda Regole trasformazione rilascio e fare clic su Aggiungi regola...

    Screenshot della finestra di dialogo NativeAppToWebApi - Web A P IProperties che mostra la scheda Regole di trasformazione rilascio.

  12. In Procedura guidata Aggiungi regola attestazione di trasformazione, selezionare Trasforma un’attestazione in ingresso dal menu a discesa Modello di regola di attestazione: e fare clic su Avanti.

    Screenshot della pagina Seleziona modello di regola della Procedura guidata Aggiungi regola attestazione trasformazione che mostra l'opzione Trasforma attestazione in ingresso selezionata.

  13. Immettere NameID nel campo Nome regola attestazione:. Selezionare Nome per Tipo di reclamo in ingresso:, ID nome per Tipo di attestazione in uscita: e Nome comune per Formato ID nome in uscita:. fare clic su Fine.

    Screenshot della pagina Configura regola della Procedura guidata Aggiungi regola attestazione trasformazione che mostra la configurazione illustrata in precedenza.

  14. Fare clic su OK nella schermata Proprietà NativeAppToWebApi – Web API e quindi nella schermata Proprietà NativeAppToWebApi.

Configurazione del codice

Questa sezione mostra come configurare un'app nativa per accedere all'utente e recuperare il token per chiamare l'API Web

  1. Scaricare il campione da qui

  2. Aprire l'esempio usando Visual Studio

  3. Aprire il file App.config. Modificare quanto segue:

    • ida:Authority - immettere https://[your AD FS hostname]/adfs

    • ida:ClientId - immettere il valore Identificatore Client da #3 nella sezione Registrazione app in AD FS precedente.

    • ida:RedirectUri - immettere il valore URI di reindirizzamento da #3 nella sezione precedente Registrazione app in AD FS.

    • todo:TodoListResourceId – immettere il valore Identificatore da #4 nella sezione precedente Registrazione app in AD FS

    • ida::ClientId - immettere il valore Identificatore da #4 nella sezione Registrazione app in AD FS precedente.

      Screenshot del file di configurazione dell'app che mostra i valori modificati.

  4. Aprire il file Web.config. Modificare quanto segue:

    • ida:Audience - immettere il valore Identificatore da #4 nella sezione Registrazione app in AD FS

    • ida: AdfsMetadataEndpoint - immettere https://[your AD FS hostname]/federationmetadata/2007-06/federationmetadata.xml

      Screenshot del file di configurazione Web che mostra i valori modificati.

Testare l'esempio

Questa sezione mostra come testare il campione configurato in precedenza.

  1. Dopo aver apportato le modifiche al codice, ricompilare la soluzione

  2. In Visual Studio fare clic con il pulsante destro del mouse sulla soluzione e selezionare Imposta progetti di avvio.

    Screenshot dell'elenco visualizzato quando si fa clic con il pulsante destro del mouse sulla soluzione con l'opzione Configura progetti di avvio evidenziata.

  3. Nelle pagine delle proprietà assicurarsi che l’opzione Azione sia impostata su Avvia per ognuno dei progetti

    Screenshot della finestra di dialogo Pagine delle proprietà della soluzione che mostra l'opzione Più progetti di avvio selezionata e tutte le azioni dei progetti impostate su Avvia.

  4. Nella parte superiore di Visual Studio fare clic sulla freccia verde.

    Screenshot dell'interfaccia utente di Visual Studio con l'opzione Start evidenziata.

  5. Nella schermata principale dell'app nativa, fare clic su Accedi.

    Screenshot della finestra di dialogo To Do List Client .

Se non viene visualizzata la schermata dell'app nativa, cercare e rimuovere i file *msalcache.bin dalla cartella in cui è salvato il repository del progetto sul sistema.

  1. Si sarà reindirizzati alla pagina di accesso di ADFS. Andare avanti ed eseguire l'accesso.

    Screenshot della pagina Di accesso.

  2. Una volta effettuato l'accesso, immettere il testo Build Native App to Web Api nell'elemento Create a To Do . Fare clic su Aggiungi elemento. Questo chiamerà il servizio elenco attività (API Web) e aggiungerà l'elemento nella cache.

    Screenshot della finestra di dialogo To Do List Client con la nuova attività che popola la sezione Elementi attività.

Passaggi successivi

Flussi e scenari applicativi di OpenID Connect/OAuth in AD FS