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í

Pokud chcete vytvořit, aktualizovat nebo odstranit přihlašovací údaje federované identity, musí být účet provádějící akci vlastníkem aplikace nebo mít jednu z těchto rolí Entra: správce aplikací, správce cloudových aplikací, globálního správcenebo správce hybridní identity. 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ů se porovnávají s nároky issuer a subject poskytnutými 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 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. subject nemá žádný pevný formát, protože každý IdP používá vlastní – někdy GUID, někdy identifikátor oddělený 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í subjektu , federovaný přihlašovací ú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. Požadováno 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. Požadováno 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 hodnot vlastností přihlašovacích údajů o federované identitě.

Další informace o podporovaných oblastech, době potřebné k šíření aktualizací federovaných přihlašovacích údajů, podporovaných vystavitelích a další 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 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

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 Organizaci a Úložiště pro váš 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é. Uveďte prostředí, pokud váš pracovní postup spouštěný při push provádíte 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 nájemce

    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

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ětev 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 entityEnvironment a název prostředí GitHub na "production".

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 entityznačka a název značky GitHub "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í, vyberte kartu Federované přihlašovací údaje a vyberte Přidat přihlašovací údaj.

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 klastr spravovaný vlastní správou.
  • Název účtu služby je název účtu služby Kubernetes, který poskytuje identitu pro procesy spuštěné v Podu.
  • Namespace 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í 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 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 iss v tokenu vydaném externím poskytovatelem identity. Adresa URL, která splňuje specifikaci OIDC pro zjišťování. Microsoft Entra ID používá tuto adresu URL poskytovatele 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

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í 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 prostředí registrace aplikací Centra pro správu Microsoft Entranajděte registraci aplikace. 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.

Pokud chcete odstranit pověření federované identity, vyberte ikonu Odstranit pro pověření.

Nastavte pověření flexibilní federované identity (verze 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 odpovídající nároku, který chcete použít.

Požadavky

  • Vytvoření registrace aplikace 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, 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 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 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/. Vaše aplikace Azure považuje tohoto vystavitele 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

Adresa URL vystavitele je adresa URL vašého účtu služby (adresa URL vydavatele OIDC pro spravovaný cluster nebo adresa URL vydavatele 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 s využitím Google Cloudu je předmětem jedinečné ID účtu služby, který plánujete použít.
  • issuer: musí odpovídat deklaraci iss v tokenu vydaném externím poskytovatelem 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.
  • 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"
    ]
}

Zobrazení 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í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 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 registrovaných aplikací a vyberte registraci aplikace. V Přehled->Essentialsvyhledejte ID objektu.
  • Získejte informace o předmětu a vystaviteli vašeho externího poskytovatele identity a softwarové pracovní zátěže, 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 možná budete muset ukončit aktuální relaci PowerShellu, abyste mohli přejít k dalšímu kroku.

  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 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.
  • 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.
  • Vydavatel je URL vydavatele vašeho účtu služeb (URL vydavatele OIDC pro spravovaný cluster nebo URL vydavatele 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 publika, která mohou být uvedena v aud položce externího ověřovací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 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 iss v tokenu vydaném externím zprostředkovatelem identity. Adresa URL, která odpovídá specifikaci OIDC pro Discovery. Microsoft Entra ID používá tuto adresu URL vystavitele k načtení klíčů, které jsou nezbytné pro ověření tokenu. Vystavitel pro Google Cloud je https://accounts.google.com.
  • Cílové skupiny: musí odpovídat tvrzení 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'

Zobrazení přihlašovacích údajů federované 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ískejte údaje o federované identitě 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

Odstranit 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 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 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. Vaše aplikace Azure bude považovat tohoto vystavitele 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 nebo značku na základě použité referenční cesty k aktivaci pracovního procesu: 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.
  • 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 s využitím Google Cloudu je předmětem jedinečné ID účtu služby, který plánujete použít.
  • vydavatel: musí odpovídat nároku iss v tokenu vydaném externím zprostředkovatelem identity. Adresa URL, která splňuje specifikaci OIDC Discovery. Microsoft Entra ID používá tuto adresu URL vystavitele k načtení klíčů, které jsou nezbytné pro ověření tokenu. Pro službu 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"
}

Zobrazení přihlašovacích údajů federované identity v aplikaci

Spusťte následující metodu k vypsání přihlašovacích údajů federované identity pro aplikaci určenou 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 údaje o federované identitě v aplikaci

Spusťte následující metodu k získání přihlašovacích údajů federované identity na aplikaci (určenou pomocí 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"
    }
}

Odstranit přihlašovací údaje 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é