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 a subject 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ům issuer a subject 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 deklarace issuer 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:

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

  2. V rozevíracím seznamu Scénář federovaných přihlašovacích údajů vyberte Akce GitHubu, které nasazují prostředky Azure.

  3. Zadejte organizaci a úložiště pracovního postupu GitHub Actions.

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

  5. Přidejte název federovaných přihlašovacích údajů.

  6. Pole Vystavitel, Cílové skupiny a 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.

    Screenshot of the Add a credential window, showing sample values.

Pro pracovní postup GitHubu použijte následující hodnoty z registrace aplikace Microsoft Entra:

  • AZURE_CLIENT_IDID aplikace (klienta)

  • AZURE_TENANT_IDID adresáře (tenanta)

    Následující snímek obrazovky ukazuje, jak zkopírovat ID aplikace a ID tenanta.

    Screenshot that demonstrates how to copy the application ID and tenant ID from Microsoft Entra admin center.

  • 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

  • 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ří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í žá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:

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

  2. Přihlaste se do 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 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ří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í žádosti o přijetí změn: 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 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": "1aa3e6a7-464c-4cd2-88d3-90db98132755",
  "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ří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í žá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": "1aa3e6a7-464c-4cd2-88d3-90db98132755",
      "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/1aa3e6a7-464c-4cd2-88d3-90db98132755'

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": "1aa3e6a7-464c-4cd2-88d3-90db98132755",
      "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/1aa3e6a7-464c-4cd2-88d3-90db98132755'

Další kroky