Share via


Considerazioni importanti e restrizioni per le 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 Utenti possono registrare le applicazioni è impostata su No nel pannello Utenti-Utente> Impostazioni nell'interfaccia di amministrazione di Microsoft Entra, tuttavia, non sarà possibile creare una registrazione dell'app o configurare le credenziali dell'identità federata. Trovare un amministratore per configurare le credenziali dell'identità federata per conto dell'utente, un utente nel ruolo Application Amministrazione istrator 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:

  • l'autorità emittente e l'oggetto sono le informazioni chiave necessarie per configurare la relazione di trust. La combinazione di issuer e subject 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 dell'autorità di certificazione e dell'oggetto delle credenziali dell'identità federata vengono controllati rispetto alle issuer attestazioni e subject fornite nel token esterno. Se il controllo di convalida supera, Microsoft Identity Platform rilascia un token di accesso al carico di lavoro software esterno.

  • issuer è l'URL del provider di identità esterno e deve corrispondere all'attestazione issuer del token esterno scambiato. Obbligatorio. Se l'attestazione issuer contiene spazi vuoti iniziali o finali nel valore, lo scambio di token viene bloccato. Questo campo ha un limite di caratteri di 600 caratteri.

  • subject è l'identificatore del carico di lavoro software esterno e deve corrispondere all'attestazione sub (subject) del token esterno scambiato. subject 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 caratteri di 600 caratteri.

    Importante

    I valori dell'impostazione dell'oggetto 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 dell'oggetto, 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 gruppi di destinatari elencano i gruppi di 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.

  • name è l'identificatore univoco per le credenziali di identità federate. Obbligatorio. Questo campo ha un limite di caratteri di 3-120 caratteri e deve essere descrittivo per l'URL. Sono supportati caratteri alfanumerici, trattini o caratteri di sottolineatura, il primo carattere deve essere solo alfanumerico.  Una volta creato, non è modificabile.

  • description è 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 nelle aree seguenti:

  • Asia orientale
  • Qatar centrale
  • Malesia meridionale
  • Italia settentrionale
  • Israele centrale

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 autorità emittenti supportati

Si applica a: applicazioni e identità gestite assegnate dall'utente

Solo le autorità emittenti che forniscono token firmati usando l'algoritmo RS256 sono supportate 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.

Le autorità emittenti di Microsoft Entra non sono supportate

Si applica a: applicazioni e identità gestite assegnate dall'utente

La creazione di una federazione tra due identità di Microsoft Entra dagli stessi tenant o diversi non è supportata. Quando si crea una credenziale di identità federata, la configurazione dell'autorità di certificazione (l'URL del provider di identità esterno) con i valori seguenti non è supportata:

  • *.login.microsoftonline.com
  • *.login.windows.net
  • *.login.microsoft.com
  • *.sts.windows.net

Anche se è possibile creare credenziali di identità federate con un'autorità emittente di Microsoft Entra, i tentativi di usarla per l'autorizzazione hanno esito negativo con errore AADSTS700222: AAD-issued tokens may not be used for federated identity flows.

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 scenderà.

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 identità federate multiped. È 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 ciclo, è 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 Criteri di Azure deny come nell'esempio di modello di Resource Manager 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 un limite di 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
Ottenere le richieste 30 10 0.5
Elencare per gruppo di risorse o Elencare per richieste di sottoscrizione 15 5 0.25
Eliminare le 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 Error message 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 di 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.