Konfigurace aplikace k důvěřování externímu poskytovateli identity
Tento článek popisuje, jak spravovat přihlašovací údaje federované identity v aplikaci v Microsoft Entra ID. Přihlašovací údaje federované identity vytvoří vztah důvěryhodnosti mezi aplikací a externím zprostředkovatelem identity (IDP).
Potom můžete nakonfigurovat úlohu externího softwaru, která má vyměnit token z externího zprostředkovatele identity pro přístupový token z platformy Microsoft Identity Platform. Externí úloha má přístup k prostředkům chráněným Microsoft Entra bez nutnosti správy tajemství (v podporovaných scénářích). Další informace o pracovním postupu výměny tokenů si přečtěte v tématu o federaci identit úloh.
V tomto článku se dozvíte, jak vytvořit, vypsat a odstranit přihlašovací údaje federované identity v aplikaci v Microsoft Entra ID.
Důležité aspekty a omezení
Pro vytvoření, aktualizaci nebo odstranění pověření federované identity musí účet, který akci provádí, mít roli Správce aplikací, Vývojář aplikací, Správce cloudových aplikacínebo Vlastník aplikace. Je vyžadováno oprávnění microsoft.directory/applications/credentials/update k aktualizaci přihlašovacích údajů federované identity.
Do aplikace nebo spravované identity přiřazené uživatelem je možné přidat maximálně 20 přihlašovacích údajů federované identity.
Při konfiguraci přihlašovacích údajů federované identity je k dispozici několik důležitých informací:
vydavatel a subjekt jsou klíčové informace potřebné k nastavení důvěry. Kombinace
issuer
asubject
musí být v aplikaci jedinečná. Když úloha externího softwaru požádá platformu Microsoft identity o výměnu externího tokenu za přístupový token, hodnoty vystavitelea předmětu a se porovnávají s tvrdzenímifederovaných identitních přihlašovacích údajů a poskytnutými v externím tokenu. Pokud kontrola ověření projde, platforma Microsoft Identity Platform vydá přístupový token pro úlohy externího softwaru. vystavitele je adresa URL externího zprostředkovatele identity a musí odpovídat
issuer
deklaraci identity externího tokenu, který se vyměňuje. Požadováno Pokud deklarace identityissuer
obsahuje počáteční nebo koncové prázdné znaky v hodnotě, výměna tokenů se zablokuje. Toto pole má limit znaků 600 znaků.předmět je identifikátor úlohy externího softwaru a musí odpovídat nároku
sub
(subject
) externího tokenu, který se vyměňuje. předmětu nemá žádný pevný formát, protože každý poskytovatel identity používá vlastní – někdy identifikátor GUID, někdy identifikátor s oddělovačem dvojtečkou, někdy libovolné řetězce. Toto pole má limit znaků 600 znaků.Důležitý
Hodnoty nastavení předmětu musí přesně odpovídat konfiguraci v konfiguraci pracovního postupu GitHubu. Jinak se platforma Microsoft Identity Platform podívá na příchozí externí token a odmítne výměnu přístupového tokenu. Nebudete dostávat chybové hlášení, systém selže bez upozornění na chybu.
Důležitý
Pokud omylem přidáte nesprávné informace o externí zátěži v nastavení předmětu , nastavení federovaných přihlašovacích údajů identity se úspěšně vytvoří bez chyby. Tato chyba se neprojeví, dokud se výměna tokenu nezdaří.
cílové skupiny uvádí cílové skupiny, které se můžou objevit v externím tokenu. Povinné. Musíte přidat jednu hodnotu cílové skupiny, která má limit 600 znaků. Doporučená hodnota je "api://AzureADTokenExchange". Říká, co musí platforma Microsoft identity přijmout v položce
aud
v příchozím tokenu.název je jedinečný identifikátor přihlašovacích údajů federované identity. Povinný. Toto pole má limit 3–120 znaků a musí být vhodné pro URL. Podporují se alfanumerické znaky, pomlčky nebo podtržítka. První znak musí být jenom alfanumerický. Po vytvoření je neměnný.
popis je popis přihlašovacích údajů federované identity zadaný uživatelem. Volitelný. Popis se neověřuje ani nekontroluje podle ID Microsoft Entra. Toto pole má limit 600 znaků.
Zástupné znaky nejsou podporovány v žádné z vlastností údajů o federované identitě.
Další informace o podporovaných oblastech, času potřebném k rozšíření federovaných aktualizací přihlašovacích údajů, podporovaných vystavitelích a dalších aspektech najdete v části Důležité informace a omezení pro přihlašovací údaje federované identity.
Požadavky
- Vytvořte registraci aplikace nebo spravovanou identitu v Microsoft Entra ID. Udělte své aplikaci přístup k prostředkům Azure, na které se zaměřuje zatížení vašeho externího softwaru.
- Vyhledejte ID objektu aplikace (ne ID aplikace (klienta), které potřebujete v následujících krocích. ID objektu aplikace najdete v centru pro správu Microsoft Entra. Přejděte do seznamu registrací aplikací a vyberte registraci aplikace. V Přehlednajdete ID objektu.
- Získejte předmět a vystavitele informace o vašem externím poskytovateli identity a softwarové úloze, které potřebujete v následujících krocích.
Konfigurace přihlašovacích údajů federované identity v aplikaci
GitHub Actions
Pokud chcete přidat federovanou identitu pro Akce GitHubu, postupujte takto:
V prostředí registrace aplikací Centra pro správu Microsoft Entranajděte registraci aplikace. V levém navigačním podokně vyberte Certifikáty & tajemství, vyberte kartu Federované přihlašovací údaje a vyberte Přidat přihlašovací údaj.
V rozevíracím seznamu scénář federovaných přihlašovacích údajů vyberte GitHub Actions nasazující prostředky Azure.
Zadejte organizace
a úložiště pro pracovní postup GitHub Actions. Pro typ entitavyberte prostředí , větev , žádost o přijetí změn , nebo značku a zadejte hodnotu. Hodnoty musí přesně odpovídat konfiguraci v pracovním postupu GitHubu. Porovnávání vzorů není u větví a značek podporované. Zadejte prostředí, pokud se pracovní postup on-push spustí pro mnoho větví nebo značek. Další informace najdete v příkladech.
Přidejte název pro federované přihlašovací údaje.
Pole vystavitele, cílové skupinya identifikátor předmětu se automaticky vyplní na základě zadaných hodnot.
Vyberte Přidat a nakonfigurujte federované přihlašovací údaje.
Pro pracovní postup GitHubu použijte následující hodnoty z registrace aplikace Microsoft Entra:
AZURE_CLIENT_ID
ID aplikace (klienta)AZURE_TENANT_ID
ID adresáře (tenant)Následující snímek obrazovky ukazuje, jak zkopírovat ID aplikace a ID tenanta.
AZURE_SUBSCRIPTION_ID
vaše ID předplatného. Id předplatného získáte tak, že otevřete Předplatná v Azure Portálu a najdete vaše předplatné. Potom zkopírujte ID předplatného.
Příklady typů entit
Příklad větve
Pro pracovní postup aktivovaný událostí push nebo pull request na hlavní větvi:
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
Zadejte typ entity
Příklad prostředí
Úlohy svázané s prostředím s názvem "production":
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
steps:
- name: deploy
# ...deployment-specific steps
Zadejte typ entity
Příklad značky
Například pro pracovní postup aktivovaný vložením do značky s názvem "v2":
on:
push:
# Sequence of patterns matched against refs/heads
branches:
- main
- 'mona/octocat'
- 'releases/**'
# Sequence of patterns matched against refs/tags
tags:
- v2
- v1.*
Zadejte
Příklad pull requestu
Pro pracovní postup aktivovaný událostí žádosti o přijetí změn zadejte typ entity žádosti o přijetí změn
Kubernetes
V prostředí registrace aplikací Centra pro správu Microsoft Entranajděte registraci aplikace. V levém navigačním podokně vyberte Certifikáty & tajemství, přejděte na záložku Federované přihlašovací údaje a vyberte Přidat.
V rozevírací nabídce vyberte scénář Kubernetes pro přístup k prostředkům Azure.
Vyplňte URL vystavitele clusteru, namespace, název účtu službya název:
- adresa URL vystavitele clusteru je adresa URL vystavitele OIDC pro spravovaný cluster nebo adresa URL vystavitele OIDC pro cluster spravovaný vlastním správcem.
- Název účtu služby je název účtu služby Kubernetes, který poskytuje identitu pro procesy spuštěné v Podu.
- Jmenný prostor je jmenný prostor účtu služby.
- Název je název federovaných přihlašovacích údajů, který nejde později změnit.
Další zprostředkovatelé identit
V prostředí registrace aplikací Centra pro správu Microsoft Entranajděte registraci aplikace. V levém navigačním podokně vyberte Certifikáty & tajemství, vyberte kartu Federované přihlašovací údaje a vyberte možnost Přidat přihlašovací údaje.
V rozbalovací nabídce vyberte scénář Jiný vystavitel.
Zadejte následující pole (jako příklad použijte softwarovou úlohu spuštěnou v Google Cloudu):
- Název je název federovaných přihlašovacích údajů, který nejde později změnit.
-
identifikátor subjektu: musí odpovídat deklaraci identity
sub
v tokenu vydaném externím zprostředkovatelem identity. V tomto příkladu s využitím Google Cloudu je předmětem jedinečné ID účtu služby, který plánujete použít. -
vystavitel: musí odpovídat deklaraci identity
iss
v tokenu vydaném externím zprostředkovatelem identity. Adresa URL, která splňuje specifikaci OIDC pro zjišťování. Microsoft Entra ID používá tuto adresu URL vystavitele k načtení klíčů, které jsou nezbytné k ověření tokenu. Pro Google Cloud je vystavitelhttps://accounts.google.com
.
Zobrazení přihlašovacích údajů federované identity v aplikaci
Najděte registraci vaší aplikace v prostředí registrací aplikací v Centru pro správu Microsoft Entra
Odstranit přihlašovací údaje federované identity z aplikace
V části uživatelského rozhraní pro registraci aplikací v Centru pro správu Microsoft Entra najděte registraci vaší aplikace. V levém navigačním podokně vyberte Certifikáty & tajemství a vyberte záložku federované přihlašovací údaje. Zobrazí se federované přihlašovací údaje nakonfigurované ve vaší aplikaci.
Pokud chcete odstranit pověření federované identity, vyberte ikonu Odstranit pro pověření.
Nastavení přihlašovacích údajů flexibilní federované identity (Preview)
- Přejděte na MICROSOFT Entra ID a vyberte aplikaci, ve které chcete nakonfigurovat přihlašovací údaje federované identity.
- V levém navigačním podokně vyberte Certifikáty & tajemství.
- Na kartě Federované přihlašovací údaje vyberte + Přidat přihlašovací údaje.
- V okně Přidat přihlašovací údaje, které se zobrazí, v rozevírací nabídce vedle scénáře federovaných přihlašovacích údajů vyberte Jiný vystavitel.
- V Hodnota zadejte výraz pro shodu požadavku, který chcete použít.
Požadavky
- Pokud ještě nemáte účet Azure, před pokračováním se zaregistrujte na bezplatný účet.
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v Rychlý start pro Bash ve službě Azure Cloud Shell.
Pokud dáváte přednost spuštění referenčních příkazů příkazového řádku lokálně, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Dockeru. Další informace najdete v tématu Spuštění Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených v terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití rozšíření pomocí azure CLI.
Spuštěním příkazu az version vyhledejte nainstalované verze a závislé knihovny. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Vytvoření registrace aplikace v Microsoft Entra ID. Umožněte své aplikaci přístup k prostředkům Azure, na které míří externí softwarová úloha.
- Vyhledejte ID objektu, ID aplikace (klienta) nebo identifikátor URI aplikace, které potřebujete v následujících krocích. Tyto hodnoty najdete v centru pro správu Microsoft Entra. Přejděte do seznamu registrovaných aplikací a vyberte registraci aplikace. V Přehled–>Essentials, získejte ID objektu, ID aplikace (klienta)nebo hodnotu identifikátoru URI ID aplikace, kterou potřebujete v následujících krocích.
- Získejte informace o předmětu a vystaviteli pro vašeho externího poskytovatele identity a softwarovou úlohu, které potřebujete v následujících krocích.
Konfigurace přihlašovacích údajů federované identity v aplikaci
Spuštěním příkazu az ad app federated-credential create vytvoříte nové přihlašovací údaje federované identity ve své aplikaci.
Parametr id
určuje identifikátor URI, ID aplikace nebo ID objektu aplikace. Parametr parameters
určuje parametry ve formátu JSON pro vytvoření přihlašovacích údajů federované identity.
Příklad GitHub Actions
Název určuje název přihlašovacích údajů federované identity.
Vystavitel identifikuje cestu k poskytovateli OIDC GitHubu: https://token.actions.githubusercontent.com/
. Tento vystavitel bude vaší aplikací Azure považován za důvěryhodného.
Předmět identifikuje organizaci, úložiště a prostředí GitHubu pro pracovní postup GitHub Actions. Když pracovní postup GitHub Actions požádá platformu Microsoft Identity Platform o výměnu tokenu GitHubu pro přístupový token, zkontrolují se hodnoty v přihlašovacích údajích federované identity na poskytnutém tokenu GitHubu. Než Azure udělí přístupový token, musí požadavek shodovat s podmínkami definovanými zde.
- Úlohy svázané s prostředím:
repo:< Organization/Repository >:environment:< Name >
- Pro úlohy, které nejsou svázané s prostředím, zahrňte odkazovou cestu pro větev nebo značku na základě odkazu použitého k aktivaci pracovního postupu:
repo:< Organization/Repository >:ref:< ref path>
. Napříkladrepo:n-username/ node_express:ref:refs/heads/my-branch
neborepo:n-username/ node_express:ref:refs/tags/my-tag
. - Pro pracovní postupy aktivované událostí pull request:
repo:< Organization/Repository >:pull-request
.
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Testing",
"issuer": "https://token.actions.githubusercontent.com",
"subject": "repo:octo-org/octo-repo:environment:Production",
"description": "Testing",
"audiences": [
"api://AzureADTokenExchange"
]
}
Příklad Kubernetes
vystavitele
předmět je název subjektu v tokenech vystavených pro účet služby. Kubernetes používá pro názvy subjektů následující formát: system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
.
Název je název federovaných přihlašovacích údajů, který nelze později změnit.
Seznam cílových skupin uvádí cílové skupiny, které se mohou objevit v externím tokenu. Toto pole je povinné. Doporučená hodnota je api://AzureADTokenExchange
.
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "Kubernetes-federated-credential",
"issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa",
"description": "Kubernetes service account federated credential",
"audiences": [
"api://AzureADTokenExchange"
]
}
Příklad jiných zprostředkovatelů identity
Přihlašovací údaje federované identity můžete nakonfigurovat v aplikaci a vytvořit vztah důvěryhodnosti s jinými externími zprostředkovateli identity. Následující příklad používá softwarovou úlohu spuštěnou v Google Cloudu jako příklad:
-
name
je název federovaných přihlašovacích údajů, které není možné později změnit. -
id
: ID objektu, ID aplikace (klienta) nebo identifikátor URI aplikace. -
subject
: musí odpovídat deklaracisub
v tokenu vydaném externím poskytovatelem identity. V tomto příkladu pomocí Google Cloudu předmět je jedinečné ID účtu služby, který plánujete použít. -
issuer
: musí odpovídat nárokuiss
v tokenu vydaném externím poskytovatelem identity. Adresa URL, která je v souladu se specifikací pro OIDC Discovery. Microsoft Entra ID používá tuto vystavující adresu URL k načtení klíčů, které jsou nezbytné k ověření tokenu. Pro Google Cloud je vystavitelhttps://accounts.google.com
. -
audiences
: seznamuje cílové skupiny, které mohou být uvedeny v externím tokenu. Toto pole je povinné. Doporučená hodnota je "api://AzureADTokenExchange".
az ad app federated-credential create --id 00001111-aaaa-2222-bbbb-3333cccc4444 --parameters credential.json
("credential.json" contains the following content)
{
"name": "GcpFederation",
"issuer": "https://accounts.google.com",
"subject": "112633961854638529490",
"description": "Test GCP federation",
"audiences": [
"api://AzureADTokenExchange"
]
}
Seznam federativních přihlašovacích údajů na aplikaci
Spuštěním příkazu az ad app federated-credential list zobrazte v aplikaci přihlašovací údaje federované identity.
Parametr id
určuje identifikátor URI, ID aplikace nebo ID objektu aplikace.
az ad app federated-credential list --id 00001111-aaaa-2222-bbbb-3333cccc4444
Získejte údaje o federované identitě v aplikaci
Spusťte příkaz az ad app federated-credential show pro získání přihlašovacích údajů federované identity na své aplikaci.
Parametr id
určuje identifikátor URI, ID aplikace nebo ID objektu aplikace.
federated-credential-id
určuje ID nebo název přihlašovacích údajů federované identity.
az ad app federated-credential show --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
Odstranit přihlašovací údaje federované identity z aplikace
Spuštěním příkazu az ad app federated-credential delete odeberte z aplikace přihlašovací údaje federované identity.
Parametr id
určuje identifikátor URI, ID aplikace nebo ID objektu aplikace.
federated-credential-id
určuje ID nebo název přihlašovacích údajů federované identity.
az ad app federated-credential delete --id 00001111-aaaa-2222-bbbb-3333cccc4444 --federated-credential-id c79f8feb-a9db-4090-85f9-90d820caa0eb
Požadavky
- Pokud chcete spustit ukázkové skripty, máte dvě možnosti:
- Použijte Azure Cloud Shell, který můžete otevřít pomocí tlačítka Vyzkoušet v pravém horním rohu bloků kódu.
- Spouštějte skripty místně pomocí Azure PowerShellu, jak je popsáno v další části.
- Vytvoření registrace aplikace v Microsoft Entra ID. Udělte aplikaci přístup k prostředkům Azure, pro které je určený váš externí software.
- Vyhledejte ID objektu aplikace (ne ID aplikace (klienta), které potřebujete v následujících krocích. ID objektu aplikace najdete v centru pro správu Microsoft Entra. Přejděte do seznamu registrovaných aplikací a vyberte registraci aplikace. V Přehled->Essentialsvyhledejte ID objektu.
- Získejte předmět a vystavitele informace o vašem externím poskytovateli identity a softwarové úloze, které potřebujete v následujících krocích.
Místní konfigurace Azure PowerShellu
Použití Azure PowerShellu místně pro tento článek místo použití Cloud Shellu:
Pokud jste to ještě neudělali, nainstalujte nejnovější verzi Azure PowerShellu.
Přihlaste se k Azure.
Connect-AzAccount
Nainstalujte nejnovější verzi modulu PowerShellGet.
Install-Module -Name PowerShellGet -AllowPrerelease
Po spuštění tohoto příkazu pro další krok možná budete muset
Exit
mimo aktuální relaci PowerShellu.Nainstalujte předběžnou verzi modulu
Az.Resources
, abyste mohli provádět operace s přihlašovacími údaji federované identity v tomto článku.Install-Module -Name Az.Resources -AllowPrerelease
Konfigurace přihlašovacích údajů federované identity v aplikaci
Spusťte rutinu New-AzADAppFederatedCredential a vytvořte nové údaje o federované identitě v aplikaci.
Příklad GitHub Actions
- ApplicationObjectId: ID objektu aplikace (nikoli ID aplikace (klienta), které jste dříve zaregistrovali v Microsoft Entra ID.
- Vystavitel identifikuje GitHub jako vystavitele externího tokenu.
-
Předmět identifikuje organizaci, úložiště a prostředí GitHubu pro pracovní postup GitHub Actions. Když pracovní postup GitHub Actions požádá platformu Microsoft Identity Platform o výměnu tokenu GitHubu pro přístupový token, zkontrolují se hodnoty v přihlašovacích údajích federované identity na poskytnutém tokenu GitHubu.
- Úlohy svázané s prostředím:
repo:< Organization/Repository >:environment:< Name >
- Pro úlohy, které nejsou svázané s prostředím, zahrňte cestu ref pro větev nebo značku na základě cesty ref použité pro spuštění workflow:
repo:< Organization/Repository >:ref:< ref path>
. Napříkladrepo:n-username/ node_express:ref:refs/heads/my-branch
neborepo:n-username/ node_express:ref:refs/tags/my-tag
. - Pro pracovní postupy aktivované událostí pull requestu:
repo:< Organization/Repository >:pull-request
.
- Úlohy svázané s prostředím:
- Název je název federovaných přihlašovacích údajů, který nejde později změnit.
-
cílová skupina uvádí cílové skupiny, které se můžou objevit v externím tokenu. Toto pole je povinné. Doporučená hodnota je
api://AzureADTokenExchange
.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://token.actions.githubusercontent.com/' -Name 'GitHub-Actions-Test' -Subject 'repo:octo-org/octo-repo:environment:Production'
Příklad Kubernetes
- ApplicationObjectId: ID objektu aplikace (nikoli ID aplikace (klienta), které jste dříve zaregistrovali v Microsoft Entra ID.
- Vystavitel je URL adresa vystavitele vašeho účtu služeb (adresa URL vystavitele OIDC pro spravovaný cluster nebo adresa URL vystavitele OIDC pro samospravovaný cluster).
-
Subjekt je název subjektu v tokenech vydaných pro služební účet. Kubernetes používá pro názvy subjektů následující formát:
system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
. - Název je název federovaných přihlašovacích údajů, který nejde později změnit.
-
Audience uvádí seznam publik, které se můžou objevit v
aud
nároku externího tokenu.
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/' -Name 'Kubernetes-federated-credential' -Subject 'system:serviceaccount:erp8asle:pod-identity-sa'
Příklad jiných zprostředkovatelů identity
Zadejte následující parametry (jako příklad použijte softwarovou úlohu spuštěnou v Google Cloudu):
- ID objektu: ID objektu aplikace (nikoli ID aplikace (klienta), které jste předtím zaregistrovali v Microsoft Entra ID.
- Název je název federovaných přihlašovacích údajů, který nejde později změnit.
-
Předmět: musí odpovídat deklaraci identity
sub
v tokenu vydaném externím zprostředkovatelem identity. V tomto příkladu v Google Cloudu je položka jedinečné ID účtu služby, který plánujete použít. -
vydavatel: musí odpovídat nároku
iss
v tokenu, který vydal externí poskytovatel identity. Adresa URL, která splňuje specifikaci zjišťování OIDC. Microsoft Entra ID používá tuto URL vydavatele k načtení klíčů, které jsou nezbytné k ověření tokenu. Pro Google Cloud je vystavitelhttps://accounts.google.com
. -
Publikum: musí odpovídat nároku
aud
v externím tokenu. Z bezpečnostních důvodů by měli zvolit hodnotu, která je jedinečná pro tokeny určené pro Microsoft Entra ID. Doporučená hodnota je "api://AzureADTokenExchange".
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://accounts.google.com' -Name 'GcpFederation' -Subject '112633961854638529490'
Seznam údajů pro federované ověřování identity v aplikaci
Spuštěním příkazu Get-AzADAppFederatedCredential zobrazíte přihlašovací údaje federované identity pro aplikaci.
Get-AzADApplication -ObjectId $app | Get-AzADAppFederatedCredential
Získání přihlašovacích údajů federované identity v aplikaci
Spuštěním rutiny Get-AzADAppFederatedCredential získejte přihlašovací údaje federované identity podle ID z aplikace.
Get-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
Smazat přihlašovací údaje federované identity z aplikace
Spuštěním rutiny Remove-AzADAppFederatedCredential odstraňte přihlašovací údaje federované identity z aplikace.
Remove-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -FederatedCredentialId $credentialId
Požadavky
Vytvoření registrace aplikace v Microsoft Entra ID. Udělte aplikaci přístup k prostředkům Azure, na které cílí vaše úloha externího softwaru.
Vyhledejte ID objektu aplikace (ne ID aplikace (klienta), které potřebujete v následujících krocích. ID objektu aplikace najdete v centru pro správu Microsoft Entra. Přejděte do seznamu registrovaných aplikací a vyberte registraci aplikace. V Přehled->Essentialsvyhledejte ID objektu.
Získejte informace o předmětu a vystaviteli pro vašeho externího poskytovatele identity a softwarovou úlohu, které potřebujete v následujících krocích.
Koncový bod Microsoft Graphu (https://graph.microsoft.com
) zveřejňuje rozhraní REST API pro vytváření, aktualizaci, odstraňování federedIdentityCredentials v aplikacích. Spusťte Azure Cloud Shell a přihlaste se ke svému tenantovi a spusťte příkazy Microsoft Graphu z AZ CLI.
Konfigurace přihlašovacích údajů federované identity v aplikaci
GitHub Actions
Spuštěním následující metody vytvořte v aplikaci nové přihlašovací údaje federované identity (určené ID objektu aplikace).
issuer
identifikuje GitHub jako vystavitele externího tokenu.
subject
identifikuje organizaci, úložiště a prostředí GitHubu pro pracovní postup GitHub Actions. Když pracovní postup GitHub Actions požádá platformu Microsoft Identity Platform o výměnu tokenu GitHubu pro přístupový token, zkontrolují se hodnoty v přihlašovacích údajích federované identity na poskytnutém tokenu GitHubu.
az rest --method POST --uri 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Testing","issuer":"https://token.actions.githubusercontent.com","subject":"repo:octo-org/octo-repo:environment:Production","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
A dostanete odpověď:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
V fragmentu kódu jsou parametry následující:
-
name
: Název aplikace Azure. -
issuer
: Cesta k poskytovateli OIDC GitHubu:https://token.actions.githubusercontent.com
. Tento vystavitel bude vaší aplikací Azure považován za důvěryhodného. -
subject
: Než Azure udělí přístupový token, musí požadavek odpovídat podmínkám definovaným zde.- Úlohy svázané s prostředím:
repo:< Organization/Repository >:environment:< Name >
- Pro úlohy, které nejsou svázané s prostředím, zahrňte referenční cestu pro větev/značku na základě cesty použité k aktivaci pracovního postupu:
repo:< Organization/Repository >:ref:< ref path>
. Napříkladrepo:n-username/ node_express:ref:refs/heads/my-branch
neborepo:n-username/ node_express:ref:refs/tags/my-tag
. - Pro pracovní postupy spuštěné událostí pull requestu:
repo:< Organization/Repository >:pull-request
.
- Úlohy svázané s prostředím:
-
audiences
vypíše cílové skupiny, které se můžou zobrazit v externím tokenu. Toto pole je povinné. Doporučená hodnota je "api://AzureADTokenExchange".
Příklad Kubernetes
Spuštěním následující metody nakonfigurujte přihlašovací údaje federované identity v aplikaci a vytvořte vztah důvěryhodnosti s účtem služby Kubernetes. Zadejte následující parametry:
-
issuer
je adresa URL vystavitele vašeho služebního účtu (adresa URL vystavitele OIDC pro spravovaný cluster nebo adresa URL vystavitele OIDC pro vlastní cluster). -
subject
je název subjektu v tokenech vydaných pro služební účet. Kubernetes používá pro názvy subjektů následující formát:system:serviceaccount:<SERVICE_ACCOUNT_NAMESPACE>:<SERVICE_ACCOUNT_NAME>
. -
name
je název federovaných přihlašovacích údajů, které není možné později změnit. -
audiences
vypíše cílové skupiny, které se můžou zobrazit v externím tokenu. Toto pole je povinné. Doporučená hodnota je "api://AzureADTokenExchange".
az rest --method POST --uri 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials' --body '{"name":"Kubernetes-federated-credential","issuer":"https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/","subject":"system:serviceaccount:erp8asle:pod-identity-sa","description":"Kubernetes service account federated credential","audiences":["api://AzureADTokenExchange"]}'
A dostanete odpověď:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Kubernetes service account federated credential",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://aksoicwesteurope.blob.core.windows.net/aaaabbbb-0000-cccc-1111-dddd2222eeee/",
"name": "Kubernetes-federated-credential",
"subject": "system:serviceaccount:erp8asle:pod-identity-sa"
}
Příklad jiných zprostředkovatelů identity
Spuštěním následující metody nakonfigurujte přihlašovací údaje federované identity v aplikaci a vytvořte vztah důvěryhodnosti s externím zprostředkovatelem identity. Zadejte následující parametry (jako příklad použijte softwarovou úlohu spuštěnou v Google Cloudu):
- název je název federovaných přihlašovacích údajů, který nelze později změnit.
- ID objektu: ID objektu aplikace (nikoli ID aplikace (klienta), které jste předtím zaregistrovali v Microsoft Entra ID.
-
předmětmusí odpovídat nároku
sub
v tokenu vydaném externím poskytovatelem identity. V tomto příkladu při použití služby Google Cloud je položka jedinečné ID účtu služby, který plánujete použít. -
vystavitele: musí odpovídat deklaraci identity
iss
v tokenu vydaném externím zprostředkovatelem identity. Adresa URL, která splňuje specifikaci zjišťování OIDC. Microsoft Entra ID používá tuto adresu URL vystavitele k načtení klíčů, které jsou nezbytné k ověření tokenu. Pro Google Cloud je vystavitel „https://accounts.google.com"“. - cílové skupiny uvádí cílové skupiny, které se můžou objevit v externím tokenu. Toto pole je povinné. Doporučená hodnota je "api://AzureADTokenExchange".
az rest --method POST --uri 'https://graph.microsoft.com/applications/<ObjectID>/federatedIdentityCredentials' --body '{"name":"GcpFederation","issuer":"https://accounts.google.com","subject":"112633961854638529490","description":"Testing","audiences":["api://AzureADTokenExchange"]}'
A dostanete odpověď:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "51ecf9c3-35fc-4519-a28a-8c27c6178bca",
"issuer": "https://accounts.google.com"",
"name": "GcpFederation",
"subject": "112633961854638529490"
}
Výpis přihlašovacích údajů federované identity v aplikaci
Spuštěním následující metody výpisu přihlašovacích údajů federované identity pro aplikaci (určené ID objektu aplikace):
az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials'
A dostanete odpověď podobnou této:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": [
{
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
]
}
Získejte přihlašovací údaje federované identity v aplikaci.
Spuštěním následující metody získání přihlašovacích údajů federované identity pro aplikaci (určené ID objektu aplikace):
az rest -m GET -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444//federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
A dostanete odpověď podobnou této:
{
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials",
"value": {
"@odata.context": "https://graph.microsoft.com/$metadata#applications('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials/$entity",
"@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('00001111-aaaa-2222-bbbb-3333cccc4444')/federatedIdentityCredentials('00001111-aaaa-2222-bbbb-3333cccc4444')/00001111-aaaa-2222-bbbb-3333cccc4444",
"audiences": [
"api://AzureADTokenExchange"
],
"description": "Testing",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"issuer": "https://token.actions.githubusercontent.com/",
"name": "Testing",
"subject": "repo:octo-org/octo-repo:environment:Production"
}
}
Odstraňte přihlašovací údaj federované identity z aplikace.
Spusťte následující metodu k odstranění přihlašovacích údajů federované identity z aplikace (určené ID objektu aplikace):
az rest -m DELETE -u 'https://graph.microsoft.com/applications/00001111-aaaa-2222-bbbb-3333cccc4444/federatedIdentityCredentials/00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
Viz také
- Informace o použití federace identit úloh pro Kubernetes najdete v tématu Microsoft Entra Workload ID pro Kubernetes, projektu s otevřeným zdrojovým kódem.
- Informace o použití federace identit úloh pro GitHub Actions najdete v tématu Konfigurace pracovního postupu GitHub Actions pro získání přístupového tokenu.
- 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 Azure najdete v dokumentaci k
GitHub Actions. - Další informace o tom, jak Microsoft Entra ID používá pověření klienta k udělování a kontrolní výraz klienta vydaný jiným zprostředkovatelem identity k získání tokenu.
- Informace o požadovaném formátu JWT vytvořených externími poskytovateli identity najdete v formátu prohlášení .