Viktiga överväganden och begränsningar för federerade identitetsuppgifter

Den här artikeln beskriver viktiga överväganden, begränsningar och begränsningar för federerade identitetsuppgifter i Microsoft Entra-appar och användartilldelade hanterade identiteter.

Mer information om scenarier som aktiveras med federerade identitetsuppgifter finns i översikten över arbetsbelastningsidentitetsfederation.

Allmänna överväganden för federerade identitetsautentiseringsuppgifter

Gäller för: program och användartilldelade hanterade identiteter

Alla som har behörighet att skapa en appregistrering och lägga till en hemlighet eller ett certifikat kan lägga till en federerad identitetsautentiseringsuppgift i en app. Om växeln Användare kan registrera program är inställd på Nejbladet Användare-användare> Inställningar i administrationscentret för Microsoft Entra kan du dock inte skapa en appregistrering eller konfigurera den federerade identitetsautentiseringsuppgiften. Hitta en administratör som konfigurerar de federerade identitetsautentiseringsuppgifterna åt dig, någon i rollerna Programadministratör eller Programägare.

Federerade identitetsuppgifter förbrukar inte objektkvoten för Microsoft Entra-klienttjänstens huvudnamn.

Högst 20 federerade identitetsuppgifter kan läggas till i ett program eller en användartilldelad hanterad identitet.

När du konfigurerar en federerad identitetsautentiseringsuppgift finns det flera viktiga uppgifter att tillhandahålla:

  • utfärdare och ämne är de viktigaste delarna av informationen som behövs för att konfigurera förtroenderelationen. Kombinationen av issuer och subject måste vara unik för appen. När den externa programvaruarbetsbelastningen begär Microsofts identitetsplattform att byta ut den externa token mot en åtkomsttoken, kontrolleras utfärdaren och ämnesvärdena för den federerade identitetsautentiseringsuppgiften mot och subject anspråken issuer som anges i den externa token. Om verifieringskontrollen godkänns utfärdar Microsofts identitetsplattform en åtkomsttoken till den externa programvaruarbetsbelastningen.

  • utfärdaren är URL:en för den externa identitetsprovidern och måste matcha anspråket issuer för den externa token som utbyts. Obligatoriska. Om anspråket issuer har inledande eller avslutande blanksteg i värdet blockeras tokenutbytet. Det här fältet har en teckengräns på 600 tecken.

  • ämne är identifieraren för den externa programvaruarbetsbelastningen och måste matcha (subject) anspråket sub för den externa token som utbyts. subjektet har inget fast format, eftersom varje IdP använder sitt eget – ibland ett GUID, ibland en kolonavgränsad identifierare, ibland godtyckliga strängar. Det här fältet har en teckengräns på 600 tecken.

    Viktigt!

    Ämnesinställningsvärdena måste exakt matcha konfigurationen i GitHub-arbetsflödeskonfigurationen. Annars tittar Microsofts identitetsplattform på den inkommande externa token och avvisar utbytet för en åtkomsttoken. Du får inget fel. Utbytet misslyckas utan fel.

    Viktigt!

    Om du av misstag lägger till felaktig extern arbetsbelastningsinformation i ämnesinställningen skapas den federerade identitetsautentiseringsuppgiften utan fel. Felet blir inte uppenbart förrän tokenutbytet misslyckas.

  • målgrupper visar de målgrupper som kan visas i den externa token. Obligatoriska. Du måste lägga till ett enstaka målgruppsvärde som har en gräns på 600 tecken. Det rekommenderade värdet är "api://AzureADTokenExchange". Det står vad Microsofts identitetsplattform måste acceptera i anspråket aud i den inkommande token.

  • name är den unika identifieraren för den federerade identitetsautentiseringsuppgiften. Obligatoriska. Det här fältet har en teckengräns på 3–120 tecken och måste vara URL-vänligt. Alfanumeriska tecken, bindestreck eller understreck stöds. Det första tecknet får endast vara alfanumeriskt.  Den är oföränderlig när den har skapats.

  • beskrivning är den användardefinierade beskrivningen av de federerade identitetsautentiseringsuppgifterna. Valfritt. Beskrivningen verifieras inte eller kontrolleras inte av Microsoft Entra-ID. Det här fältet har en gräns på 600 tecken.

Jokertecken stöds inte i något federerat egenskapsvärde för identitetsautentiseringsuppgifter.

Regioner som inte stöds (användartilldelade hanterade identiteter)

Gäller för: användartilldelade hanterade identiteter

Skapande av federerade identitetsautentiseringsuppgifter stöds för närvarande inte för användartilldelade hanterade identiteter som skapats i följande regioner:

  • Asien, östra
  • Qatar, centrala
  • Malaysia, södra
  • Italien, norra
  • Israel, centrala

Stöd för att skapa federerade identitetsautentiseringsuppgifter för användartilldelade identiteter i dessa regioner distribueras gradvis. Resurser i den här regionen som behöver använda federerade identitetsuppgifter kan göra det genom att använda en användartilldelad hanterad identitet som skapats i en region som stöds.

Signeringsalgoritmer och utfärdare som stöds

Gäller för: program och användartilldelade hanterade identiteter

Endast utfärdare som tillhandahåller token som signerats med RS256-algoritmen stöds för tokenutbyte med hjälp av arbetsbelastningsidentitetsfederation. Utbyte av token som signerats med andra algoritmer kan fungera, men har inte testats.

Microsoft Entra-utfärdare stöds inte

Gäller för: program och användartilldelade hanterade identiteter

Det går inte att skapa en federation mellan två Microsoft Entra-identiteter från samma eller olika klientorganisationer. När du skapar en federerad identitetsautentiseringsuppgift kan du inte konfigurera utfärdaren (URL:en för den externa identitetsprovidern) med följande värden:

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

Det är möjligt att skapa en federerad identitetsautentiseringsuppgift med en Microsoft Entra-utfärdare, men försök att använda den för auktorisering misslyckas med felet AADSTS700222: AAD-issued tokens may not be used for federated identity flows.

Tid för federerade ändringar av autentiseringsuppgifter att spridas

Gäller för: program och användartilldelade hanterade identiteter

Det tar tid innan den federerade identitetsautentiseringsuppgiften sprids i en region efter att den först har konfigurerats. En tokenbegäran som görs flera minuter efter att den federerade identitetsautentiseringsuppgiften har konfigurerats kan misslyckas eftersom cachen fylls i i katalogen med gamla data. Under den här tidsperioden kan en auktoriseringsbegäran misslyckas med felmeddelandet: AADSTS70021: No matching federated identity record found for presented assertion.

För att undvika det här problemet väntar du en kort stund efter att du har lagt till den federerade identitetsautentiseringsuppgiften innan du begär en token för att säkerställa att replikeringen slutförs över alla noder i auktoriseringstjänsten. Vi rekommenderar också att du lägger till logik för återförsök för tokenbegäranden. Återförsök bör göras för varje begäran även efter att en token har hämtats. Så småningom när data har replikerats helt kommer procentandelen fel att minska.

Samtidiga uppdateringar stöds inte (användartilldelade hanterade identiteter)

Gäller för: användartilldelade hanterade identiteter

Om du skapar flera federerade identitetsautentiseringsuppgifter under samma användartilldelade hanterade identitet utlöses samtidighetsidentifieringslogik, vilket gör att begäranden misslyckas med HTTP-statuskod med 409-konflikt.

Terraform-providern för Azure (Resource Manager) version 3.40.0 introducerar en uppdatering som skapar flera federerade identitetsuppgifter sekventiellt i stället för samtidigt. Tidigare versioner än 3.40.0 kan orsaka fel i pipelines när federerade federerade identiteter skapas. Vi rekommenderar att du använder Terraform-providern för Azure (Resource Manager) v3.40.0 eller senare så att flera federerade identitetsuppgifter skapas sekventiellt.

När du använder automation eller Azure Resource Manager-mallar (ARM-mallar) för att skapa federerade identitetsuppgifter under samma överordnade identitet skapar du de federerade autentiseringsuppgifterna sekventiellt. Federerade identitetsautentiseringsuppgifter under olika hanterade identiteter kan skapas parallellt utan några begränsningar.

Om federerade identitetsuppgifter etableras i en loop kan du etablera dem seriellt genom att ange "mode": "serial".

Du kan också etablera flera nya federerade identitetsuppgifter sekventiellt med hjälp av egenskapen dependsOn . I följande Exempel på Azure Resource Manager-mall (ARM-mall) skapas tre nya federerade identitetsuppgifter sekventiellt på en användartilldelad hanterad identitet med hjälp av egenskapen 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" 
                ] 
            } 
        } 
    ] 
} 

Azure-policy

Gäller för: program och användartilldelade hanterade identiteter

Det är möjligt att använda en neka Azure Policy som i följande ARM-mallexempel:

{ 
"policyRule": { 
            "if": { 
                "field": "type", 
                "equals": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials" 
            }, 
            "then": { 
                "effect": "deny" 
            } 
        } 
}

Begränsningsgränser

Gäller för: användartilldelade hanterade identiteter

I följande tabell beskrivs begränsningar för begäranden till rest-API:et för användartilldelade hanterade identiteter. Om du överskrider en begränsningsgräns får du ett HTTP 429-fel.

Åtgärd Begäranden per sekund per Microsoft Entra-klientorganisation Begäranden per sekund per prenumeration Begäranden per sekund per resurs
Skapa eller uppdatera begäranden 10 2 0.25
Hämta begäranden 30 10 0,5
Lista efter resursgrupp eller Lista efter prenumerationsbegäranden 15 5 0.25
Ta bort begäranden 10 2 0.25

Fel

Gäller för: program och användartilldelade hanterade identiteter

Följande felkoder kan returneras när du skapar, uppdaterar, hämtar, listar eller tar bort federerade identitetsuppgifter.

HTTP-kod Felmeddelande Kommentarer
405 Begärandeformatet var oväntat: Stöd för federerade identitetsautentiseringsuppgifter har inte aktiverats. Federerade identitetsautentiseringsuppgifter är inte aktiverade i den här regionen. Se "Regioner som stöds för närvarande".
400 Federerade identitetsuppgifter måste ha exakt en målgrupp. För närvarande har federerade identitetsuppgifter stöd för en enda målgrupp "api://AzureADTokenExchange".
400 Federerade identitetsautentiseringsuppgifter från HTTP-brödtexten har tomma egenskaper Alla egenskaper för federerade identitetsautentiseringsuppgifter är obligatoriska.
400 Det federerade identitetsautentiseringsnamnet {ficName} är ogiltigt. Alfanumerisk, bindestreck, understreck, högst 3–120 symboler. Första symbolen är alfanumerisk.
404 Den överordnade användartilldelade identiteten finns inte. Kontrollera användartilldelat identitetsnamn i resurssökvägen för federerade identitetsuppgifter.
400 Utfärdaren och ämneskombinationen finns redan för den här hanterade identiteten. Det här är en begränsning. Visa en lista över alla federerade identitetsautentiseringsuppgifter som är associerade med den användartilldelade identiteten för att hitta befintliga federerade identitetsautentiseringsuppgifter.
409 Konflikt Samtidig skrivbegäran till federerade identitetsautentiseringsresurser under samma användartilldelade identitet har nekats.