Sdílet prostřednictvím


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 a subject 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 vystavitele a předmětu federovaných identitních přihlašovacích údajů a se porovnávají s tvrdzeními 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 identity issuer 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:

  1. 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.

  2. V rozevíracím seznamu scénář federovaných přihlašovacích údajů vyberte GitHub Actions nasazující prostředky Azure.

  3. Zadejte organizace a úložiště pro pracovní postup GitHub Actions.

  4. 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.

  5. Přidejte název pro federované přihlašovací údaje.

  6. Pole vystavitele, cílové skupinya identifikátor předmětu se automaticky vyplní na základě zadaných hodnot.

  7. Vyberte Přidat a nakonfigurujte federované přihlašovací údaje.

    snímek obrazovky s oknem Přidat přihlašovací údaje zobrazující ukázkové hodnoty

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.

    snímek obrazovky, který ukazuje, jak zkopírovat ID aplikace a ID tenanta z Centra pro správu Microsoft Entra

  • 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 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í environment a název prostředí GitHubu produkčního 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 "v2".

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 vystavitel https://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. V levém navigačním podokně vyberte Certifikáty & tajemství a vyberte kartu Federované přihlašovací údaje. Federované přihlašovací údaje, které jsou nakonfigurované ve vaší aplikaci, jsou zobrazeny.

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)

  1. Přejděte na MICROSOFT Entra ID a vyberte aplikaci, ve které chcete nakonfigurovat přihlašovací údaje federované identity.
  2. V levém navigačním podokně vyberte Certifikáty & tajemství.
  3. Na kartě Federované přihlašovací údaje vyberte + Přidat přihlašovací údaje.
  4. 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.
  5. V Hodnota zadejte výraz pro shodu požadavku, který chcete použít.

Požadavky

  • 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říklad repo:n-username/ node_express:ref:refs/heads/my-branch nebo repo: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 je adresa URL vystavitele vašeho účtu služby (adresa URL vystavitele OIDC OIDC pro spravovaný cluster nebo adresa URL vystavitele OIDC pro samospravovaný cluster).

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 deklaraci sub 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ároku iss 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 vystavitel https://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:

  1. Pokud jste to ještě neudělali, nainstalujte nejnovější verzi Azure PowerShellu.

  2. Přihlaste se k Azure.

    Connect-AzAccount
    
  3. 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.

  4. 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říklad repo:n-username/ node_express:ref:refs/heads/my-branch nebo repo:n-username/ node_express:ref:refs/tags/my-tag.
    • Pro pracovní postupy aktivované událostí pull requestu: repo:< Organization/Repository >:pull-request.
  • 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 vystavitel https://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říklad repo:n-username/ node_express:ref:refs/heads/my-branch nebo repo:n-username/ node_express:ref:refs/tags/my-tag.
    • Pro pracovní postupy spuštěné událostí pull requestu: repo:< Organization/Repository >:pull-request.
  • 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é