Condividi tramite


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

Panoramica dell'API Web chiamante dell'app Web

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.

  1. Nella gestione di ADFS, fare clic su Gruppi di applicazioni e selezionare Aggiungi gruppo di applicazioni.

  2. 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.

    Screenshot della pagina iniziale della Procedura guidata Aggiungi gruppo di applicazioni che mostra l'applicazione server che accede a un modello A P I Web evidenziato.

  3. 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.

    Screenshot della pagina Applicazione server della Procedura guidata Aggiungi gruppo di applicazioni che mostra l'identificatore client corretto e il reindirizzamento di U R I.

  4. 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.

    Screenshot della pagina Configura applicazione credenziali applicazione della Procedura guidata Aggiungi gruppo di applicazioni che mostra l'opzione Genera un segreto condiviso selezionata e il segreto condiviso generato popolato.

  5. 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.

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

  6. 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.

  7. Nella schermata Configurare autorizzazioni per l'applicazione assicurarsi che openid e user_impersonation siano selezionati e fare clic su Avanti.

    Screenshot della pagina Configura autorizzazioni applicazione della Procedura guidata Aggiungi gruppo di applicazioni che mostra le opzioni di rappresentazione utente e ID aperte selezionate.

  8. Nella schermata Riepilogo fare clic su Avanti.

  9. 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

  1. Scaricare il campione da qui

  2. Aprire l'esempio utilizzando Visual Studio

  3. 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/adfs

    • ida:Resource - immettere il valore dell'identificatore da n. 5 nella sezione Registrazione app in AD FS.

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

Testare l'esempio

In questa sezione viene illustrato come testare l'esempio configurato.

  1. Una volta apportate le modifiche al codice, ricompilare la soluzione.

  2. Nella parte superiore di Visual Studio, verificare che Internet Explorer sia selezionata e fare clic sulla freccia verde.

    Screenshot dell'interfaccia utente di Visual Studio con l'opzione IIS Express (Internet Explorer) evidenziata.

  3. Nella home page fare clic su Accedi.

    Screenshot della home page con l'opzione Accedi evidenziata.

  4. Si verrà reindirizzati alla pagina di accesso AD FS. Andare avanti ed eseguire l'accesso.

    Screenshot della pagina Accedi.

  5. Dopo l'accesso, fare clic su Token di accesso.

    Screenshot della home page con l'opzione Token di accesso evidenziata.

  6. Facendo clic su Token di accesso si ottengono le informazioni sul token di accesso richiamando l'API Web.

    Screenshot della pagina Token di accesso che mostra le informazioni sul token di accesso.

Passaggi successivi

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