Considerazioni importanti e restrizioni per credenziali di identità federate
Questo articolo descrive importanti considerazioni, restrizioni e limitazioni per le credenziali di identità federate nelle app Microsoft Entra e nelle identità gestite assegnate dall'utente.
Per altre informazioni sugli scenari abilitati dalle credenziali di identità federate, vedere Panoramica della federazione delle identità del carico di lavoro.
Considerazioni generali sulle credenziali delle identità federate
Si applica a: applicazioni e identità gestite assegnate dall'utente
Chiunque disponga delle autorizzazioni per creare una registrazione dell'app e aggiungere un segreto o un certificato può aggiungere credenziali di identità federate a un'app. Se l'opzione Gli utenti possono registrare le applicazioni è impostata su No nel pannello Utenti >Impostazioni utente in Interfaccia di amministrazione di Microsoft Entra, tuttavia, non sarà possibile creare una registrazione dell'app o configurare le credenziali di identità federate. Trovare un amministratore per configurare le credenziali di identità federate per conto dell'utente, un utente nei ruoli Amministratore applicazione o Proprietario applicazione.
Le credenziali di identità federate non utilizzano la quota dell'oggetto dell'entità servizio tenant di Microsoft Entra.
È possibile aggiungere al massimo 20 credenziali di identità federate a un'applicazione o a un'identità gestita assegnata dall'utente.
Quando si configura una credenziale di identità federata, sono disponibili diverse informazioni importanti da fornire:
emittente e soggetto sono le informazioni chiave necessarie per configurare la relazione di trust. La combinazione di
issuer
esubject
deve essere univoca nell'app. Quando il carico di lavoro del software esterno richiede a Microsoft Identity Platform di scambiare il token esterno per un token di accesso, i valori di emittente e soggetto delle credenziali dell'identità federata vengono controllati rispetto alle attestazioniissuer
esubject
fornite nel token esterno. Se il controllo di convalida viene superato, Microsoft Identity Platform rilascia un token di accesso per il carico di lavoro software esterno.emittente è l'URL del provider di identità esterno e deve corrispondere all'attestazione
issuer
del token esterno scambiato. Obbligatorio. Se l'attestazioneissuer
contiene spazi vuoti iniziali o finali nel valore, lo scambio di token viene bloccato. Questo campo ha un limite di 600 caratteri.soggetto è l'identificatore del carico di lavoro software esterno e deve corrispondere all'attestazione
sub
(subject
) del token esterno scambiato. soggetto non ha un formato fisso, perché ogni IdP usa il proprio: a volte un GUID, a volte un identificatore delimitato da due punti, talvolta stringhe arbitrarie. Questo campo ha un limite di 600 caratteri.Importante
I valori dell'impostazione soggetto devono corrispondere esattamente alla configurazione nella configurazione del flusso di lavoro GitHub. In caso contrario, Microsoft Identity Platform esaminerà il token esterno in ingresso e rifiuterà lo scambio per un token di accesso. Non verrà visualizzato un errore, lo scambio non riesce senza errori.
Importante
Se si aggiungono accidentalmente le informazioni errate sul carico di lavoro esterno nell'impostazione soggetto, la credenziale dell'identità federata viene creata correttamente senza errori. L'errore non diventa evidente fino a quando lo scambio di token non riesce.
I destinatari elencano i destinatari che possono essere visualizzati nel token esterno. Obbligatorio. È necessario aggiungere un singolo valore del gruppo di destinatari, con un limite di 600 caratteri. Il valore consigliato è "api://AzureADTokenExchange". Indica ciò che Microsoft Identity Platform deve accettare nell'attestazione
aud
nel token in ingresso.nome è l'identificatore univoco per le credenziali di identità federate. Obbligatorio. Questo campo ha un limite di 3-120 caratteri e deve essere facile da usare per l'URL. Sono supportati caratteri alfanumerici, trattini o caratteri di sottolineatura, il primo carattere deve essere solo alfanumerico. Una volta creato, non è modificabile.
descrizione è la descrizione fornita dall'utente della credenziale di identità federata. Facoltativo. La descrizione non viene convalidata o controllata da Microsoft Entra ID. Questo campo ha un limite di 600 caratteri.
I caratteri jolly non sono supportati in alcun valore della proprietà delle credenziali dell'identità federata.
Aree non supportate (identità gestite assegnate dall'utente)
Si applica a: identità gestite assegnate dall'utente
La creazione di credenziali di identità federate non è attualmente supportata nelle identità gestite assegnate dall'utente create in queste aree:
- Malaysia meridionale
- Spagna centrale
- Taiwan settentrionale
- Taiwan Nord-Ovest
Il supporto per la creazione di credenziali di identità federate nelle identità assegnate dall'utente in queste aree verrà gradualmente implementato. Le risorse in questa area che devono usare le credenziali di identità federate possono farlo sfruttando un'identità gestita assegnata dall'utente creata in un'area supportata.
Algoritmi di firma e emittenti supportati
Si applica a: applicazioni e identità gestite assegnate dall'utente
Solo gli emittenti che forniscono token firmati usando l'algoritmo RS256 sono supportati per lo scambio di token tramite la federazione dell'identità del carico di lavoro. Lo scambio di token firmati con altri algoritmi può funzionare, ma non è stato testato.
Tempo per la propagazione delle modifiche delle credenziali federate
Si applica a: applicazioni e identità gestite assegnate dall'utente
La propagazione delle credenziali dell'identità federata in un'area dopo la configurazione iniziale richiede tempo. Una richiesta di token effettuata alcuni minuti dopo la configurazione delle credenziali dell'identità federata potrebbe non riuscire perché la cache viene popolata nella directory con dati obsoleti. Durante questo intervallo di tempo, una richiesta di autorizzazione potrebbe non riuscire con un messaggio di errore: AADSTS70021: No matching federated identity record found for presented assertion.
Per evitare questo problema, attendere un breve periodo di tempo dopo aver aggiunto le credenziali dell'identità federata prima di richiedere un token per assicurarsi che la replica venga completata in tutti i nodi del servizio di autorizzazione. È anche consigliabile aggiungere la logica di ripetizione dei tentativi per le richieste di token. I tentativi devono essere eseguiti per ogni richiesta anche dopo che un token è stato ottenuto correttamente. Alla fine, dopo che i dati vengono replicati completamente, la percentuale di errori si ridurrà.
Gli aggiornamenti simultanei non sono supportati (identità gestite assegnate dall'utente)
Si applica a: identità gestite assegnate dall'utente
La creazione di più credenziali di identità federate con la stessa identità gestita assegnata dall'utente attiva simultaneamente la logica di rilevamento della concorrenza, causando l'esito negativo delle richieste con codice di stato HTTP a 409 conflitti.
Terraform Provider per Azure (Resource Manager) versione 3.40.0 introduce un aggiornamento che crea più credenziali di identità federate in modo sequenziale anziché simultaneamente. Le versioni precedenti alla 3.40.0 possono causare errori nelle pipeline quando vengono create più identità federate. È consigliabile usare Terraform Provider per Azure (Resource Manager) v3.40.0 o versione successiva in modo che vengano create in sequenza più credenziali di identità federate.
Quando si usa l'automazione o i modelli di Azure Resource Manager per creare credenziali di identità federate con la stessa identità padre, creare le credenziali federate in sequenza. Le credenziali di identità federate in identità gestite diverse possono essere create in parallelo senza restrizioni.
Se viene effettuato il provisioning delle credenziali di identità federate in un loop, è possibile eseguirne il provisioning in modo seriale impostando "mode": "serial".
È anche possibile effettuare il provisioning di più nuove credenziali di identità federate in sequenza usando la proprietà dependsOn. L'esempio di modello di Azure Resource Manager seguente crea tre nuove credenziali di identità federate in sequenza in un'identità gestita assegnata dall'utente usando la proprietà dependsOn:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"userAssignedIdentities_parent_uami_name": {
"defaultValue": "parent_uami",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"apiVersion": "2022-01-31-preview",
"name": "[parameters('userAssignedIdentities_parent_uami_name')]",
"location": "eastus"
},
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials",
"apiVersion": "2022-01-31-preview",
"name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic01')]",
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]"
],
"properties": {
"issuer": "https://kubernetes-oauth.azure.com",
"subject": "fic01",
"audiences": [
"api://AzureADTokenExchange"
]
}
},
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials",
"apiVersion": "2022-01-31-preview",
"name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic02')]",
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]",
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials', parameters('userAssignedIdentities_parent_uami_name'), 'fic01')]"
],
"properties": {
"issuer": "https://kubernetes-oauth.azure.com",
"subject": "fic02",
"audiences": [
"api://AzureADTokenExchange"
]
}
},
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials",
"apiVersion": "2022-01-31-preview",
"name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic03')]",
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]",
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials', parameters('userAssignedIdentities_parent_uami_name'), 'fic02')]"
],
"properties": {
"issuer": "https://kubernetes-oauth.azure.com",
"subject": "fic03",
"audiences": [
"api://AzureADTokenExchange"
]
}
}
]
}
Criteri di Azure
Si applica a: applicazioni e identità gestite assegnate dall'utente
È possibile usare un Criterio di Azure di negazione come nell'esempio di modello di ARM seguente:
{
"policyRule": {
"if": {
"field": "type",
"equals": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials"
},
"then": {
"effect": "deny"
}
}
}
Limitazioni
Si applica a: identità gestite assegnate dall'utente
La tabella seguente descrive i limiti delle richieste alle API REST delle identità gestite assegnate dall'utente. Se si supera una limitazione, viene visualizzato un errore HTTP 429.
Operazione | Richieste al secondo per ogni tenant di Microsoft Entra | Richieste al secondo per sottoscrizione | Richieste al secondo per risorsa |
---|---|---|---|
Creare o aggiornare le richieste | 10 | 2 | 0,25 |
Ottieni richieste | 30 | 10 | 0,5 |
Elencare per gruppo di risorse o Elencare per richieste di sottoscrizione | 15 | 5 | 0,25 |
Elimina richieste | 10 | 2 | 0,25 |
Errori
Si applica a: applicazioni e identità gestite assegnate dall'utente
Durante la creazione, l'aggiornamento, il recupero, l'inserzione o l'eliminazione delle credenziali di identità federate possono essere restituiti i codici di errore seguenti.
Codice HTTP | Messaggio d'errore | Commenti |
---|---|---|
405 | Formato di richiesta imprevisto: il supporto per le credenziali di identità federate non è abilitato. | Le credenziali di identità federate non sono abilitate in questa area. Fare riferimento a "Aree attualmente supportate". |
400 | Le credenziali di identità federate devono avere esattamente un gruppo di destinatari. | Attualmente, le credenziali di identità federate supportano un singolo gruppo di destinatari "api://AzureADTokenExchange". |
400 | Le credenziali delle identità federate dal corpo HTTP hanno proprietà vuote | Tutte le proprietà delle credenziali delle identità federate sono obbligatorie. |
400 | Nome credenziale identità federata '{ficName}' non valido. | Alfanumerico, trattino, sottolineatura, non più di 3-120 simboli. Il primo simbolo è alfanumerico. |
404 | L'identità assegnata dall'utente padre non esiste. | Controllare il nome identità assegnato dall'utente nel percorso della risorsa delle credenziali di identità federate. |
400 | La combinazione di autorità di certificazione e soggetto esiste già per questa identità gestita. | Si tratta di un vincolo. Elencare tutte le credenziali di identità federate associate all'identità assegnata dall'utente per trovare le credenziali dell'identità federata esistenti. |
409 | Conflitto | La richiesta di scrittura simultanea alle risorse credenziali di identità federate con la stessa identità assegnata dall'utente è stata negata. |