Konfigurowanie tożsamości zarządzanej przypisanej przez użytkownika w celu zaufania zewnętrznemu dostawcy tożsamości

W tym artykule opisano sposób zarządzania poświadczeniami tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika w usłudze Microsoft Entra ID. Poświadczenie tożsamości federacyjnej tworzy relację zaufania między tożsamością zarządzaną przypisaną przez użytkownika a zewnętrznym dostawcą tożsamości . Konfigurowanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez system nie jest obsługiwane.

Po skonfigurowaniu tożsamości zarządzanej przypisanej przez użytkownika w celu zaufania zewnętrznemu dostawcy tożsamości skonfiguruj zewnętrzne obciążenie oprogramowania w celu wymiany tokenu z zewnętrznego dostawcy tożsamości na potrzeby tokenu dostępu z Platforma tożsamości Microsoft. Obciążenie zewnętrzne używa tokenu dostępu do uzyskiwania dostępu do chronionych zasobów firmy Microsoft bez konieczności zarządzania wpisami tajnymi (w obsługiwanych scenariuszach). Aby dowiedzieć się więcej na temat przepływu pracy wymiany tokenów, przeczytaj o federacji tożsamości obciążenia.

Z tego artykułu dowiesz się, jak tworzyć, wyświetlać i usuwać poświadczenia tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika.

Ważne zagadnienia i ograniczenia

Do aplikacji lub tożsamości zarządzanej przypisanej przez użytkownika można dodać maksymalnie 20 poświadczeń tożsamości federacyjnej.

Podczas konfigurowania poświadczeń tożsamości federacyjnej należy podać kilka ważnych informacji:

  • wystawca i podmiot to kluczowe informacje potrzebne do skonfigurowania relacji zaufania. Kombinacja elementów issuer i subject musi być unikatowa w aplikacji. Gdy obciążenie oprogramowania zewnętrznego żąda Platforma tożsamości Microsoft wymiany tokenu zewnętrznego dla tokenu dostępu, wystawca i wartości podmiotu poświadczeń tożsamości federacyjnej są sprawdzane względem issuer poświadczeń i subject podanych w tokenie zewnętrznym. Jeśli sprawdzanie poprawności zakończy się pomyślnie, Platforma tożsamości Microsoft wystawia token dostępu do zewnętrznego obciążenia oprogramowania.

  • wystawca jest adresem URL zewnętrznego dostawcy tożsamości i musi być zgodny z issuer oświadczeniem wymienianego tokenu zewnętrznego. Wymagane. issuer Jeśli oświadczenie ma wiodące lub końcowe białe znaki w wartości, wymiana tokenów zostanie zablokowana. To pole ma limit znaków 600 znaków.

  • subject jest identyfikatorem obciążenia oprogramowania zewnętrznego i musi być zgodny sub z oświadczeniem (subject) zewnętrznego tokenu wymienianego. podmiot nie ma stałego formatu, ponieważ każdy dostawca tożsamości używa własnego identyfikatora — czasami identyfikator GUID, czasami identyfikator rozdzielany dwukropkiem, czasami dowolnych ciągów. To pole ma limit znaków 600 znaków.

    Ważne

    Wartości ustawień podmiotu muszą dokładnie odpowiadać konfiguracji w konfiguracji przepływu pracy usługi GitHub. W przeciwnym razie Platforma tożsamości Microsoft przyjrzy się przychodzącego tokenu zewnętrznego i odrzuci wymianę tokenu dostępu. Nie zostanie wyświetlony błąd, wymiana kończy się niepowodzeniem bez błędu.

    Ważne

    Jeśli przypadkowo dodasz nieprawidłowe informacje o obciążeniu zewnętrznym w temacie , ustawienie poświadczenia tożsamości federacyjnej zostanie utworzone pomyślnie bez błędu. Błąd nie jest widoczny, dopóki wymiana tokenów nie powiedzie się.

  • odbiorcy wyświetlają listę odbiorców, którzy mogą pojawić się w tokenie zewnętrznym. Wymagane. Musisz dodać pojedynczą wartość odbiorców, która ma limit 600 znaków. Zalecana wartość to "api://AzureADTokenExchange". Mówi, co Platforma tożsamości Microsoft musi zaakceptować w oświadczeniu aud w tokenie przychodzącym.

  • name jest unikatowym identyfikatorem poświadczeń tożsamości federacyjnej. Wymagane. To pole ma limit znaków od 3 do 120 znaków i musi być przyjazny dla adresu URL. Obsługiwane są znaki alfanumeryczne, kreskowe lub podkreślenia. Pierwszy znak musi być tylko alfanumeryczny.  Jest niezmienny po utworzeniu.

  • opis to podany przez użytkownika opis poświadczeń tożsamości federacyjnej. Opcjonalny. Opis nie jest weryfikowany ani sprawdzany przez identyfikator Entra firmy Microsoft. To pole ma limit 600 znaków.

Symbole wieloznaczne nie są obsługiwane w żadnej wartości właściwości poświadczeń tożsamości federacyjnej.

Aby dowiedzieć się więcej na temat obsługiwanych regionów, czasu na propagowanie aktualizacji poświadczeń federacyjnych, obsługiwanych wystawców i nie tylko, przeczytaj Ważne zagadnienia i ograniczenia dotyczące poświadczeń tożsamości federacyjnej.

Wymagania wstępne

  • Jeśli nie znasz tożsamości zarządzanych dla zasobów platformy Azure, zapoznaj się z sekcją Przegląd. Pamiętaj, aby zapoznać się z różnicą między tożsamością zarządzaną przypisaną przez system i przypisaną przez użytkownika.
  • Jeśli nie masz jeszcze konta platformy Azure, utwórz bezpłatne konto przed kontynuowaniem.
  • Uzyskaj informacje dotyczące zewnętrznego dostawcy tożsamości i obciążenia oprogramowania, które są potrzebne w poniższych krokach.
  • Aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika i skonfigurować poświadczenia tożsamości federacyjnej, twoje konto wymaga przypisania roli Współautor lub Właściciel .
  • Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
  • Znajdź nazwę tożsamości zarządzanej przypisanej przez użytkownika, która jest potrzebna w poniższych krokach.

Konfigurowanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

W centrum administracyjnym firmy Microsoft Entra przejdź do utworzonej tożsamości zarządzanej przypisanej przez użytkownika. W obszarze Ustawienia na pasku nawigacyjnym po lewej stronie wybierz pozycję Poświadczenia federacyjne, a następnie dodaj poświadczenia.

Z listy rozwijanej Scenariusz poświadczeń federacyjnych wybierz swój scenariusz.

Funkcja GitHub Actions wdrażająca zasoby platformy Azure

Aby dodać tożsamość federacyjną dla funkcji GitHub Actions, wykonaj następujące kroki:

  1. W polu Typ jednostki wybierz pozycję Środowisko, Gałąź, Żądanie ściągnięcia lub Tag i określ wartość. Wartości muszą być dokładnie zgodne z konfiguracją w przepływie pracy usługi GitHub. Aby uzyskać więcej informacji, przeczytaj przykłady.

  2. Dodaj nazwę dla poświadczeń federacyjnych.

  3. Pola Wystawca, Odbiorcy i Identyfikator podmiotu są automatycznie wypełniane na podstawie wprowadzonych wartości.

  4. Wybierz pozycję Dodaj , aby skonfigurować poświadczenia federacyjne.

Użyj następujących wartości z tożsamości zarządzanej microsoft Entra dla przepływu pracy usługi GitHub:

  • AZURE_CLIENT_ID identyfikator klienta tożsamości zarządzanej

  • AZURE_SUBSCRIPTION_ID identyfikator subskrypcji.

    Poniższy zrzut ekranu przedstawia sposób kopiowania identyfikatora tożsamości zarządzanej i identyfikatora subskrypcji.

    Screenshot that demonstrates how to copy the managed identity ID and subscription ID from Azure portal.

  • AZURE_TENANT_IDidentyfikator katalogu (dzierżawy). Dowiedz się , jak znaleźć identyfikator dzierżawy firmy Microsoft Entra.

Przykłady typów jednostek

Przykład gałęzi

W przypadku przepływu pracy wyzwalanego przez zdarzenie wypychania lub żądania ściągnięcia w gałęzi głównej:

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

Określ typ jednostki gałęzi i nazwę gałęzi GitHub "main".

Przykład środowiska

W przypadku zadań powiązanych ze środowiskiem o nazwie "production":

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: deploy
        # ...deployment-specific steps

Określ typ jednostki Środowiska i nazwę środowiska GitHub "production".

Przykład tagu

Na przykład w przypadku przepływu pracy wyzwalanego przez wypychanie do tagu o nazwie "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.*

Określ typ jednostki tagu i nazwę tagu usługi GitHub "v2".

Przykład żądania ściągnięcia

W przypadku przepływu pracy wyzwalanego przez zdarzenie żądania ściągnięcia określ typjednostki żądania ściągnięcia

Platforma Kubernetes uzyskuje dostęp do zasobów platformy Azure

Wypełnij pola Adres URL wystawcy klastra, Przestrzeń nazw, Nazwa konta usługi i Nazwa:

  • Adres URL wystawcy klastra to adres URL wystawcy OIDC dla klastra zarządzanego lub adres URL wystawcy OIDC dla klastra zarządzanego samodzielnie.
  • Nazwa konta usługi to nazwa konta usługi Kubernetes, które zapewnia tożsamość procesów uruchamianych w zasobniku.
  • Przestrzeń nazw to przestrzeń nazw konta usługi.
  • Nazwa to nazwa poświadczenia federacyjnego, którego nie można później zmienić.

Wybierz pozycję Dodaj , aby skonfigurować poświadczenia federacyjne.

Inne

Z menu rozwijanego wybierz pozycję Inny scenariusz wystawcy .

Określ następujące pola (na przykład przy użyciu obciążenia oprogramowania uruchomionego w usłudze Google Cloud):

  • Nazwa to nazwa poświadczenia federacyjnego, którego nie można później zmienić.
  • Identyfikator podmiotu: musi być zgodny z oświadczeniem sub w tokenie wystawionym przez zewnętrznego dostawcę tożsamości. W tym przykładzie korzystającym z usługi Google Cloud temat jest unikatowym identyfikatorem konta usługi, którego zamierzasz użyć.
  • Wystawca: musi być zgodny z oświadczeniem iss w tokenie wystawionym przez zewnętrznego dostawcę tożsamości. Adres URL zgodny ze specyfikacją odnajdywania OIDC. Identyfikator Entra firmy Microsoft używa tego adresu URL wystawcy do pobrania kluczy niezbędnych do zweryfikowania tokenu. W przypadku usługi Google Cloud wystawca to "https://accounts.google.com".

Wybierz pozycję Dodaj , aby skonfigurować poświadczenia federacyjne.

Wyświetlanie listy poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

W centrum administracyjnym firmy Microsoft Entra przejdź do utworzonej tożsamości zarządzanej przypisanej przez użytkownika. W obszarze Ustawienia na pasku nawigacyjnym po lewej stronie i wybierz pozycję Poświadczenia federacyjne.

Zostaną wyświetlone poświadczenia tożsamości federacyjnej skonfigurowane dla tej tożsamości zarządzanej przypisanej przez użytkownika.

Usuwanie poświadczeń tożsamości federacyjnej z tożsamości zarządzanej przypisanej przez użytkownika

W centrum administracyjnym firmy Microsoft Entra przejdź do utworzonej tożsamości zarządzanej przypisanej przez użytkownika. W obszarze Ustawienia na pasku nawigacyjnym po lewej stronie i wybierz pozycję Poświadczenia federacyjne.

Zostaną wyświetlone poświadczenia tożsamości federacyjnej skonfigurowane dla tej tożsamości zarządzanej przypisanej przez użytkownika.

Aby usunąć określone poświadczenia tożsamości federacyjnej, wybierz ikonę Usuń dla tego poświadczenia.

Wymagania wstępne

  • Jeśli nie znasz tożsamości zarządzanych dla zasobów platformy Azure, zapoznaj się z sekcją Przegląd. Pamiętaj, aby zapoznać się z różnicą między tożsamością zarządzaną przypisaną przez system i przypisaną przez użytkownika.
  • Jeśli nie masz jeszcze konta platformy Azure, utwórz bezpłatne konto przed kontynuowaniem.
  • Uzyskaj informacje dotyczące zewnętrznego dostawcy tożsamości i obciążenia oprogramowania, które są potrzebne w poniższych krokach.
  • Aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika i skonfigurować poświadczenia tożsamości federacyjnej, twoje konto wymaga przypisania roli Współautor lub Właściciel .
  • Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
  • Znajdź nazwę tożsamości zarządzanej przypisanej przez użytkownika, która jest potrzebna w poniższych krokach.

Konfigurowanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Uruchom polecenie az identity federated-credential create, aby utworzyć nowe poświadczenia tożsamości federacyjnej na tożsamości zarządzanej przypisanej przez użytkownika (określonej przez nazwę). Określ nazwę, wystawcę, podmiot i inne parametry.

az login

# set variables
location="centralus"
subscription="{subscription-id}"
rg="fic-test-rg"

# user assigned identity name
uaId="fic-test-ua"

# federated identity credential name
ficId="fic-test-fic-name"

# create prerequisites if required.
# otherwise make sure that existing resources names are set in variables above
az account set --subscription $subscription
az group create --location $location --name $rg
az identity create --name $uaId --resource-group $rg --location $location --subscription $subscription

# Create/update a federated identity credential
az identity federated-credential create --name $ficId --identity-name $uaId --resource-group $rg --issuer 'https://aks.azure.com/issuerGUID' --subject 'system:serviceaccount:ns:svcaccount' --audiences 'api://AzureADTokenExchange'

Wyświetlanie listy poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Uruchom polecenie az identity federated-credential list, aby odczytać wszystkie poświadczenia tożsamości federacyjnej skonfigurowane na tożsamości zarządzanej przypisanej przez użytkownika:

az login

# Set variables
rg="fic-test-rg"

# User assigned identity name
uaId="fic-test-ua"

# Read all federated identity credentials assigned to the user-assigned managed identity
az identity federated-credential list --identity-name $uaId --resource-group $rg

Uzyskiwanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Uruchom polecenie az identity federated-credential show, aby wyświetlić poświadczenia tożsamości federacyjnej (według identyfikatora):

az login

# Set variables
rg="fic-test-rg"

# User assigned identity name
uaId="fic-test-ua"

# Federated identity credential name
ficId="fic-test-fic-name"

# Show the federated identity credential
az identity federated-credential show --name $ficId --identity-name $uaId --resource-group $rg

Usuwanie poświadczeń tożsamości federacyjnej z tożsamości zarządzanej przypisanej przez użytkownika

Uruchom polecenie az identity federated-credential delete, aby usunąć poświadczenia tożsamości federacyjnej w ramach istniejącej tożsamości przypisanej przez użytkownika.

az login

# Set variables
# in Linux shell remove $ from set variable statement
$rg="fic-test-rg"

# User assigned identity name
$uaId="fic-test-ua"

# Federated identity credential name
$ficId="fic-test-fic-name"

az identity federated-credential delete --name $ficId --identity-name $uaId --resource-group $rg

Wymagania wstępne

  • Jeśli nie znasz tożsamości zarządzanych dla zasobów platformy Azure, zapoznaj się z sekcją Przegląd. Pamiętaj, aby zapoznać się z różnicą między tożsamością zarządzaną przypisaną przez system i przypisaną przez użytkownika.
  • Jeśli nie masz jeszcze konta platformy Azure, utwórz bezpłatne konto przed kontynuowaniem.
  • Uzyskaj informacje dotyczące zewnętrznego dostawcy tożsamości i obciążenia oprogramowania, które są potrzebne w poniższych krokach.
  • Aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika i skonfigurować poświadczenia tożsamości federacyjnej, twoje konto wymaga przypisania roli Współautor lub Właściciel .
  • Aby uruchomić przykładowe skrypty, dostępne są dwie opcje:
    • Użyj usługi Azure Cloud Shell, którą można otworzyć za pomocą przycisku Wypróbuj w prawym górnym rogu bloków kodu.
    • Uruchamianie skryptów lokalnie za pomocą programu Azure PowerShell zgodnie z opisem w następnej sekcji.
  • Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
  • Znajdź nazwę tożsamości zarządzanej przypisanej przez użytkownika, która jest potrzebna w poniższych krokach.

Konfigurowanie programu Azure PowerShell lokalnie

Aby użyć programu Azure PowerShell lokalnie w tym artykule zamiast używania usługi Cloud Shell:

  1. Zainstaluj najnowszą wersję programu Azure PowerShell , jeśli jeszcze tego nie zrobiono.

  2. Zaloguj się na platformie Azure.

    Connect-AzAccount
    
  3. Zainstaluj najnowszą wersję modułu PowerShellGet.

    Install-Module -Name PowerShellGet -AllowPrerelease
    

    Po uruchomieniu tego polecenia w następnym kroku może być konieczne wylogowanie Exit się z bieżącej sesji programu PowerShell.

  4. Zainstaluj moduł , Az.ManagedServiceIdentity aby wykonać operacje tożsamości zarządzanej przypisanej przez użytkownika w tym artykule.

    Install-Module -Name Az.ManagedServiceIdentity
    

Konfigurowanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Uruchom polecenie New-AzFederatedIdentityCredentials, aby utworzyć nowe poświadczenia tożsamości federacyjnej na tożsamości zarządzanej przypisanej przez użytkownika (określonej przez nazwę). Określ nazwę, wystawcę, podmiot i inne parametry.

New-AzFederatedIdentityCredentials -ResourceGroupName azure-rg-test -IdentityName uai-pwsh01 `
    -Name fic-pwsh01 -Issuer "https://kubernetes-oauth.azure.com" -Subject "system:serviceaccount:ns:svcaccount"

Wyświetlanie listy poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Uruchom polecenie Get-AzFederatedIdentityCredentials, aby odczytać wszystkie poświadczenia tożsamości federacyjnej skonfigurowane w tożsamości zarządzanej przypisanej przez użytkownika:

Get-AzFederatedIdentityCredentials -ResourceGroupName azure-rg-test -IdentityName uai-pwsh01

Uzyskiwanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Uruchom polecenie Get-AzFederatedIdentityCredentials, aby wyświetlić poświadczenia tożsamości federacyjnej (według nazwy):

Get-AzFederatedIdentityCredentials -ResourceGroupName azure-rg-test -IdentityName uai-pwsh01 -Name fic-pwsh01

Usuwanie poświadczeń tożsamości federacyjnej z tożsamości zarządzanej przypisanej przez użytkownika

Uruchom polecenie Remove-AzFederatedIdentityCredentials, aby usunąć poświadczenia tożsamości federacyjnej w ramach istniejącej tożsamości przypisanej przez użytkownika.

Remove-AzFederatedIdentityCredentials -ResourceGroupName azure-rg-test -IdentityName uai-pwsh01 -Name fic-pwsh01

Wymagania wstępne

  • Jeśli nie znasz tożsamości zarządzanych dla zasobów platformy Azure, zapoznaj się z sekcją Przegląd. Pamiętaj, aby zapoznać się z różnicą między tożsamością zarządzaną przypisaną przez system i przypisaną przez użytkownika.
  • Jeśli nie masz jeszcze konta platformy Azure, utwórz bezpłatne konto przed kontynuowaniem.
  • Uzyskaj informacje dotyczące zewnętrznego dostawcy tożsamości i obciążenia oprogramowania, które są potrzebne w poniższych krokach.
  • Aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika i skonfigurować poświadczenia tożsamości federacyjnej, twoje konto wymaga przypisania roli Współautor lub Właściciel .
  • Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
  • Znajdź nazwę tożsamości zarządzanej przypisanej przez użytkownika, która jest potrzebna w poniższych krokach.

Tworzenie i edytowanie szablonu

Szablony usługi Resource Manager ułatwiają wdrażanie nowych lub zmodyfikowanych zasobów zdefiniowanych przez grupę zasobów platformy Azure. Dostępnych jest kilka opcji edytowania i wdrażania szablonów, zarówno lokalnych, jak i opartych na portalu. Masz następujące możliwości:

Konfigurowanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Poświadczenia tożsamości federacyjnej i tożsamości przypisanej przez użytkownika nadrzędnego można utworzyć lub zaktualizować za pomocą poniższego szablonu. Szablony usługi ARM można wdrożyć w witrynie Azure Portal.

Wszystkie parametry szablonu są obowiązkowe.

Istnieje limit 3–120 znaków dla długości nazwy poświadczeń tożsamości federacyjnej. Musi to być alfanumeryczne, kreska, podkreślenie. Pierwszy symbol jest tylko alfanumeryczny.

Musisz dodać dokładnie jedną grupę odbiorców do poświadczeń tożsamości federacyjnej. Odbiorcy są weryfikowani podczas wymiany tokenów. Użyj wartości domyślnej "api://AzureADTokenExchange".

Operacje listy, pobierania i usuwania nie są dostępne w szablonie. Zapoznaj się z interfejsem wiersza polecenia platformy Azure, aby zapoznać się z tymi operacjami. Domyślnie wszystkie podrzędne poświadczenia tożsamości federacyjnej są tworzone równolegle, co wyzwala logikę wykrywania współbieżności i powoduje niepowodzenie wdrożenia z kodem stanu HTTP powodującym konflikt 409. Aby utworzyć je sekwencyjnie, określ łańcuch zależności przy użyciu właściwości dependsOn .

Upewnij się, że wszelkiego rodzaju automatyzacja tworzy poświadczenia tożsamości federacyjnej w ramach tej samej tożsamości nadrzędnej sekwencyjnie. Poświadczenia tożsamości federacyjnej w ramach różnych tożsamości zarządzanych można tworzyć równolegle bez żadnych ograniczeń.

{

    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "variables": {},
    "parameters": {
        "location": {
            "type": "string",
            "defaultValue": "westcentralus",
            "metadata": {
                "description": "Location for identities resources. FIC should be enabled in this region."
            }
        },
        "userAssignedIdentityName": {
            "type": "string",
            "defaultValue": "FIC_UA",
            "metadata": {
                "description": "Name of the User Assigned identity (parent identity)"
            }
        },
        "federatedIdentityCredential": {
            "type": "string",
            "defaultValue": "testCredential",
            "metadata": {
                "description": "Name of the Federated Identity Credential"
            }
        },
        "federatedIdentityCredentialIssuer": {
            "type": "string",
            "defaultValue": "https://aks.azure.com/issuerGUID",
            "metadata": {
                "description": "Federated Identity Credential token issuer"
            }
        },
        "federatedIdentityCredentialSubject": {
            "type": "string",
            "defaultValue": "system:serviceaccount:ns:svcaccount",
            "metadata": {
                "description": "Federated Identity Credential token subject"
            }
        },
        "federatedIdentityCredentialAudience": {
            "type": "string",
            "defaultValue": " api://AzureADTokenExchange",
            "metadata": {
                "description": "Federated Identity Credential audience. Single value is only supported."
            }
        }
    },
    "resources": [
        {
            "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
            "apiVersion": "2018-11-30",
            "name": "[parameters('userAssignedIdentityName')]",
            "location": "[parameters('location')]",
            "tags": {
                "firstTag": "ficTest"
            },
            "resources": [
                {
                    "type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials",
                    "apiVersion": "2022-01-31-PREVIEW",
                    "name": "[concat(parameters('userAssignedIdentityName'), '/', parameters('federatedIdentityCredential'))]",
                    "dependsOn": [
                      "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentityName'))]"
                    ],
                    "properties": {
                        "issuer": "[parameters('federatedIdentityCredentialIssuer')]",
                        "subject": "[parameters('federatedIdentityCredentialSubject')]",
                        "audiences": [
                            "[parameters('federatedIdentityCredentialAudience')]"
                        ]
                    }
                }
            ]
        }
    ]
}

Wymagania wstępne

  • Jeśli nie znasz tożsamości zarządzanych dla zasobów platformy Azure, zapoznaj się z sekcją Przegląd. Pamiętaj, aby zapoznać się z różnicą między tożsamością zarządzaną przypisaną przez system i przypisaną przez użytkownika.
  • Jeśli nie masz jeszcze konta platformy Azure, utwórz bezpłatne konto przed kontynuowaniem.
  • Uzyskaj informacje dotyczące zewnętrznego dostawcy tożsamości i obciążenia oprogramowania, które są potrzebne w poniższych krokach.
  • Aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika i skonfigurować poświadczenia tożsamości federacyjnej, twoje konto wymaga przypisania roli Współautor lub Właściciel .
  • Wszystkie polecenia w tym artykule można uruchomić w chmurze lub lokalnie:
  • Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
  • Znajdź nazwę tożsamości zarządzanej przypisanej przez użytkownika, która jest potrzebna w poniższych krokach.

Uzyskiwanie tokenu dostępu elementu nośnego

  1. Jeśli korzystasz lokalnie, zaloguj się do platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure.

    az login
    
  2. Uzyskaj token dostępu przy użyciu polecenia az account get-access-token.

    az account get-access-token
    

Konfigurowanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Utwórz lub zaktualizuj poświadczenia tożsamości federacyjnej w określonej tożsamości zarządzanej przypisanej przez użytkownika.

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/provider
s/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/federatedIdenti
tyCredentials/<FEDERATED IDENTITY CREDENTIAL NAME>?api-version=2022-01-31-preview' -X PUT -d '{"properties": "{ "properties": { "issuer": "<ISSUER>", "subject": "<SUBJECT>", "audiences": [ "api://AzureADTokenExchange" ] }}"}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/federatedIdentityCredentials/<FEDERATED IDENTITY CREDENTIAL NAME>?api-version=2022-01-31-preview

{
 "properties": {
 "issuer": "https://oidc.prod-aks.azure.com/IssuerGUID",
 "subject": "system:serviceaccount:ns:svcaccount",
 "audiences": [
 "api://AzureADTokenExchange"
 ]
 }
}

Nagłówki żądań

Nagłówek żądania opis
Typ zawartości Wymagane. Ustaw wartość application/json.
Autoryzacja Wymagane. Ustaw prawidłowy Bearer token dostępu.

Treść żądania

Nazwa/nazwisko opis
properties.audiences Wymagane. Lista odbiorców, którzy mogą pojawić się w wystawionym tokenie.
properties.issuer Wymagane. Adres URL wystawcy, który ma być zaufany.
properties.subject Wymagane. Identyfikator tożsamości zewnętrznej.

Wyświetlanie listy poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Wyświetl listę wszystkich poświadczeń tożsamości federacyjnej w określonej tożsamości zarządzanej przypisanej przez użytkownika.

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/<RESOURCE NAME>/federatedIdentityCredentials?api-version=2022-01-31-preview' -H "Content-Type: application/json" -X GET -H "Authorization: Bearer <ACCESS TOKEN>"
GET
https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/<RESOURCE NAME>/federatedIdentityCredentials?api-version=2022-01-31-preview

Nagłówki żądań

Nagłówek żądania opis
Typ zawartości Wymagane. Ustaw wartość application/json.
Autoryzacja Wymagane. Ustaw prawidłowy Bearer token dostępu.

Uzyskiwanie poświadczeń tożsamości federacyjnej w tożsamości zarządzanej przypisanej przez użytkownika

Pobierz poświadczenia tożsamości federacyjnej w określonej tożsamości zarządzanej przypisanej przez użytkownika.

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/<RESOURCE NAME>/federatedIdentityCredentials/<FEDERATED IDENTITY CREDENTIAL RESOURCENAME>?api-version=2022-01-31-preview' -X GET -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
GET
https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/<RESOURCE NAME>/federatedIdentityCredentials/<FEDERATED IDENTITY CREDENTIAL RESOURCENAME>?api-version=2022-01-31-preview

Nagłówki żądań

Nagłówek żądania opis
Typ zawartości Wymagane. Ustaw wartość application/json.
Autoryzacja Wymagane. Ustaw prawidłowy Bearer token dostępu.

Usuwanie poświadczeń tożsamości federacyjnej z tożsamości zarządzanej przypisanej przez użytkownika

Usuń poświadczenia tożsamości federacyjnej w określonej tożsamości zarządzanej przypisanej przez użytkownika.

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/<RESOURCE NAME>/federatedIdentityCredentials/<FEDERATED IDENTITY CREDENTIAL RESOURCENAME>?api-version=2022-01-31-preview' -X DELETE -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
DELETE
https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/<RESOURCE NAME>/federatedIdentityCredentials/<FEDERATED IDENTITY CREDENTIAL RESOURCENAME>?api-version=2022-01-31-preview

Nagłówki żądań

Nagłówek żądania opis
Typ zawartości Wymagane. Ustaw wartość application/json.
Autoryzacja Wymagane. Ustaw prawidłowy Bearer token dostępu.

Następne kroki

  • Aby uzyskać informacje o wymaganym formacie JWTs utworzonym przez zewnętrznych dostawców tożsamości, przeczytaj o formacie asercji.