Configurare un'app del servizio app o di Funzioni di Azure per l'uso dell'account di accesso di Azure AD

Questo articolo illustra come configurare l'autenticazione per Servizio app di Azure o Funzioni di Azure in modo che l'app accuti gli utenti con il Microsoft Identity Platform (Azure AD) come provider di autenticazione.

La funzionalità di autenticazione servizio app può creare automaticamente una registrazione dell'app con il Microsoft Identity Platform. È anche possibile usare una registrazione creata separatamente dall'utente o da un amministratore della directory.

Nota

L'opzione per creare una nuova registrazione non è disponibile per i cloud per enti pubblici. Definire invece una registrazione separatamente.

Opzione 1: Creare automaticamente una nuova registrazione dell'app

Questa opzione è progettata per semplificare l'abilitazione dell'autenticazione e richiede solo pochi clic.

  1. Accedere al portale di Azure e passare all'app.

  2. Selezionare Autenticazione nel menu a sinistra. Fare clic su Aggiungi provider di identità.

  3. Selezionare Microsoft nell'elenco a discesa Provider di identità. L'opzione per creare una nuova registrazione è selezionata per impostazione predefinita. È possibile modificare il nome della registrazione o i tipi di account supportati.

    Verrà creato e archiviato un segreto client come impostazione dell'applicazione slot-sticky denominata MICROSOFT_PROVIDER_AUTHENTICATION_SECRET. È possibile aggiornare questa impostazione in un secondo momento per usare i riferimenti Key Vault se si vuole gestire il segreto in Azure Key Vault.

  4. Se si tratta del primo provider di identità configurato per l'applicazione, verrà visualizzata anche una sezione servizio app delle impostazioni di autenticazione. In caso contrario, è possibile passare al passaggio successivo.

    Queste opzioni determinano il modo in cui l'applicazione risponde alle richieste non autenticate e le selezioni predefinite reindirizzeranno tutte le richieste di accesso con questo nuovo provider. È possibile modificare questo comportamento ora o modificare queste impostazioni in un secondo momento dalla schermata Autenticazione principale scegliendo Modifica accanto a Impostazioni di autenticazione. Per altre informazioni su queste opzioni, vedere Flusso di autenticazione.

  5. (Facoltativo) Fare clic su Avanti: Autorizzazioni e aggiungere eventuali ambiti necessari per l'applicazione. Questi verranno aggiunti alla registrazione dell'app, ma è anche possibile modificarli in un secondo momento.

  6. Fare clic su Aggiungi.

È ora possibile usare il Microsoft Identity Platform per l'autenticazione nell'app. Il provider verrà elencato nella schermata Autenticazione . Da qui è possibile modificare o eliminare questa configurazione del provider.

Per un esempio di configurazione dell'account di accesso di Azure AD per un'app Web che accede a Archiviazione di Azure e a Microsoft Graph, vedere questa esercitazione.

Opzione 2: usare una registrazione esistente creata separatamente

È anche possibile registrare manualmente l'applicazione per il Microsoft Identity Platform, personalizzare la registrazione e configurare servizio app l'autenticazione con i dettagli di registrazione. Ciò è utile, ad esempio, se si vuole usare una registrazione dell'app da un tenant di Azure AD diverso da quello in cui si trova l'applicazione.

Creare una registrazione in Azure AD per l'app del servizio app

Prima di tutto, creerai la registrazione dell'app. In questo modo, raccogliere le informazioni seguenti che saranno necessarie in un secondo momento quando si configura l'autenticazione nell'app servizio app:

  • ID client
  • ID tenant
  • Segreto client (facoltativo)
  • URI dell'ID applicazione

Per registrare l'app, seguire questa procedura:

  1. Accedere al Azure portal, cercare e selezionare Servizi app e quindi selezionare la propria app. Prendere nota dell'URL dell'app. Verrà usato per configurare la registrazione dell'app di Azure Active Directory.

  2. Dal menu del portale selezionare Azure Active Directory, quindi passare alla scheda Registrazioni app e selezionare Nuova registrazione.

  3. Nella pagina Registra un'applicazione immettere un valore per Nome per la registrazione dell'app.

  4. In URI di reindirizzamento selezionare Web e digitare <app-url>/.auth/login/aad/callback. Ad esempio: https://contoso.azurewebsites.net/.auth/login/aad/callback.

  5. Selezionare Registra.

  6. Una volta creata la registrazione dell'app, copiare i valori di ID applicazione (client) e ID della directory (tenant) , che serviranno più avanti.

  7. Selezionare Autenticazione. In Concessione implicita e flussi ibridi abilitare i token ID per consentire a OpenID Connessione accessi utente da servizio app. Selezionare Salva.

  8. (Facoltativo) Selezionare Personalizzazione. In URL pagina iniziale immettere l'URL dell'app del servizio app e selezionare Salva.

  9. Selezionare Esporre un'API e fare clic su Imposta accanto a "URI ID applicazione". Questo valore identifica in modo univoco l'applicazione quando viene usata come risorsa, consentendo la richiesta di token che concedono l'accesso. Viene usato come prefisso per gli ambiti creati.

    Per un'app a tenant singolo, è possibile usare il valore predefinito, nel formato api://<application-client-id>. È anche possibile specificare un URI più leggibile, ad https://contoso.com/api esempio in base a uno dei domini verificati per il tenant. Per un'app multi-tenant, è necessario fornire un URI personalizzato. Per altre informazioni sui formati accettati per gli URI ID app, vedere le informazioni di riferimento sulle procedure consigliate per le registrazioni dell'app.

    Il valore viene salvato automaticamente.

  10. Selezionare Aggiungi un ambito.

    1. In Aggiungi un ambitol'URI ID applicazione è il valore impostato in un passaggio precedente. Fai clic su Salva e continua.
    2. In Nome ambito immettere user_impersonation.
    3. Nelle caselle di testo immettere il nome dell'ambito del consenso e la descrizione da mostrare agli utenti nella pagina del consenso. Ad esempio, immettere Access application-name.For example, enter Access <application-name>.
    4. Selezionare Aggiungi ambito.
  11. (Facoltativo) Per creare un segreto client, selezionare Certificati & segreti>client Segreti>client Nuovo segreto client. Immettere una descrizione e una scadenza e selezionare Aggiungi. Copiare il valore del segreto client visualizzato nella pagina. Non verrà più visualizzato.

  12. (Facoltativo) Per aggiungere più valori per URL di risposta, selezionare Autenticazione.

Abilitare Azure Active Directory nell'app del servizio app

  1. Accedere al portale di Azure e passare all'app.

  2. Selezionare Autenticazione nel menu a sinistra. Fare clic su Aggiungi provider di identità.

  3. Selezionare Microsoft nell'elenco a discesa Provider di identità.

  4. Per Tipo di registrazione dell'app, è possibile scegliere Di selezionare una registrazione dell'app esistente in questa directory che raccoglierà automaticamente le informazioni necessarie sull'app. Se la registrazione proviene da un altro tenant o non si dispone dell'autorizzazione per visualizzare l'oggetto di registrazione, scegliere Specificare i dettagli di una registrazione dell'app esistente. Per questa opzione, è necessario compilare i dettagli di configurazione seguenti:

    Campo Descrizione
    ID applicazione (client) Usare il valore di ID applicazione (client) della registrazione dell'app.
    Client Secret Usare il segreto client generato nella registrazione dell'app. Con un segreto client, viene usato un flusso ibrido e il servizio app restituirà i token di accesso e di aggiornamento. Quando il segreto client non è impostato, viene usato il flusso implicito e viene restituito solo un token ID. Questi token vengono inviati dal provider e archiviati nell'archivio token EasyAuth.
    URL autorità di certificazione Usare <authentication-endpoint>/<tenant-id>/v2.0e sostituire <authentication-endpoint> con l'endpoint di autenticazione per l'ambiente cloud , ad esempio "https://login.microsoftonline.com" per Azure globale), sostituendo <anche l'ID tenant con l'ID>directory (tenant) in cui è stata creata la registrazione dell'app. Questo valore viene usato per reindirizzare gli utenti al tenant di Azure AD corretto, oltre che per scaricare i metadati appropriati in modo da determinare, ad esempio, i valori corretti delle chiavi di firma del token e dell'attestazione dell'autorità emittente del token corretti. Per le applicazioni che usano Azure AD v1, omettere /v2.0 nell'URL.
    Destinatari token consentiti L'ID applicazione (client) configurato viene sempre considerato implicitamente un gruppo di destinatari consentito. Se si tratta di un'app cloud o server e si vogliono accettare token di autenticazione da un'app client servizio app (il token di autenticazione può essere recuperato nell'intestazione X-MS-TOKEN-AAD-ID-TOKEN), aggiungere qui l'ID applicazione (client) dell'app client.

    Il segreto client verrà archiviato come impostazione dell'applicazione slot-sticky denominata MICROSOFT_PROVIDER_AUTHENTICATION_SECRET. È possibile aggiornare questa impostazione in un secondo momento per usare i riferimenti Key Vault se si vuole gestire il segreto in Azure Key Vault.

  5. Se si tratta del primo provider di identità configurato per l'applicazione, verrà visualizzata anche una sezione servizio app delle impostazioni di autenticazione. In caso contrario, è possibile passare al passaggio successivo.

    Queste opzioni determinano il modo in cui l'applicazione risponde alle richieste non autenticate e le selezioni predefinite reindirizzeranno tutte le richieste di accesso con questo nuovo provider. È possibile modificare questo comportamento ora o modificare queste impostazioni in un secondo momento dalla schermata Autenticazione principale scegliendo Modifica accanto a Impostazioni di autenticazione. Per altre informazioni su queste opzioni, vedere Flusso di autenticazione.

  6. Fare clic su Aggiungi.

È ora possibile usare il Microsoft Identity Platform per l'autenticazione nell'app. Il provider verrà elencato nella schermata Autenticazione . Da qui è possibile modificare o eliminare questa configurazione del provider.

Configurare le app client per accedere alle servizio app

Nella sezione precedente è stata registrata la servizio app o la funzione di Azure per autenticare gli utenti. Questa sezione illustra come registrare app native client o daemon in modo che possano richiedere l'accesso alle API esposte dal servizio app per conto di utenti o utenti stessi. Se si vuole solo autenticare gli utenti, non è necessario completare i passaggi descritti in questa sezione.

Applicazione client nativa

È possibile registrare client nativi per richiedere l'accesso alle API dell'app servizio app per conto di un utente connesso.

  1. Nel Azure portal selezionare Active Directory>Registrazioni app>Nuova registrazione.

  2. Nella pagina Registra un'applicazione immettere un valore per Nome per la registrazione dell'app.

  3. In URI di reindirizzamento selezionare Client pubblico (desktop per dispositivi mobili & ) e digitare l'URL <app-url>/.auth/login/aad/callback. Ad esempio: https://contoso.azurewebsites.net/.auth/login/aad/callback.

    Nota

    Per un'applicazione di Microsoft Store, usare invece il SID pacchetto come URI.

  4. Selezionare Create (Crea).

  5. Dopo la creazione della registrazione dell'app, copiare il valore di ID applicazione (client) .

  6. Selezionare Autorizzazioni API>Aggiungi un'autorizzazione>Le mie API.

  7. Selezionare la registrazione creata in precedenza per l'app del servizio app. Se la registrazione dell'app non è visibile, verificare di aver aggiunto l'ambito user_impersonation in Creare una registrazione di app in Azure AD per l'app del servizio app.

  8. Selezionare user_impersonation in Autorizzazioni delegate, quindi selezionare Aggiungi autorizzazioni.

È stata ora configurata un'applicazione client nativa in grado di richiedere l'accesso all'app servizio app per conto di un utente.

Applicazione client daemon (chiamate da servizio a servizio)

L'applicazione può acquisire un token per chiamare un'API Web ospitata nel servizio app o nell'app per le funzioni per conto di se stessa (non per conto di un utente). Questo scenario è utile per le applicazioni daemon non interattive che eseguono attività senza un utente connesso. Usa la concessione di credenziali client OAuth 2.0 standard.

  1. Nel Azure portal selezionare Active Directory>Registrazioni app>Nuova registrazione.
  2. Nella pagina Registra un'applicazione immettere un valore in Nome per la registrazione dell'app daemon.
  3. Per un'applicazione daemon, non è necessario un URI di reindirizzamento, quindi è possibile lasciare questo campo vuoto.
  4. Selezionare Create (Crea).
  5. Dopo la creazione della registrazione dell'app, copiare il valore di ID applicazione (client) .
  6. Selezionare Certificati & segreti>Nuovo segreto> clientAggiungi. Copiare il valore del segreto client visualizzato nella pagina. Non verrà più visualizzato.

È ora possibile richiedere un token di accesso usando l'ID client e il segreto client impostando il parametro resource sull'URI ID applicazione dell'app di destinazione. Il token di accesso generato può quindi essere presentato all'app di destinazione usando l'intestazione dell'autorizzazione OAuth 2.0 standard e l'autenticazione/autorizzazione del servizio app convaliderà e userà il token come di consueto per indicare che il chiamante (in questo caso un'applicazione, non un utente) è autenticato.

Al momento, questo consente a qualsiasi applicazione client nel tenant di Azure AD di richiedere un token di accesso ed eseguire l'autenticazione all'app di destinazione. Per imporre all'autorizzazione di consentire solo determinate applicazioni client, è necessario eseguire alcune operazioni di configurazione aggiuntive.

  1. Definire un ruolo dell'app nel manifesto della registrazione dell'app che rappresenta il servizio app o l'app per le funzioni che si vuole proteggere.
  2. Nella registrazione app che rappresenta il client che deve essere autorizzato selezionare Autorizzazioni API>Aggiungi un'autorizzazione>API personali.
  3. Selezionare la registrazione app creata in precedenza. Se la registrazione app non è visualizzata, verificare di aver aggiunto un ruolo dell'app.
  4. In Autorizzazioni applicazione selezionare il ruolo dell'app creato in precedenza e quindi selezionare Aggiungi autorizzazioni.
  5. Assicurarsi di fare clic su Fornisci il consenso amministratore per autorizzare l'applicazione client a richiedere l'autorizzazione.
  6. Analogamente allo scenario precedente (prima dell'aggiunta di eventuali ruoli), è ora possibile richiedere un token di accesso per la stessa resource di destinazione e il token di accesso includerà un'attestazione roles contenente i ruoli dell'app autorizzati per l'applicazione client.
  7. All'interno del servizio app di destinazione o del codice dell'app per le funzioni, è ora possibile verificare che i ruoli previsti siano presenti nel token. Questa operazione non viene eseguita dall'autenticazione/autorizzazione del servizio app. Per altre informazioni, vedere Accedere alle attestazioni utente.

È stata configurata un'applicazione client daemon che può accedere all'app del servizio app usando la propria identità.

Procedure consigliate

Indipendentemente dalla configurazione usata per configurare l'autenticazione, le procedure consigliate seguenti manterranno il tenant e le applicazioni più sicuri:

  • Assegnare a ogni app del servizio app le autorizzazioni specifiche e il consenso.
  • Configurare ogni app del servizio app con la relativa registrazione.
  • Evitare la condivisione delle autorizzazioni tra ambienti usando registrazioni di app separate per slot di distribuzione distinti. Quando si esegue il test di nuovo codice, questa procedura consente di evitare problemi che influiscono sull'app di produzione.

Passaggi successivi