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
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
In Gestione ADFS, fare clic con il pulsante destro del mouse su Gruppi di applicazioni e selezionare Aggiungi gruppo applicazioni.
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.
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.
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.
Nella schermata Applica criteri di controllo degli accessi, selezionare Autorizza tutti e fare clic su Avanti.
Nella schermata Configura autorizzazioni applicazione, assicurarsi che sia selezionato openid e fare clic su Avanti.
Nella schermata Riepilogo fare clic su Avanti.
Nella schermata Completa, fare clic su Chiudi.
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à.
Nella schermata delle proprietà NativeAppToWebApi, selezionare NativeAppToWebApi – Web API in Web API e fare clic su Modifica...
Nella schermata NativeAppToWebApi – Web API Properties, selezionare la scheda Regole trasformazione rilascio e fare clic su Aggiungi regola...
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.
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.
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
Scaricare il campione da qui
Aprire l'esempio usando Visual Studio
Aprire il file App.config. Modificare quanto segue:
ida:Authority - immettere h
ttps://[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.
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
Testare l'esempio
Questa sezione mostra come testare il campione configurato in precedenza.
Dopo aver apportato le modifiche al codice, ricompilare la soluzione
In Visual Studio fare clic con il pulsante destro del mouse sulla soluzione e selezionare Imposta progetti di avvio.
Nelle pagine delle proprietà assicurarsi che l’opzione Azione sia impostata su Avvia per ognuno dei progetti
Nella parte superiore di Visual Studio fare clic sulla freccia verde.
Nella schermata principale dell'app nativa, fare clic su Accedi.
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.
Si sarà reindirizzati alla pagina di accesso di ADFS. Andare avanti ed eseguire l'accesso.
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.
Passaggi successivi
Flussi e scenari applicativi di OpenID Connect/OAuth in AD FS