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
, issuer
a audience
definovaných v přihlašovacích údajích federované identity proti subject
, issuer
a 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
, issuer
a 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 naapi://AzureADTokenExchange
pro ID Microsoft Entra. Říká, co má platforma Microsoft identity přijmout v nárokuaud
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í identitysub
v rámci tokenu předaného Microsoft Entra ID. Pokud je definovánsubject
, musí býtclaimsMatchingExpression
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
alanguageVersion
. Hodnota se používá k definování výrazu alanguageVersion
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ánclaimsMatchingExpression
, musí býtsubject
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átoryeq
amatches
- Nárok
job_workflow_ref
podporuje operátoryeq
amatches
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}}"
Související obsah
- Implementovat flexibilní pověření federované identity
- Konfigurace spravované identity přiřazené uživatelem tak, aby důvěřovala externímu zprostředkovateli identity
- Jak vytvořit, odstranit, získat nebo aktualizovat přihlašovací údaje federované identity při registraci aplikace.
- Další informace o konfiguraci pracovního postupu GitHub Actions pro získání přístupového tokenu od zprostředkovatele identity Microsoftu a přístupu k prostředkům chráněným Microsoft Entra najdete v dokumentaci k
GitHub Actions. - Přečtěte si o formátu asertů .