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
isubject
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ędemissuer
poświadczeń isubject
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. Wymagany.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. Wymagany. 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. Wymagany. 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:
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.
Dodaj nazwę dla poświadczeń federacyjnych.
Pola Wystawca, Odbiorcy i Identyfikator podmiotu są automatycznie wypełniane na podstawie wprowadzonych wartości.
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ądzanejAZURE_SUBSCRIPTION_ID
identyfikator subskrypcji.Poniższy zrzut ekranu przedstawia sposób kopiowania identyfikatora tożsamości zarządzanej i identyfikatora subskrypcji.
AZURE_TENANT_ID
identyfikator 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 typ jednostki żą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 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 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.
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
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:
Zainstaluj najnowszą wersję programu Azure PowerShell , jeśli jeszcze tego nie zrobiono.
Zaloguj się do Azure.
Connect-AzAccount
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.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:
- Użyj szablonu niestandardowego z witryny Azure Marketplace , aby utworzyć szablon od podstaw lub utworzyć go na podstawie istniejącego szablonu wspólnego lub szybkiego startu.
- Wyczerń z istniejącej grupy zasobów przez wyeksportowanie szablonu. Można je wyeksportować z oryginalnego wdrożenia lub z bieżącego stanu wdrożenia.
- Użyj lokalnego edytora JSON (takiego jak VS Code), a następnie przekaż i wdróż przy użyciu programu PowerShell lub interfejsu wiersza polecenia platformy Azure.
- Użyj projektu Grupa zasobów platformy Azure programu Visual Studio, aby utworzyć i wdrożyć szablon.
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:
- Aby uruchomić aplikację w chmurze, użyj usługi Azure Cloud Shell.
- Aby uruchomić lokalnie, zainstaluj narzędzie curl i interfejs wiersza polecenia platformy Azure.
- 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
Jeśli korzystasz lokalnie, zaloguj się do platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure.
az login
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 | Wymagany. Ustaw wartość application/json . |
Autoryzacja | Wymagany. Ustaw prawidłowy Bearer token dostępu. |
Treść żądania
Nazwa/nazwisko | opis |
---|---|
properties.audiences | Wymagany. Lista odbiorców, którzy mogą pojawić się w wystawionym tokenie. |
properties.issuer | Wymagany. Adres URL wystawcy, który ma być zaufany. |
properties.subject | Wymagany. 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 | Wymagany. Ustaw wartość application/json . |
Autoryzacja | Wymagany. 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 | Wymagany. Ustaw wartość application/json . |
Autoryzacja | Wymagany. 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 | Wymagany. Ustaw wartość application/json . |
Autoryzacja | Wymagany. 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.