Configurare un provider di attestazioni personalizzato per un evento di rilascio di token
Questo articolo descrive come configurare un provider di attestazioni personalizzato per un evento di avvio del rilascio di token. Usando un'API REST di Funzioni di Azure esistente, si registrerà un'estensione per l'autenticazione personalizzata e si aggiungeranno attributi da analizzare dall'API REST. Per testare l'estensione per l'autenticazione personalizzata, si registrerà un'applicazione OpenID Connect di esempio per ottenere un token e visualizzare le attestazioni.
Prerequisiti
- Una sottoscrizione di Azure con la possibilità di creare Funzioni di Azure. Se non si ha già un account Azure, è possibile iscriversi a una versione di prova gratuita oppure usare i vantaggi della Sottoscrizione di Visual Studio quando si crea un account.
- Funzione di attivazione HTTP configurata per un evento di rilascio di token distribuito in Funzioni di Azure. Se non è disponibile, seguire la procedura descritta in Creare un'API REST per un evento di avvio del rilascio di token in Funzioni di Azure.
- Conoscenza di base dei concetti trattati in Panoramica delle estensioni per l'autenticazione personalizzata.
- Tenant di Microsoft Entra ID. È possibile usare un tenant del cliente o del personale per questa guida pratica.
- Per i tenant esterni, usare un flusso utente di iscrizione e di accesso.
Passaggio 1: Registrare un'estensione per l'autenticazione personalizzata
A questo punto si configurerà un'estensione per l'autenticazione personalizzata, che verrà usata da Microsoft Entra ID per chiamare la funzione di Azure. L'estensione per l'autenticazione personalizzata contiene informazioni sull'endpoint dell'API REST, sulle attestazioni analizzate dall'API REST e su come eseguire l'autenticazione con l'API REST. Seguire questa procedura per registrare un'estensione per l'autenticazione personalizzata nell'app Funzioni di Azure.
Nota
È possibile avere un massimo di 100 criteri di estensione personalizzati.
Registrare un'estensione per l'autenticazione personalizzata
- Accedere al portale di Azure almeno come amministratore di applicazioni e amministratore dell'autenticazione.
- Cercare e selezionare Microsoft Entra ID, quindi selezionare Applicazioni aziendali.
- Selezionare Estensioni di autenticazione personalizzate e quindi selezionare Crea un'estensione personalizzata.
- In Informazioni di base selezionare il tipo di evento TokenIssuanceStart e selezionare Avanti.
- In Configurazione endpoint immettere le proprietà seguenti:
- Nome: un nome per l'estensione di autenticazione personalizzata. Ad esempio, Evento di rilascio del token.
- URL di destinazione:
{Function_Url}
dell'URL di Funzioni di Azure. Passare alla pagina Panoramica dell'app Funzioni di Azure e quindi selezionare la funzione creata. Nella pagina Panoramica delle funzioni selezionare Recupera URL funzione e usare l'icona di copia per copiare l'URL customauthenticationextension_extension (chiave di sistema). - Descrizione: descrizione delle estensioni per l'autenticazione personalizzate.
- Selezionare Avanti.
- In Autenticazione API selezionare l'opzione Crea nuova registrazione app per creare una registrazione dell'app che rappresenta l'app per le funzioni.
- Assegnare all'app un nome, ad esempio API degli eventi di autenticazione di Funzioni di Azure.
- Selezionare Avanti.
- In Attestazioni immettere gli attributi previsti per l'analisi dell'estensione per l'autenticazione personalizzata da parte dell'API REST e che verranno uniti nel token. Aggiungere le attestazioni seguenti:
- dateOfBirth
- customRoles
- apiVersion
- correlationId
- Selezionare Avanti, quindi Crea, che registra l'estensione di autenticazione personalizzata e la registrazione dell'applicazione associata.
- Prendere nota dell'ID app in Autenticazione API, necessario per configurare l'autenticazione per la funzione di Azure nell'app Funzioni di Azure.
1.2 Concedere il consenso amministratore
Dopo aver creato l'estensione di autenticazione personalizzata, è necessario concedere le autorizzazioni all'API. L'estensione di autenticazione personalizzata usa client_credentials
per eseguire l'autenticazione all'app per le funzioni di Azure usando l'autorizzazione Receive custom authentication extension HTTP requests
.
Aprire la pagina Panoramica della nuova estensione di autenticazione personalizzata. Prendere nota dell'ID app in Autenticazione API, perché sarà necessario quando si aggiunge un provider di identità.
In Autenticazione API selezionare Concedi autorizzazione.
Viene aperta una nuova finestra e, dopo l'accesso, vengono richieste le autorizzazioni per ricevere richieste HTTP dell'estensione di autenticazione personalizzata. In questo modo l'estensione di autenticazione personalizzata può eseguire l'autenticazione all'API. Selezionare Accetto.
Passaggio 2: Configurare un'app OpenID Connect per ricevere token arricchiti
Per ottenere un token e testare l'estensione di autenticazione personalizzata, è possibile usare l'app https://jwt.ms. Si tratta di un'applicazione Web di proprietà di Microsoft che visualizza il contenuto decodificato di un token (il contenuto del token non lascia mai il browser).
2.1 Registrare un'applicazione Web di test
Eseguire questi passaggi per registrare l'applicazione Web jwt.ms:
Nella pagina Home del portale di Azure selezionare Microsoft Entra ID.
Selezionare Registrazioni app>Nuova registrazione.
Immettere un nome per l'applicazione. Ad esempio, Applicazione di test personale.
In Tipi di account supportati selezionare Account solo in questa directory organizzativa.
Nell'elenco a discesa Seleziona una piattaforma in URI di reindirizzamento, selezionare Web e quindi immettere
https://jwt.ms
nella casella di testo dell'URL.Selezionare Registra per completare la registrazione dell'app.
Copiare l'ID applicazione (client) dalla pagina Panoramica di registrazione dell'app. L'ID app viene definito come
{App_to_enrich_ID}
nei passaggi successivi. In Microsoft Graph vi si fa riferimento tramite la proprietà appId.
2.2 Abilitare il flusso implicito
L'applicazione di test jwt.ms usa il flusso implicito. Abilitare il flusso implicito nella registrazione dell'applicazione test personale:
- In Gestisci selezionare Autenticazione.
- In Concessione implicita e flussi ibridi selezionare la casella di controllo token ID (usati per i flussi impliciti e ibridi).
- Seleziona Salva.
2.3 Abilitare l'app per i criteri di mapping delle attestazioni
Un criterio di mapping delle attestazioni viene usato per selezionare gli attributi restituiti dall'estensione di autenticazione personalizzata di cui viene eseguito il mapping nel token. Per consentire l'aumento dei token, è necessario abilitare in modo esplicito la registrazione dell'applicazione per accettare attestazioni mappate:
- Nella registrazione dell'applicazione test personale, in Gestisci selezionare Manifesto.
- Nel manifesto individuare l'
acceptMappedClaims
attributo e impostare il valore sutrue
. - Imposta
accessTokenAcceptedVersion
su2
. - Seleziona Salva per salvare le modifiche.
Il frammento di JSON seguente illustra come configurare queste proprietà.
{
"id": "22222222-0000-0000-0000-000000000000",
"acceptMappedClaims": true,
"accessTokenAcceptedVersion": 2,
...
}
Avviso
Non impostare la proprietà acceptMappedClaims
su true
per le app multi-tenant in qunato ciò può consentire a malintenzionati di creare criteri di mapping delle attestazioni per l'app. Invece Configurare una chiave di firma personalizzata.
Continuare con il passaggio successivo, Assegnare un provider di attestazioni personalizzato all'app.
Passaggio 3: Assegnare un provider di attestazioni personalizzato all'app
Per emettere token con attestazioni in ingresso dall'estensione di autenticazione personalizzata, è necessario assegnare un provider di attestazioni personalizzato all'applicazione. Questo è basato sui destinatari del token, quindi il provider deve essere assegnato all'applicazione client per ricevere attestazioni in un token ID e all'applicazione della risorsa per ricevere attestazioni in un token di accesso. Il provider di attestazioni personalizzate si basa sull'estensione di autenticazione personalizzata configurata con il listener dell'evento di avvio del rilascio del token. È possibile scegliere se tutti, o un sottoinsieme, dal provider di attestazioni personalizzato vengono mappati nel token.
Nota
È possibile creare solo 250 assegnazioni univoche tra applicazioni ed estensioni personalizzate. Se si vuole applicare la stessa chiamata di estensione personalizzata a più app, è consigliabile usare l'API Microsoft Graph authenticationEventListeners per creare listener per più applicazioni. Questo non è supportato nel portale di Azure.
Seguire questa procedura per connettere l'applicazione test personale con l'estensione di autenticazione personalizzata:
Per assegnare l'estensione di autenticazione personalizzata come origine del provider di attestazioni personalizzato;
Nella pagina Home del portale di Azure selezionare Microsoft Entra ID.
Selezionare Applicazioni aziendali e quindi in Gestisci seleziona Tutte le applicazioni. Trovare e selezionare applicazione test personale dall'elenco.
Nella pagina Panoramica dell'applicazione test personale passare a Gestisci e selezionare Single Sign-On.
In Attributi e attestazioni selezionare Modifica.
Espandere il menuImpostazioni avanzate.
Accanto a Provider di attestazioni personalizzate selezionare Configura.
Espandere la casella a discesaProvider di attestazioni personalizzate e selezionare l'evento di rilascio del token creato in precedenza.
Seleziona Salva.
Assegnare quindi gli attributi del provider di attestazioni personalizzate, che devono essere rilasciati nel token come attestazioni:
Selezionare Aggiungi nuova attestazione per aggiungere una nuova attestazione. Specificare un nome per l'attestazione da rilasciare, ad esempio dateOfBirth.
In Origine seleziona Attributo e scegli customClaimsProvider.dateOfBirth nella casella a discesa Attributo di origine.
Seleziona Salva.
Ripeti questo processo per aggiungere gli attributi customClaimsProvider.customRoles, customClaimsProvider.apiVersion e customClaimsProvider.correlationId e il nome corrispondente. È consigliabile associare il nome dell'attestazione al nome dell'attributo.
Passaggio 4: Proteggere la funzione di Azure
L'estensione di autenticazione personalizzata di Microsoft Entra usa il flusso da server a server per ottenere un token di accesso inviato nell'intestazione Authorization
HTTP alla funzione di Azure. Quando si pubblica la funzione in Azure, in particolare in un ambiente di produzione, è necessario convalidare il token inviato nell'intestazione dell'autorizzazione.
Per proteggere la funzione di Azure, seguire questa procedura di integrazione dell'autenticazione di Microsoft Entra, in modo da convalidare i token in ingresso con la registrazione dell'applicazione API degli eventi di autenticazione di Funzioni di Azure. Scegliere una delle schede seguenti in base al tipo di tenant.
Nota
Se l'app per le funzioni di Azure è ospitata in un tenant di Azure diverso rispetto al tenant in cui è registrata l'estensione di autenticazione personalizzata, scegliere la scheda OpenID Connect.
4.1 Uso del provider di identità Microsoft Entra
Usare la procedura seguente per aggiungere Microsoft Entra come provider di identità all'app per le funzioni di Azure.
Nel portale di Azure trovare e selezionare l'app per le funzioni pubblicata in precedenza.
In Impostazioni selezionare Autenticazione.
Selezionare Aggiungi provider di identità.
Selezionare Microsoft come provider di identità.
Selezionare Personale come tipo di tenant.
In Registrazione app selezionare Seleziona una registrazione app esistente in questa directory per il tipo di registrazione app e selezionare la registrazione app API degli eventi di autenticazione di Funzioni di Azure creata in precedenza durante la registrazione del provider di attestazioni personalizzate.
Immettere l'URL dell'emittente seguente,
https://login.microsoftonline.com/{tenantId}/v2.0
, dove{tenantId}
è l'ID tenant del tenant del personale.In Requisiti dell'applicazione client selezionare Consenti richieste da applicazioni client specifiche e immettere
99045fe1-7639-4a75-9d4a-577b6ca3810f
.In Requisito tenant selezionare Consenti richieste da tenant specifici e immettere l'ID tenant del personale.
In Richieste non autenticate selezionare HTTP 401 Non autorizzato come provider di identità.
Deselezionare l'opzione Archivio token.
Selezionare Aggiungi per aggiungere l'autenticazione alla funzione di Azure.
4.2 Uso del provider di identità OpenID Connect
Se è stato configurato il provider di identità Microsoft, ignorare questo passaggio. In caso contrario, se la funzione di Azure è ospitata in un tenant diverso rispetto al tenant in cui è registrata l'estensione di autenticazione personalizzata, seguire questa procedura per proteggere la funzione:
Creare un segreto client
- Nella pagina Home del portale di Azure selezionare Microsoft Entra ID>Registrazioni app.
- Selezionare la registrazione app API degli eventi di autenticazione di Funzioni di Azure creata in precedenza.
- Selezionare Certificati e segreti>Segreti client>Nuovo segreto client.
- Selezionare una scadenza per il segreto o specificare una durata personalizzata, aggiungere una descrizione e selezionare Aggiungi.
- Registrare il valore del segreto da usare nel codice dell'applicazione client. Questo valore del segreto non viene mai più visualizzato dopo aver lasciato questa pagina.
Aggiungere il provider di identità OpenID Connect all'app per le funzioni di Azure.
Trovare e selezionare l'app per le funzioni pubblicata in precedenza.
In Impostazioni selezionare Autenticazione.
Selezionare Aggiungi provider di identità.
Selezionare OpenID Connect come provider di identità.
Specificare un nome, ad esempio Microsoft Entra ID Contoso.
Nella voce metadati immettere l'URL seguente per l'URL del documento. Sostituire
{tenantId}
con l'ID tenant di Microsoft Entra.https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration
In Registrazione app immettere l'ID applicazione (ID client) della registrazione app API degli eventi di autenticazione di Funzioni di Azure creata in precedenza.
Tornare alla funzione di Azure e, in Registrazione app, immettere il segreto client.
Deselezionare l'opzione Archivio token.
Selezionare Aggiungi per aggiungere il provider di identità OpenID Connect.
Passaggio 5: Testare l'applicazione
Per testare il provider di attestazioni personalizzate, seguire questa procedura:
Aprire un nuovo browser privato e accedere tramite l'URL seguente.
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize?client_id={App_to_enrich_ID}&response_type=id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
Sostituire
{tenantId}
con l'ID tenant, il nome del tenant o uno dei nomi di dominio verificati. Ad esempio:contoso.onmicrosoft.com
.Sostituire
{App_to_enrich_ID}
con l'ID client dell'applicazione di test personale.Dopo l'accesso, verrà visualizzato il token decodificato all'indirizzo
https://jwt.ms
. Verifica che le attestazioni della funzione di Azure vengano presentate nel token decodificato, ad esempio,dateOfBirth
.