Sdílet prostřednictvím


Flexibilní přihlašovací údaje federované identity (Preview)

Flexibilní federované přihlašovací údaje identity jsou pokročilou funkcí Microsoft Entra Workload ID, která vylepšuje stávající model přihlašovacích údajů federované identity. Tento článek vysvětluje, jak tyto přihlašovací údaje fungují, jaké jsou jejich výhody a aktuální omezení.

Flexibilní federované identitní údaje umožňují použití jazyka omezených výrazů pro porovnávání příchozích deklarací subject a umožňují zahrnutí vlastních deklarací, což pomáhá snížit režijní náklady na správu a řešení limitů škálování ve federaci identit úloh. Pokud chcete zjednodušit ověřování pro externí úlohy pomocí Microsoft Entra, najdete v této příručce nezbytné přehledy a kroky pro použití této výkonné funkce.

Proč používat flexibilní přihlašovací údaje federované identity?

Aktuální chování přihlašovacích údajů federované identity v rámci federace identit úloh vyžaduje explicitní porovnání subject, issuera audience definovaných v přihlašovacích údajích federované identity proti subject, issuera audience, které jsou obsaženy v tokenu odeslaném do Microsoft Entra. V kombinaci s aktuálním limitem 20 přihlašovacích údajů federované identity pro danou aplikaci nebo spravovanou identitu přiřazenou uživatelem je možné rychle využít omezení škálování.

Flexibilní přihlašovací údaje federované identity rozšiřují stávající model přihlašovacích údajů federované identity tím, že umožňují použití omezujícího jazyka výrazů při porovnávání příchozích nároků subject. Také ji lze použít k rozšíření modelu autorizace identit federace nad rámec nároků subject, issuera audience tím, že umožňuje zahrnutí určitých povolených vlastních nároků do vašich přihlašovacích údajů federované identity.

Flexibilní přihlašovací údaje federované identity můžou pomoct snížit režijní náklady na správu při pokusu o ověření externích úloh pomocí Microsoft Entra a řešit limity škálování v implementacích federace identit úloh.

Jak fungují flexibilní přihlašovací údaje pro federovanou identitu?

Flexibilní přihlašovací údaje federované identity nemění základní funkce poskytnuté přihlašovacími údaji federované identity. Tyto vztahy důvěryhodnosti se stále používají k označení tokenu z externího zprostředkovatele identity, kterému má vaše aplikace důvěřovat. Místo toho rozšiřují možnost přihlašovacích údajů federované identity tím, že umožňují scénáře, které dříve vyžadovaly správu několika přihlašovacích údajů federované identity v rámci jednoho flexibilního přihlašovacích údajů federované identity. Mezi příklady patří:

  • Úložiště GitHub s různými pracovními postupy, z nichž každá běží v jiné větvi (nebo se používá napříč větvemi). Dříve se vyžadovalo jedinečné přihlašovací údaje federované identity pro každou větev, ve které se mohly pracovní postupy spouštět. S flexibilními přihlašovacími údaji založenými na federované identitě lze tento scénář spravovat pomocí jednotných přihlašovacích údajů federované identity.
  • Plány Terraform cloud run_phases, z nichž každý vyžaduje jedinečné přihlašovací údaje federované identity. S flexibilními přihlašovacími údaji federované identity to lze spravovat v rámci jednoho flexibilního přihlašovacího údaje.
  • Opakovaně použitelné pracovní postupy GitHub Actions, kde se dají použít zástupné znaky proti vlastnímu job_workflow_ref prohlášení GitHubu.

Poznámka

Podpora flexibilních přihlašovacích údajů federované identity je aktuálně poskytována pro porovnávání s tokeny vydanými GitHubem, GitLabem a Terraformem Cloud. Tato podpora existuje pouze pro přihlašovací údaje federované identity nakonfigurované pro objekty aplikace. Pomocí Microsoft Graphu nebo webu Azure Portal můžete vytvářet a spravovat jenom flexibilní přihlašovací údaje federované identity.

Flexibilní struktura jazykových pověření federované identity

Výraz flexibilních přihlašovacích údajů federované identity se skládá ze tří částí, vyhledávání deklarací identity, operátoru a srovnávacího výrazu. Rozpis jednotlivých částí najdete v následující tabulce:

Jméno Popis Příklad
Vyhledání nároků Vyhledávání nároků musí odpovídat vzoru claims[‘<claimName>’] claims['sub']
Operátor Část operátoru musí být pouze názvem operátoru, oddělená od vyhledávání nároku a komparandu jedinou mezerou. matches
Porovnávaná hodnota Srovnávací prvek obsahuje to, co máte v úmyslu porovnat s tvrzením uvedeným ve vyhledávání – musí být obsaženo v jednoduchých uvozovkách. 'repo:contoso/contoso-repo:ref:refs/heads/*'

Příklad výrazu přihlašovacích údajů pro flexibilní federovanou identitu by vypadal jako následující objekt JSON:

"claims['sub'] matches 'repo:contoso/contoso-repo:ref:refs/heads/*'."

Nastavení přihlašovacích údajů federované identity prostřednictvím Microsoft Graphu

Pro přizpůsobení flexibilní funkce přihlašovacích údajů federované identity se prostředek federatedIdentityCredentials rozšiřuje o novou vlastnost claimsMatchingExpression. Kromě toho je vlastnost subject nyní nullable. Vlastnosti claimsMatchingExpression a subject se vzájemně vylučují, takže v rámci přihlašovacích údajů federované identity nemůžete definovat obojí.

  • audiences: Cílová skupina, která se může objevit v externím tokenu. Toto pole je povinné a mělo by být nastaveno na api://AzureADTokenExchange pro ID Microsoft Entra. Říká, co má platforma Microsoft identity přijmout v nároku aud v příchozím tokenu. Tato hodnota představuje Microsoft Entra ID ve vašem externím zprostředkovateli identity a nemá žádnou pevnou hodnotu mezi zprostředkovateli identity – možná budete muset vytvořit novou registraci aplikace ve vašem zprostředkovatele identity, která bude sloužit jako cílová skupina tohoto tokenu.
  • issuer: Adresa URL externího zprostředkovatele identity. Musí odpovídat nároku vydavatele externího tokenu, který je vyměňován.
  • subject: Identifikátor úlohy externího softwaru v rámci zprostředkovatele externí identity. Podobně jako hodnota publika nemá žádný pevný formát, protože každý zprostředkovatel identity používá vlastní – někdy GUID, někdy identifikátor oddělený dvojtečkou, někdy libovolné řetězce. Hodnota se musí shodovat s deklarací identity sub v rámci tokenu předaného Microsoft Entra ID. Pokud je definován subject, musí být claimsMatchingExpression nastavena na hodnotu null.
  • name: Jedinečný řetězec pro identifikaci přihlašovacích údajů. Tato vlastnost je alternativní klíč a hodnotu lze použít k odkazování na přihlašovací údaje federované identity prostřednictvím operací GET a UPSERT.
  • claimsMatchingExpression: nový komplexní typ obsahující dvě vlastnosti, value a languageVersion. Hodnota se používá k definování výrazu a languageVersion slouží k definování verze jazyka FFL (Flexible Federated Identity Credential Expression Language). languageVersion by měl být vždy nastaven na hodnotu 1. Pokud je definován claimsMatchingExpression, musí být subject nastavena na hodnotu null.

Funkce flexibilního jazyka pro vyjádření přihlašovacích údajů federované identity

Flexibilní přihlašovací údaje federované identity v současné době podporují použití několika operátorů v rámci povolených vystavitelů. Jednoduché uvozovky se interpretují jako řídicí znaky v rámci flexibilního jazyka přihlašovacích údajů federované identity.

Operátor Popis Příklad
matches Umožňuje použití jednoznakových (označených jako ?) a víceznakových zástupných znaků (označených jako *) pro specifikovaný nárok. “claims[‘sub’] matches ‘repo:contoso/contoso-repo:ref:refs/heads/*’”
“claims[‘sub’] matches ‘repo:contoso/contoso-repo-*:ref:refs/heads/????’”
eq Používá se pro explicitní porovnávání se zadaným nárokem. “claims[‘sub’] eq ‘repo:contoso/contoso-repo:ref:refs/heads/main’”
and Logický operátor pro kombinování výrazů s více deklaracemi “claims[‘sub’] eq ‘repo:contoso/contoso-repo:ref:refs/heads/main’ and claims[‘job_workflow_ref’] matches ‘foo-org/bar-repo /.github/workflows/*@refs/heads/main’”

Adresy URL vystavitele, podporované nároky a operátory podle jednotlivých platforem

V závislosti na platformě, kterou používáte, musíte implementovat různé adresy URL vystavitele, deklarace a operátory. Pomocí následujících karet vyberte požadovanou platformu.

Podporované adresy URL vystavitele: https://token.actions.githubusercontent.com

Podporované nároky a operátory na každý nárok:

  • Nárok sub podporuje operátory eq a matches
  • Nárok job_workflow_ref podporuje operátory eq a matches

Poskytovatelé Azure CLI, Azure PowerShellu a Terraformu

Explicitní flexibilní podpora přihlašovacích údajů federované identity ještě v rámci zprostředkovatelů Azure CLI, Azure PowerShellu nebo Terraformu neexistuje. Pokud se pokusíte nakonfigurovat flexibilní přihlašovací údaje federované identity pomocí některého z těchto nástrojů, zobrazí se chyba. Pokud navíc nakonfigurujete flexibilní přihlašovací údaje federované identity prostřednictvím Microsoft Graphu nebo webu Azure Portal a pokusíte se o přečtení těchto flexibilních přihlašovacích údajů federované identity pomocí některého z těchto nástrojů, zobrazí se chyba.

Můžete použít metodu az rest v Azure CLI k odesílání požadavků na REST API pro vytváření a správu flexibilních přihlašovacích údajů federované identity.

az rest --method post \
    --url https://graph.microsoft.com/beta/applications/{objectId}/federatedIdentityCredentials
    --body "{'name': 'FlexFic1', 'issuer': 'https://token.actions.githubusercontent.com', 'audiences': ['api://AzureADTokenExchange'], 'claimsMatchingExpression': {'value': 'claims[\'sub\'] matches \'repo:contoso/contoso-org:ref:refs/heads/*\'', 'languageVersion': 1}}"