Configurare l’app del Servizio app o Funzioni di Azure per l’uso delle informazioni di accesso di Microsoft Entra
Nota
A partire dal 1° giugno 2024, tutte le app del servizio app appena create avranno la possibilità di generare un nome host predefinito univoco usando la convenzione di denominazione <app-name>-<random-hash>.<region>.azurewebsites.net
. I nomi delle app esistenti rimarranno invariati.
Esempio: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Per altri dettagli, vedere Nome host predefinito univoco per la risorsa del Servizio app.
Selezionare un altro provider di autenticazione per passare a tale provider.
Questo articolo illustra come configurare l'autenticazione per il Servizio app di Azure o Funzioni di Azure in modo che l'app consenta l’accesso agli utenti con la piattaforma di identità Microsoft (Microsoft Entra) come provider di autenticazione.
Scegliere un tenant per l'applicazione e i relativi utenti
Affinché l'applicazione possa concedere l’accesso agli utenti, occorre prima registrarla in un tenant Workforce o esterno. Se si rende disponibile l'app ai dipendenti o agli ospiti aziendali, registrare l'app in un tenant Workforce. Se l'app è destinata a utenti e clienti aziendali, registrarla in un tenant esterno.
Accedere al portale di Azure e passare all’app.
Nel menu a sinistra dell'app, selezionare Autenticazione, quindi selezionare Aggiungi provider di identità.
Nella pagina Aggiungi un provider di identità selezionare Microsoft come Provider di identità per l'acceso di identità Microsoft e Microsoft Entra.
Per Tipo di tenant, selezionare Configurazione Workforce (tenant corrente) per dipendenti e ospiti aziendali oppure selezionare Configurazione esterna per utenti e clienti aziendali.
Scegliere la registrazione app
La funzionalità di autenticazione del Servizio app può creare automaticamente una registrazione app; in alternativa, è possibile usare una registrazione creata separatamente dall'utente o da un amministratore di directory.
Creare automaticamente una nuova registrazione app, a meno che non sia necessario creare una registrazione app separatamente. È possibile personalizzare la registrazione app nell’Interfaccia di amministrazione di Microsoft Entra in un secondo momento.
Le situazioni seguenti sono i casi più comuni in cui si usa una registrazione app esistente:
- L'account non dispone delle autorizzazioni per creare registrazioni app nel tenant di Microsoft Entra.
- Si desidera usare una registrazione app da un tenant Microsoft Entra diverso da quello in cui si trova l'app.
- L'opzione per creare una nuova registrazione non è disponibile per i cloud per enti pubblici.
Creare e usare una nuova registrazione app o usare una registrazione esistente creata separatamente.
Opzione 1: Creare e usare una nuova registrazione app
Usare questa opzione, a meno che non sia necessario creare una registrazione app separatamente. È possibile personalizzare la registrazione app in Microsoft Entra dopo la creazione.
Nota
L'opzione per creare automaticamente una nuova registrazione non è disponibile per i cloud per enti pubblici. Al contrario, definire una registrazione separatamente.
Immettere il Nome per la nuova registrazione app.
Selezionare il Tipo di account supportato:
- Tenant corrente - Tenant singolo. Account solo in questa directory organizzativa. Tutti gli account utente e guest nella directory possono usare l'applicazione o l'API. Usare questa opzione se il gruppo di destinatari è interno all'organizzazione.
- Qualunque directory di Microsoft Entra - Multitenant. Account in qualsiasi directory organizzativa. Tutti gli utenti con un account Microsoft aziendale o dell'istituto di istruzione possono usare l'applicazione o l'API. Sono inclusi gli istituti di istruzione e le aziende che usano Office 365. Usare questa opzione se il gruppo di destinatari è costituito da clienti aziendali o di istituti di istruzione e per abilitare il multi-tenancy.
- Qualunque directory di Microsoft Entra e account di Microsoft personali. Account in qualunque directory organizzativa e account di Microsoft personali (ad esempio Skype, Xbox). Tutti gli utenti con un account aziendale o dell'istituto di istruzione o con un account Microsoft personale possono usare l'applicazione o l'API. Sono inclusi gli istituiti di istruzione e le aziende che usano Office 365, nonché gli account personali usati per accedere a servizi come Xbox e Skype. Usare questa opzione per includere il set più ampio possibile di identità Microsoft e per abilitare la multi-tenancy.
- Solo account di Microsoft personali. Account personali usati per accedere a servizi quali Xbox e Skype. Usare questa opzione per includere il set più ampio possibile di identità Microsoft.
È possibile modificare il nome della registrazione o i tipi di account supportati in un secondo momento.
Un segreto client viene creato come impostazione dell’applicazione slot-sticky denominata MICROSOFT_PROVIDER_AUTHENTICATION_SECRET
. È possibile aggiornare questa impostazione in un secondo momento per usare riferimenti a Key Vault se si desidera gestire il segreto in Azure Key Vault.
Opzione 2: Usare una registrazione esistente creata separatamente
Uno dei seguenti:
- Selezionare Seleziona una registrazione app esistente in questa directory, quindi selezionare una registrazione app dall'elenco a discesa.
- Selezionare Fornisci i dettagli di una registrazione app esistente e fornire:
- ID applicazione (client).
- Segreto client (scelta consigliata). Un valore segreto usato dall'applicazione per dimostrare la propria identità quando si richiede un token. Questo valore viene salvato nella configurazione dell'app come impostazione dell'applicazione slot-sticky denominata
MICROSOFT_PROVIDER_AUTHENTICATION_SECRET
. Se il segreto client non è impostato, le operazioni di accesso del servizio usano il flusso di concessione implicita OAuth 2.0, che non è consigliato. - URL dell’emittente, che assume il formato
<authentication-endpoint>/<tenant-id>/v2.0
. Sostituire<authentication-endpoint>
con il valore dell’endpoint di autenticazione specifico dell'ambiente cloud. Ad esempio, un tenant Workforce in Azure globale userà "https://sts.windows.net" come endpoint di autenticazione.
Se è necessario creare manualmente una registrazione app in un tenant Workforce, seguire l’avvio rapido per registrare un'applicazione. Durante il processo di registrazione, prendere nota dei valori di ID applicazione (client) e segreto client.
Durante il processo di registrazione, nella sezione URI di reindirizzamento, selezionare Web per piattaforma e digitare <app-url>/.auth/login/aad/callback
. Ad esempio: https://contoso.azurewebsites.net/.auth/login/aad/callback
.
Dopo la creazione, modificare la registrazione app:
Dal riquadro di spostamento a sinistra, selezionare Esponi un’API>Aggiungi>Salva. 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 singolo tenant è possibile usare il valore predefinito, nel formato
api://<application-client-id>
. È anche possibile specificare un URI più leggibile, ad esempiohttps://contoso.com/api
, in base a uno dei domini verificati per il tenant. Per un'app multitenant è necessario fornire un URI personalizzato. Per altre informazioni sui formati accettati per gli URI ID app, vedere il riferimento alle procedure consigliate per le registrazioni delle app.Seleziona Aggiungi un ambito.
- In Nome ambito immettere user_impersonation.
- In Chi può fornire il consenso, selezionare Amministratori e utenti se si desidera consentire agli utenti di fornire il consenso a questo ambito.
- Nelle caselle di testo immettere il nome dell'ambito del consenso e la descrizione da mostrare agli utenti nella pagina del consenso. Immettere, ad esempio, Accesso <application-name>.
- Seleziona Aggiungi ambito.
(Scelta consigliata) Per creare un segreto client:
- Dal riquadro di navigazione a sinistra, selezionare Certificati e segreti>Segreti client>Nuovo segreto client.
- Immettere una descrizione e una scadenza, quindi selezionare Aggiungi.
- Nel campo Valore, copiare il valore del segreto client. Una volta usciti da questa pagina, non sarà più possibile visualizzarlo.
(Facoltativo) Per aggiungere più valori per URL di risposta, selezionare Autenticazione.
Configurare controlli aggiuntivi
Configurare Controlli aggiuntivi, che determina quali richieste sono autorizzate ad accedere all'applicazione. È possibile personalizzare questo comportamento ora oppure modificare queste impostazioni in un secondo momento dalla schermata Autenticazione principale scegliendo Modifica accanto a Impostazioni autenticazione.
Per Requisito applicazione client, scegliere se:
- Consentire richieste solo da questa applicazione
- Consentire richieste da applicazioni client specifiche
- Consentire richieste da qualunque applicazione (scelta sconsigliata)
Per Requisito identità, scegliere se:
- Consentire richieste da qualunque identità
- Consentire richieste da identità specifiche
Per Requisito tenant, scegliere se:
- Consentire richieste solo dal tenant emittente
- Consentire richieste da tenant specifici
- Usare le restrizioni predefinite in base all'emittente
L'app potrebbe comunque dover prendere decisioni di autorizzazione aggiuntive nel codice. Per altre informazioni, vedere Usare criteri di autorizzazione predefiniti.
Configurare impostazioni di autenticazione
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 oppure modificare queste impostazioni in un secondo momento dalla schermata Autenticazione principale scegliendo Modifica accanto a Impostazioni autenticazione. Per altre informazioni su queste opzioni, vedere Flusso di autenticazione.
Per Limita l'accesso, decidere se:
- Richiedere l'autenticazione
- Consentire l’accesso non autenticato
Per Richieste non autenticate
- HTTP 302 Reindirizzamento trovato: consigliato per i siti Web
- HTTP 401 Non autorizzato: consigliato per le API
- HTTP 403 Non consentito
- HTTP 404 Non trovato
Selezionare Archivio token (scelta consigliata). L'archivio token raccoglie, archivia e aggiorna i token per l'applicazione. È possibile disabilitare questa opzione in un secondo momento se l'app non richiede token o è necessario ottimizzare le prestazioni.
Aggiungere il provider di identità
Se è stata selezionata la configurazione Workforce, è possibile selezionare Avanti: Autorizzazioni e aggiungere le autorizzazioni di Microsoft Graph necessarie per l'applicazione. Queste verranno aggiunte alla registrazione app, ma è anche possibile modificarle in un secondo momento. Se è stata selezionata la configurazione esterna, è possibile aggiungere le autorizzazioni di Microsoft Graph in un secondo momento.
Selezionare Aggiungi.
A questo punto, è possibile usare 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'accesso di Microsoft Entra per un'app Web che accede ad Archiviazione di Azure e Microsoft Graph, vedere questa esercitazione.
Autorizzare le richieste
Per impostazione predefinita, l'autenticazione del Servizio app gestisce solo l'autenticazione, determinando se il chiamante è chi dice di essere. L'autorizzazione, che determina se il chiamante deve avere accesso ad alcune risorse, è un passaggio aggiuntivo oltre l'autenticazione. Per altre informazioni su questi concetti, vedere Nozioni di base sull'autorizzazione di Microsoft Identity Platform.
L'app può prendere decisioni di autorizzazione nel codice. L'autenticazione del Servizio app fornisce alcuni controlli predefiniti che possono essere utili ma insufficienti per soddisfare i requisiti di autorizzazione dell'app.
Suggerimento
Le applicazioni multitenant devono convalidare l'emittente e l'ID tenant della richiesta come parte di questo processo per accertarsi che i valori siano consentiti. Quando l'autenticazione del Servizio app è configurata per uno scenario multitenant, non convalida il tenant da cui proviene la richiesta. Potrebbe essere necessario limitare un'app a tenant specifici, a seconda che l'organizzazione abbia effettuato o meno l'iscrizione al servizio, ad esempio. Vedere Guida ai multitenant di Microsoft Identity Platform.
Eseguire convalide dal codice dell'applicazione
Quando si eseguono controlli di autorizzazione nel codice dell'app, è possibile usare le informazioni sulle attestazioni rese disponibili dall'autenticazione del Servizio app. L'intestazione x-ms-client-principal
inserita contiene un oggetto JSON con codifica Base64 con le attestazioni asserite sul chiamante. Per impostazione predefinita, tali attestazioni passano attraverso un mapping delle attestazioni, quindi i nomi delle attestazioni potrebbero non corrispondere sempre a quanto visualizzato nel token. Ad esempio, l'attestazione tid
viene mappata a http://schemas.microsoft.com/identity/claims/tenantid
.
È anche possibile usare direttamente il token di accesso sottostante dall'intestazione x-ms-token-aad-access-token
inserita.
Usare criteri di autorizzazione predefiniti
La registrazione app creata autentica le richieste in ingresso per il tenant di Microsoft Entra. Per impostazione predefinita, consente anche a chiunque all'interno del tenant di accedere all'applicazione; tale impostazione è adatta a molte applicazioni. Tuttavia, alcune applicazioni devono limitare ulteriormente l'accesso prendendo decisioni di autorizzazione. Il codice dell'applicazione è spesso la posizione migliore per gestire la logica di autorizzazione personalizzata. Per scenari comuni, tuttavia, Microsoft Identity Platform fornisce controlli predefiniti che è possibile usare per limitare l'accesso.
Questa sezione illustra come abilitare i controlli predefiniti usando l’API di autenticazione di Servizio app V2. Attualmente, l'unico modo per configurare questi controlli predefiniti è tramite modelli di Azure Resource Manager o l'API REST.
All'interno dell'oggetto API, la configurazione del provider di identità di Microsoft Entra include una sezione validation
che può contenere un oggetto defaultAuthorizationPolicy
come nella struttura seguente:
{
"validation": {
"defaultAuthorizationPolicy": {
"allowedApplications": [],
"allowedPrincipals": {
"identities": []
}
}
}
}
Proprietà | Descrizione |
---|---|
defaultAuthorizationPolicy |
Raggruppamento di requisiti che devono essere soddisfatti per accedere all'app. L'accesso viene concesso in base a un AND logico su ognuna delle proprietà configurate. Quando allowedApplications e allowedPrincipals sono entrambi configurati, la richiesta in ingresso deve soddisfare entrambi i requisiti per poter essere accettata. |
allowedApplications |
Elenco elementi consentiti di ID client applicazione stringa che rappresentano la risorsa client che sta chiamando nell'app. Quando questa proprietà è configurata come array non vuoto, verranno accettati solo i token ottenuti da un'applicazione specificata nell'elenco. Questo criterio valuta l'attestazione appid o azp del token in ingresso, che deve essere un token di accesso. Vedere Riferimento alle attestazioni di Microsoft Identity Platform. |
allowedPrincipals |
Un raggruppamento di controlli che determinano se l'entità di sicurezza rappresentata dalla richiesta in ingresso può accedere all'app. La soddisfazione di allowedPrincipals si basa su un OR logico per le proprietà configurate. |
identities (in allowedPrincipals ) |
Elenco elementi consentiti di ID oggetto stringa che rappresentano utenti o applicazioni a cui è consentito l'accesso. Quando questa proprietà è configurata come array non vuoto, il requisito allowedPrincipals può essere soddisfatto se l'utente o l'applicazione rappresentata dalla richiesta è specificato nell'elenco. È previsto un limite di 500 caratteri nell'elenco delle identità.Questo criterio valuta l'attestazione oid del token in ingresso. Vedere Riferimento alle attestazioni di Microsoft Identity Platform. |
Inoltre, alcuni controlli possono essere configurati tramite un'impostazione dell’applicazione, indipendentemente dalla versione dell'API in uso. L'impostazione WEBSITE_AUTH_AAD_ALLOWED_TENANTS
dell'applicazione può essere configurata con un elenco delimitato da virgole di un massimo di 10 ID tenant ,ad esempio "aaaabbbbbb-0000-cccc-1111-dddd2222ee") per richiedere che il token in ingresso proveni da uno dei tenant specificati, come specificato dall'attestazione tid
. L'impostazione dell'applicazione WEBSITE_AUTH_AAD_REQUIRE_CLIENT_SERVICE_PRINCIPAL
può essere configurata su "true" o "1" per richiedere al token in ingresso di includere un'attestazione oid
. Questa impostazione viene ignorata e considerata true se è stato configurato allowedPrincipals.identities
, poiché l'attestazione oid
viene verificata in base all'elenco di identità fornito.
Alle richieste che non soddisfano questi controlli predefiniti viene assegnata una risposta HTTP 403 Forbidden
.
Configurare app client per accedere al Servizio app
Nelle sezioni precedenti è stato registrato il Servizio app o la Funzione di Azure per l’autenticazione degli utenti. Questa sezione illustra come registrare client nativi o app daemon in Microsoft Entra in modo che possano richiedere l'accesso alle API esposte dal Servizio app per conto di utenti o utenti stessi, ad esempio in un'architettura a N livelli. Il completamento dei passaggi in questa sezione non è necessario se si desidera solo autenticare gli utenti.
Applicazione client nativa
È possibile registrare client nativi per chiedere l'accesso alle API dell'app del Servizio app per conto di un utente registrato.
Dal menu del portale, selezionare Microsoft Entra.
Dal riquadro di spostamento a sinistra, selezionare Registrazioni app>Nuova registrazione.
Nella pagina Registra un'applicazione immettere un valore per Nome per la registrazione dell'app.
In URI di reindirizzamento selezionare Client pubblico (per dispositivi mobili e desktop) e digitare l'URL
<app-url>/.auth/login/aad/callback
. Ad esempio:https://contoso.azurewebsites.net/.auth/login/aad/callback
.Selezionare Registra.
Dopo la creazione della registrazione dell'app, copiare il valore di ID applicazione (client).
Nota
Per un'applicazione di Microsoft Store, usare invece il SID pacchetto come URI.
Dal riquadro di spostamento a sinistra, selezionare Autorizzazioni API>Aggiungi un’autorizzazione>Le mie API.
Selezionare la registrazione creata in precedenza per l'app del servizio app. Se la registrazione app non è visibile, accertarsi di aver aggiunto l'ambito user_impersonation nella registrazione app.
Selezionare user_impersonation in Autorizzazioni delegate, quindi selezionare Aggiungi autorizzazioni.
A questo punto, è stata configurata un'applicazione client nativa che può chiedere l’accesso all'app del Servizio app per conto di un utente.
Applicazione client daemon (chiamate da servizio a servizio)
In un’architettura a N livelli, l'applicazione client può acquisire un token per chiamare un'app del Servizio App o Funzione 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.
- Dal menu del portale, selezionare Microsoft Entra.
- Dal riquadro di spostamento a sinistra, selezionare Registrazioni app>Nuova registrazione.
- Nella pagina Registra un'applicazione immettere un valore per Nome per la registrazione dell'app.
- Per un'applicazione daemon, non è necessario un URI di reindirizzamento, quindi è possibile lasciare questo campo vuoto.
- Selezionare Registra.
- Dopo la creazione della registrazione dell'app, copiare il valore di ID applicazione (client).
- Dal riquadro di navigazione a sinistra, selezionare Certificati e segreti>Segreti client>Nuovo segreto client.
- Immettere una descrizione e una scadenza, quindi selezionare Aggiungi.
- Nel campo Valore, copiare il valore del segreto client. Una volta usciti da questa pagina, non sarà più possibile visualizzarlo.
È 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, quindi, può essere presentato all'app di destinazione usando l'intestazione dell'autorizzazione OAuth 2.0 standard e l'autenticazione del Servizio app convaliderà e userà il token come di consueto per indicare ora che il chiamante (in questo caso un'applicazione, non un utente) è autenticato.
Al momento, ciò consente a qualunque applicazione client nel tenant di Microsoft Entra di chiedere un token di accesso ed eseguire l'autenticazione all'app di destinazione. Se si desidera anche imporre l'autorizzazione per consentire solo determinate applicazioni client, è necessaria una configurazione aggiuntiva.
- 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.
- Nella registrazione app che rappresenta il client che deve essere autorizzato selezionare Autorizzazioni API>Aggiungi un'autorizzazione>API personali.
- Selezionare la registrazione app creata in precedenza. Se la registrazione app non è visualizzata, verificare di aver aggiunto un ruolo dell'app.
- In Autorizzazioni applicazione selezionare il ruolo dell'app creato in precedenza e quindi selezionare Aggiungi autorizzazioni.
- Selezionare Concedi consenso amministratore per autorizzare l'applicazione client a chiedere l'autorizzazione.
- 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'attestazioneroles
contenente i ruoli dell'app autorizzati per l'applicazione client. - All'interno del codice dell’app del Servizio app o Funzione di destinazione, ora è possibile accertarsi che i ruoli previsti siano presenti nel token. Questa operazione non viene eseguita dall'autenticazione 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 garantiscono una maggiore sicurezza del tenant e delle applicazioni:
- Configurare ogni app del Servizio app con una propria registrazione in Microsoft Entra.
- Assegnare a ogni app del servizio app le autorizzazioni specifiche e il consenso.
- 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.
Migrare a Microsoft Graph
Alcune app meno recenti possono essere state configurate anche con una dipendenza Azure AD Graph deprecata, che è pianificata per il ritiro completo. Ad esempio, il codice dell'app potrebbe aver chiamato Azure AD Graph per controllare l'appartenenza al gruppo come parte di un filtro di autorizzazione in una pipeline middleware. Le app devono passare a Microsoft Graph seguendo le indicazioni fornite da Microsoft Entra come parte del processo di deprecazione di Azure AD Graph. Seguendo queste istruzioni, potrebbe essere necessario apportare alcune modifiche alla configurazione dell'autenticazione del Servizio app. Dopo aver aggiunto le autorizzazioni di Microsoft Graph alla registrazione app, è possibile:
Aggiornare l'URL emittente per includere il suffisso "/v2.0" se non è già presente.
Rimuovere le richieste di autorizzazioni di Azure AD Graph dalla configurazione di accesso. Le proprietà da modificare dipendono da quale versione dell'API di gestione si sta usando:
- Se si usa l'API V1 (
/authsettings
), si trovano nell’arrayadditionalLoginParams
. - Se si usa l'API V2 (
/authsettingsV2
), si trovano nell’arrayloginParameters
.
Ad esempio, è necessario rimuovere qualunque riferimento a "https://graph.windows.net". È incluso il parametro
resource
(che non è supportato dall'endpoint "/v2.0") o qualunque ambito richiesto specificamente da Azure AD Graph.È necessario anche aggiornare la configurazione per chiedere le nuove autorizzazioni di Microsoft Graph configurate per la registrazione dell'applicazione. In molti casi, è possibile usare l’ambito predefinito per semplificare questa configurazione. A tale scopo, aggiungere un nuovo parametro di accesso
scope=openid profile email https://graph.microsoft.com/.default
.- Se si usa l'API V1 (
Con queste modifiche, quando l'autenticazione del Servizio app tenta l’accesso, non richiederà più le autorizzazioni per Azure AD Graph, ma otterrà un token per Microsoft Graph. Anche qualunque uso di tale token dal codice dell'applicazione deve essere aggiornato, in base alle indicazioni fornite da Microsoft Entra.