Konfigurace aplikace pro vztah důvěryhodnosti externího zprostředkovatele 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 spravovat tajné kódy (v podporovaných scénářích). Další informace o pracovním postupu výměny tokenů najdete 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í
Pokud chcete vytvořit, aktualizovat nebo odstranit přihlašovací údaje federované identity, musí mít účet provádějící akci roli Application Správa istrator, Application Developer, Cloud Application Správa istrator nebo Application Owner. K aktualizaci přihlašovacích údajů federované identity se vyžaduje oprávnění microsoft.directory/applications/credentials/update.
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í:
a předmět jsou klíčové informace potřebné k nastavení vztahu důvěryhodnosti. Kombinace
issuer
asubject
musí být v aplikaci jedinečná. Když úloha externího softwaru požádá platformu Microsoft Identity Platform o výměnu externího tokenu pro přístupový token, budou hodnoty vystavitele a subjektu přihlašovacích údajů federované identity kontrolovány vůči externím tokenůmissuer
asubject
deklarace identity poskytnuté v externím tokenu. Pokud kontrola ověření projde, platforma Microsoft Identity Platform vydá přístupový token pro úlohy externího softwaru.vystavitel je adresa URL externího zprostředkovatele identity a musí odpovídat
issuer
deklaraci identity externího tokenu, který se vyměňuje. Povinný: Pokud deklaraceissuer
identity obsahuje počáteční nebo koncové prázdné znaky v hodnotě, zablokuje se výměna tokenů. Toto pole má limit znaků 600 znaků.předmět je identifikátor úlohy externího softwaru a musí odpovídat
sub
deklarací identitysubject
externího tokenu, který se vyměňuje. subject nemá žádný pevný formát, protože každý zprostředkovatele identity používá vlastní – někdy identifikátor GUID, někdy identifikátor s oddělovači dvojtečky, 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. Nezobrazí se vám chyba, exchange selže bez chyby.
Důležité
Pokud omylem přidáte nesprávné externí informace o úlohách v nastavení předmětu, přihlašovací údaje federované identity se úspěšně vytvoří bez chyby. Tato chyba se neprojeví, dokud se výměna tokenu nezdaří.
Cílové skupiny uvádějí 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 platforma Microsoft Identity Platform musí přijmout v
aud
deklaraci identity v příchozím tokenu.name je jedinečný identifikátor přihlašovacích údajů federované identity. Povinný: Toto pole má limit znaků 3–120 znaků a musí být popisný pro adresu 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. Nepovinné. Popis se neověřuje ani nekontroluje podle ID Microsoft Entra. Toto pole má limit 600 znaků.
Zástupné znaky nejsou podporovány v žádné hodnotě přihlašovacích údajů federované identity.
Další informace o podporovanýchoblastechch pověřeních a dalších informacích najdete další informace o podporovaných oblastech.
Požadavky
Vytvořte registraci 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 registrací aplikací a vyberte registraci aplikace. V části Overview-Essentials> vyhledejte ID objektu.
Získejte informace o předmětu a vystavitele externího zprostředkovatele identity a softwarové úlohy, 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í pro registraci aplikací v Centru pro správu Microsoft Entra vyhledejte registraci vaší aplikace. V levém navigačním podokně vyberte Certifikáty a tajné kódy, vyberte kartu Federované přihlašovací údaje a vyberte Přidat přihlašovací údaje.
V rozevíracím seznamu Scénář federovaných přihlašovacích údajů vyberte Akce GitHubu, které nasazují prostředky Azure.
Zadejte organizaci a úložiště pracovního postupu GitHub Actions.
Jako typ entity vyberte 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 federovaných přihlašovacích údajů.
Pole Vystavitel, Cílové skupiny a 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 (tenanta)Následující snímek obrazovky ukazuje, jak zkopírovat ID aplikace a ID tenanta.
AZURE_SUBSCRIPTION_ID
id vašeho předplatného. Pokud chcete získat ID předplatného, otevřete předplatná na webu Azure Portal a vyhledejte své předplatné. Pak zkopírujte ID předplatného.
Příklady typů entit
Příklad větve
Pro pracovní postup aktivovaný událostí push nebo žádosti o přijetí změn v hlavní větvi:
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
Zadejte typ entity větve a název větve GitHubu "main".
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 prostředí a název prostředí GitHubu pro produkční prostředí.
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 typ entity značky a název značky GitHubu verze 2.
Příklad žádosti o přijetí změn
Pro pracovní postup aktivovaný událostí žádosti o přijetí změn zadejte typentity žádosti o přijetí změn.
Kubernetes
V prostředí pro registraci aplikací v Centru pro správu Microsoft Entra vyhledejte registraci vaší aplikace. V levém navigačním podokně vyberte Certifikáty a tajné kódy, vyberte kartu Federované přihlašovací údaje a vyberte Přidat přihlašovací údaje.
V rozevírací nabídce vyberte Scénář přístupu k prostředkům Azure v Kubernetes.
Vyplňte adresu URL vystavitele clusteru, obor názvů, název účtu služby a pole Název:
- Adresa URL vystavitele clusteru je adresa URL vystavitele OIDC pro spravovaný cluster nebo adresu URL vystavitele OIDC pro cluster spravovaný vlastním systémem.
- Název účtu služby je název účtu služby Kubernetes, který poskytuje identitu pro procesy spuštěné v podu.
- Obor názvů je obor názvů úč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í pro registraci aplikací v Centru pro správu Microsoft Entra vyhledejte registraci vaší aplikace. V levém navigačním podokně vyberte Certifikáty a tajné kódy, vyberte kartu Federované přihlašovací údaje a vyberte Přidat přihlašovací údaje.
V rozevírací nabídce vyberte scénář Jiného vystavitele.
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
sub
deklaraci identity v tokenu vydaném externím zprostředkovatelem identity. V tomto příkladu pomocí Google Cloudu je předmětem jedinečné ID účtu služby, který plánujete použít. - Vystavitel: musí odpovídat
iss
deklaraci identity v tokenu vydaném externím zprostředkovatelem identity. Adresa URL, která splňuje specifikaci zjišťování OIDC. Id Microsoft Entra 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".
Výpis přihlašovacích údajů federované identity v aplikaci
V prostředí pro registraci aplikací v Centru pro správu Microsoft Entra vyhledejte registraci vaší aplikace. V levém navigačním podokně vyberte Certifikáty a tajné kódy a vyberte kartu Federované přihlašovací údaje . Zobrazí se federované přihlašovací údaje nakonfigurované ve vaší aplikaci.
Odstranění přihlašovacích údajů federované identity z aplikace
V prostředí pro registraci aplikací v Centru pro správu Microsoft Entra vyhledejte registraci vaší aplikace. V levém navigačním podokně vyberte Certifikáty a tajné kódy a vyberte kartu Federované přihlašovací údaje . Zobrazí se federované přihlašovací údaje nakonfigurované ve vaší aplikaci.
Pokud chcete odstranit přihlašovací údaje federované identity, vyberte u přihlašovacích údajů ikonu Odstranit .
Požadavky
- Pokud ještě nemáte účet Azure, před pokračováním si zaregistrujte bezplatný účet .
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit 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 na 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 Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Vytvořte registraci 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, 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 části Overview-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 vystavitele externího zprostředkovatele identity a softwarové úlohy, 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 v aplikaci nové přihlašovací údaje federované identity.
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 důvěryhodný.
předmět identifikuje organizaci, úložiště a prostředí GitHubu pro váš 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 odpovídat podmínkám definovaným tady.
- Ú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 odkaz pro větev nebo značku na základě cesty odkazu 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 aktivované událostí žádosti o přijetí změn:
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
vystavitel je adresa URL vystavitele vašeho účtu služby ( adresa URL vystavitele OIDC pro spravovaný cluster nebo adresa URL vystavitele OIDC pro samospravovaný cluster).
subject is the subject name in the tokens issued to the service account. 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é nelze později změnit.
Cílové skupiny uvádějí cílové skupiny, které se můžou 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é nelze později změnit.
ID: ID objektu, ID aplikace (klienta) nebo identifikátor URI aplikace.
subject: musí odpovídat sub
deklaraci identity v tokenu vydaném externím zprostředkovatelem identity. V tomto příkladu pomocí Google Cloudu je předmětem jedinečné ID účtu služby, který plánujete použít.
vystavitel: musí odpovídat iss
deklaraci identity v tokenu vydaném externím zprostředkovatelem identity. Adresa URL, která splňuje specifikaci zjišťování OIDC. Id Microsoft Entra 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 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"
]
}
Výpis přihlašovacích údajů federované identity v 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ískání přihlašovacích údajů federované identity v aplikaci
Spuštěním příkazu az ad app federated-credential show získejte přihlašovací údaje federované identity ve vaší aplikaci.
Parametr ID určuje identifikátor URI, ID aplikace nebo ID objektu aplikace.
Id federovaného pověření 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
Odstranění přihlašovacích údajů 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.
Id federovaného pověření 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řte registraci 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 části Overview-Essentials> vyhledejte ID objektu.
- Získejte informace o předmětu a vystavitele externího zprostředkovatele identity a softwarové úlohy, 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 si nejnovější verzi Azure PowerShellu .
Přihlaste se do 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
Az.Resources
modulu, 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
Spuštěním rutiny New-AzADAppFederatedCredential vytvořte v aplikaci nové přihlašovací údaje federované identity.
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 váš 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 odkaz pro větev nebo značku na základě cesty odkazu 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 aktivované událostí žádosti o přijetí změn:
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 adresa URL vystavitele vašeho účtu služby ( adresa URL vystavitele OIDC pro spravovaný cluster nebo adresa URL vystavitele OIDC pro cluster spravovaný svým držitelem).
- Předmět je název subjektu v tokenech vydaný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ý nejde později změnit.
- Cílová skupina uvádí cílové skupiny, které se můžou objevit v
aud
deklaraci identity 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):
- ObjectID: ID objektu aplikace (nikoli ID aplikace (klienta), které jste dříve 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
sub
deklaraci identity v tokenu vydaném externím zprostředkovatelem identity. V tomto příkladu pomocí Google Cloudu je předmětem jedinečné ID účtu služby, který plánujete použít. - Vystavitel: musí odpovídat
iss
deklaraci identity v tokenu vydaném externím zprostředkovatelem identity. Adresa URL, která splňuje specifikaci zjišťování OIDC. Id Microsoft Entra 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: Musí odpovídat
aud
deklaraci identity v externím tokenu. Zbezpečnostních Doporučená hodnota je "api://AzureADTokenExchange".
New-AzADAppFederatedCredential -ApplicationObjectId $appObjectId -Audience api://AzureADTokenExchange -Issuer 'https://accounts.google.com' -Name 'GcpFederation' -Subject '112633961854638529490'
Výpis přihlašovacích údajů federované identity v aplikaci
Spuštěním rutiny Get-AzADAppFederatedCredential vypíšete 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
Odstranění přihlašovacích údajů 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řte registraci 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 části Overview-Essentials> vyhledejte ID objektu.
Získejte informace o předmětu a vystavitele externího zprostředkovatele identity a softwarové úlohy, 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í federovanýchIdentityCredentials v aplikacích . Spusťte Azure Cloud Shell a přihlaste se ke svému tenantovi, abyste mohli spouštět 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). Vystavitel identifikuje GitHub jako vystavitele externího tokenu. předmět identifikuje organizaci, úložiště a prostředí GitHubu pro váš 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"
}
name: Název aplikace Azure.
issuer: Cesta k poskytovateli OIDC GitHubu: https://token.actions.githubusercontent.com
. Tento vystavitel bude vaší aplikací Azure důvěryhodný.
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 cestu odkaz pro větev nebo značku na základě cesty odkazu 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 aktivované událostí žádosti o přijetí změn:
repo:< Organization/Repository >:pull-request
.
Cílové skupiny uvádějí cílové skupiny, které se můžou objevit 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:
- vystavitel je adresa URL vystavitele vašeho účtu služby ( adresa URL vystavitele OIDC pro spravovaný cluster nebo adresa URL vystavitele OIDC pro samospravovaný cluster).
- subject is the subject name in the tokens issued to the service account. 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é nelze později změnit.
- Cílové skupiny uvádějí 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/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):
- name je název federovaných přihlašovacích údajů, které nelze později změnit.
- ObjectID: ID objektu aplikace (nikoli ID aplikace (klienta), které jste dříve zaregistrovali v Microsoft Entra ID.
- subject: musí odpovídat
sub
deklaraci identity v tokenu vydaném externím zprostředkovatelem identity. V tomto příkladu pomocí Google Cloudu je předmětem jedinečné ID účtu služby, který plánujete použít. - vystavitel: musí odpovídat
iss
deklaraci identity v tokenu vydaném externím zprostředkovatelem identity. Adresa URL, která splňuje specifikaci zjišťování OIDC. Id Microsoft Entra 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ějí 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 zobrazte seznam 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ískání přihlašovacích údajů federované identity v aplikaci
Spuštěním následující metody získejte přihlašovací údaje 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"
}
}
Odstranění přihlašovacích údajů federované identity z aplikace
Spuštěním následující metody odstraňte přihlašovací údaje 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'
Další kroky
- Informace o použití federace identit úloh pro Kubernetes najdete v tématu ID úloh Microsoft Entra pro opensourcový projekt Kubernetes.
- 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á přihlašovací údaje klienta OAuth 2.0 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 zprostředkovateli identit najdete v tématu o formátu kontrolního výrazu.