Scenario: App Web (app server) che chiama API Web
Informazioni su come creare un'app Web 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 Web (app server), che può quindi accedere agli utenti e richiamare un'API Web. Dall'app Web, per chiamare l'API Web, usare il metodo di acquisizione del token AcquireTokenByAuthorizationCode di MSAL. Si usa il flusso del codice di autorizzazione, archiviando il token acquisito nella cache dei token. Il controller acquisisce quindi i token in modo invisibile all'utente dalla cache, quando necessario. Se necessario, MSAL aggiorna il token.
App Web che chiama le API Web:
- sono applicazioni client riservate.
- ha registrato un segreto (segreto condiviso con l'applicazione, certificato o account AD) con AD FS. Questo segreto viene passato durante la chiamata ad AD FS per ottenere un token.
Per registrare un'app Web in AD FS e configurarla per acquisire i token per chiamare un'API Web, usare un esempio disponibile qui ed esaminare i passaggi di registrazione dell'app e 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 AD FS
Questa sezione mostra come registrare l'app Web come client confidenziale e l'API Web come relying party (RP) in AD FS.
Nella gestione di ADFS, fare clic su Gruppi di applicazioni e selezionare Aggiungi gruppo di applicazioni.
Nella Configurazione guidata Gruppo applicazioni, per Nome immettere WebAppToWebApi e in Applicazioni client-server selezionare il modello Applicazione server che accede a un modello API Web. Fare clic su Avanti.
Copia il identificatore Client valore. Il valore viene utilizzato in un secondo momento come valore per ida:ClientId nel file Web.config delle applicazioni. Immettere le informazioni seguenti per URI di reindirizzamento: - https://localhost:44326. Fare clic su Aggiungi. Fare clic su Avanti.
Nella schermata Configura credenziali applicazione, inserire un segno di spunta generare una chiave privata condivisa e copiare la chiave privata. Il valore viene utilizzato in un secondo momento come valore per ida:ClientSecret nel file Web.config delle applicazioni. Fare clic su Avanti.
Nella schermata Configura API Web, immettere l'identificatore:https://webapi. Fare clic su Aggiungi. Fare clic su Avanti. Questo valore verrà usato in un secondo momento per ida:GraphResourceId nel file web.config delle applicazioni.
Nella schermata Applica criteri di controllo degli accessi, selezionare Autorizza tutti e fare clic su Avanti.
Nella schermata Configurare autorizzazioni per l'applicazione assicurarsi che openid e user_impersonation siano selezionati e fare clic su Avanti.
Nella schermata Riepilogo fare clic su Avanti.
Nella schermata Completa fare clic su Chiudi.
Configurazione del codice
Questa sezione mostra come configurare un'app Web ASP.NET per accedere all'utente e recuperare il token per chiamare l'API Web
Scaricare il campione da qui
Aprire l'esempio utilizzando Visual Studio
Aprire il file Web. config. Modificare quanto segue:
ida:ClientId
- immettere il valore dell'identificatore Client da n. 3 nella sezione Registrazione app in AD FS.ida:ClientSecret
- immettere il valore dell'identificatore Secret da n. 4 nella sezione Registrazione app in AD FS.ida:RedirectUri
- immettere il valore dell'identificatore Redirect URI da n. 3 nella sezione Registrazione app in AD FS.ida:Authority
- immettere https://[nome host AD FS]/adfs. Ad esempio, https://adfs.contoso.com/adfsida:Resource
- immettere il valore dell'identificatore da n. 5 nella sezione Registrazione app in AD FS.
Testare l'esempio
In questa sezione viene illustrato come testare l'esempio configurato.
Una volta apportate le modifiche al codice, ricompilare la soluzione.
Nella parte superiore di Visual Studio, verificare che Internet Explorer sia selezionata e fare clic sulla freccia verde.
Nella home page fare clic su Accedi.
Si verrà reindirizzati alla pagina di accesso AD FS. Andare avanti ed eseguire l'accesso.
Dopo l'accesso, fare clic su Token di accesso.
Facendo clic su Token di accesso si ottengono le informazioni sul token di accesso richiamando l'API Web.
Passaggi successivi
Flussi e scenari applicativi di OpenID Connect/OAuth in AD FS