Condividi tramite


Scenario: App nativa che chiama l'API Web

Si applica a: Windows Server 2022, Windows Server 2019, AD FS 2019 e versioni successive

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

Overview

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 of the Welcome page of the Add Application Group Wizard showing the Native application accessing a Web API template highlighted.

  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 of the Native application page of the Add Application Group Wizard showing the redirect 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 of the Configure Web API page of the Add Application Group Wizard showing the correct identifier.

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

    Screenshot of the Choose Access Control Policy page of the Add Application Group Wizard showing the Permit everyone option highlighted.

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

    Screenshot of the Configure Application Permissions page of the Add Application Group Wizard showing open I D selected.

  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 of the A D F S Management dialog box showing the NativeAppToWebApi group highlighted and the Properties option in the dropdown list.

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

    Screenshot of the NativeAppToWebApi Properties dialog box showing the NativeAppToWebApi - Web A P I application highlighted.

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

    Screenshot of the NativeAppToWebApi - Web A P I Properties dialog box showing the Issuance Transform Rules tab.

  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 of the Select Rule Template page of the Add Transform Claim Rule Wizard showing the Transform an Incoming Claim option selected.

  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 of the Configure Rule page of the Add Transform Claim Rule Wizard showing the configuration explained above.

  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 of the App config file showing the modified values.

  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 of the web config file showing the modified values.

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 of the list that appears when you right-click the solution with the Set Start Up Projects option highlighted.

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

    Screenshot of the Solution Property Pages dialog box showing the Multiple startup project option selected and all of the projects' actions set to Start.

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

    Screenshot of the Visual Studio UI with the Start option called out.

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

    Screenshot of the To Do List Client dialog box.

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 of the Sign In page.

  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 of the To Do List Client dialog box with the new to do item populating the To Do Items section.

Passaggi successivi

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