Jak używać tożsamości zarządzanych z usługami platformy Azure do nawiązywania połączenia z usługą Azure Cosmos DB for NoSQL
DOTYCZY: NoSQL
Diagram sekwencji przewodnika wdrażania, w tym tych lokalizacji, w kolejności: Przegląd, Pojęcia, Przygotowanie, Kontrola dostępu oparta na rolach, Sieć i Dokumentacja. Lokalizacja "Przygotuj" jest obecnie wyróżniona.
W tym artykule opisano kroki wymagane do utworzenia tożsamości zarządzanych do użycia z wdrożoną aplikacją połączoną z usługą Azure Cosmos DB for NoSQL.
Tożsamości zarządzane są jednym z wielu typów zasobów tożsamości w usłudze Microsoft Entra ID, których można używać podczas nawiązywania połączenia z usługami obsługującymi uwierzytelnianie firmy Microsoft Entra. Tożsamości zarządzane mogą być używane zamiast tradycyjnych poświadczeń należących do zasobów, takich jak klucze. Na platformie Azure tożsamości zarządzane umożliwiają aplikacjom uzyskanie tokenu firmy Microsoft Entra w celu uwierzytelniania w usługach platformy Azure bez konieczności pisania dużej ilości kodu uwierzytelniania.
Możesz użyć firmy Microsoft Entra do uwierzytelniania w usługach platformy Azure, w tym, ale nie tylko:
- Azure SQL
- Azure AI
- Azure Cosmos DB
- Azure Storage
- Azure Event Hubs
- Azure Container Registry
Za pomocą tożsamości zarządzanych można reprezentować jednostkę uwierzytelniającą się w usłudze platformy Azure z innych usług platformy Azure, w tym, ale nie tylko:
- Azure Kubernetes Service
- Azure Container Apps
- Azure Virtual Machines
- Azure Functions
- Azure App Service
- Azure Spring Apps
- Azure Service Fabric
Tożsamości zarządzane umożliwiają wiele bezpiecznych scenariuszy, w których różne usługi platformy Azure mogą łączyć się ze sobą. Przykłady obejmują:
- Tworzenie przypisanej przez system tożsamości zarządzanej dla aplikacji w usłudze Azure Spring Apps w celu nawiązywania połączenia z kontem usługi Azure SQL i wykonywania względem niego zapytań
- Używanie jednej tożsamości zarządzanej przypisanej przez użytkownika zarówno z usługą Azure Kubernetes Service, jak i usługą Azure Functions w celu wysłania żądań do konta usługi Azure AI
- Używanie tożsamości zarządzanej dla konta usługi Azure Cosmos DB do przechowywania kluczy w usłudze Azure Key Vault
Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane dla zasobów platformy Azure.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
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.
- Jeśli zdecydujesz się używać programu Azure PowerShell lokalnie:
- Zainstaluj najnowszą wersję modułu Az programu PowerShell.
- Połącz się z kontem platformy Azure przy użyciu polecenia cmdlet Connect-AzAccount .
- Jeśli zdecydujesz się używać usługi Azure Cloud Shell:
- Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Cloud Shell .
Tworzenie usługi platformy Azure z przypisaną przez system tożsamością zarządzaną
Utwórz nową usługę platformy Azure z tożsamością zarządzaną przypisaną przez system. Ta sekcja tworzy zasób usługi Azure Container Instances .
Użyj
az container create
polecenia , aby utworzyć nowe wystąpienie kontenera. Skonfiguruj konto tak, aby używało tożsamości zarządzanej przypisanej przez system przy użyciu parametruassign-identity
.az container create \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-new-container>" \ --image mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled \ --cpu 1 \ --memory 2 \ --assign-identity
Uzyskaj szczegółowe informacje dotyczące tożsamości zarządzanej przypisanej przez system przy użyciu polecenia
az container show
i zapytania JMESPath.az container show \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-existing-container>" \ --query "identity"
Przejrzyj dane wyjściowe polecenia . Powinien zawierać unikatowe identyfikatory tożsamości i dzierżawy.
{ "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned", "userAssignedIdentities": null }
Utwórz nowy plik Bicep, aby zdefiniować nowe wystąpienie kontenera. Nadaj plikowi nazwę container-instance.bicep. Ustaw następujące właściwości dla wystąpienia kontenera:
Wartość name
Używanie parametru o nazwie instanceName
location
Ustaw na lokalizację grupy zasobów identity.type
SystemAssigned
properties.osType
Linux
properties.containers[0].name
aspnet-sample
properties.containers[0].properties.image
mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled
properties.containers[0].properties.resources.requests.cpu
1
properties.containers[0].properties.resources.requests.memoryInGB
2
metadata description = 'Create Azure Container Instance resource with system-assigned managed identity.' @description('Name of the Azure Container Instances resource.') param instanceName string resource instance 'Microsoft.ContainerInstance/containerGroups@2023-05-01' = { name: instanceName location: resourceGroup().location identity: { type: 'SystemAssigned' } properties: { osType: 'Linux' containers: [ { name: 'aspnet-sample' properties: { image: 'mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled' resources: { requests: { cpu: 1 memoryInGB: 2 } } } } ] } } output systemAssignedIdentity object = instance.identity
Utwórz nowy plik parametrów Bicep o nazwie container-instance.
bicepparam
. W tym pliku parametrów utwórz unikatową nazwę wystąpienia kontenera przy użyciu parametruinstanceName
.using './container-instance.bicep' param instanceName = '<name-of-new-container-instance>'
Wdróż szablon Bicep przy użyciu polecenia
az deployment group create
. Określ nazwę szablonu Bicep, pliku parametrów i grupy zasobów platformy Azure.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --parameters "container-instance.bicepparam" \ --template-file "container-instance.bicep"
Przejrzyj dane wyjściowe z wdrożenia. Dane wyjściowe zawierają obiekt tożsamości z wystąpienia kontenera
properties.outputs.systemAssignedIdentity.value
we właściwości .{ "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned" }
Zaloguj się do witryny Azure Portal (https://portal.azure.com).
Wprowadź ciąg Azure Container Instances na pasku wyszukiwania globalnego.
W obszarze Usługi wybierz pozycję Wystąpienia kontenerów.
W okienku Wystąpienia kontenera wybierz pozycję Utwórz.
W okienku Podstawowe skonfiguruj następujące opcje, a następnie wybierz pozycję Przejrzyj i utwórz:
Wartość Subskrypcja Wybierz subskrypcję platformy Azure Grupa zasobów Utwórz nową grupę zasobów lub wybierz istniejącą grupę zasobów Nazwa kontenera Podaj globalnie unikatową nazwę Region Wybieranie obsługiwanego regionu platformy Azure dla subskrypcji Napiwek
Możesz pozostawić wszystkie nieokreślone opcje do ich wartości domyślnych.
W okienku Przeglądanie i tworzenie poczekaj na pomyślne zakończenie walidacji konta, a następnie wybierz pozycję Utwórz.
Portal automatycznie przechodzi do okienka Wdrażanie . Zaczekaj na zakończenie wdrażania.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu , aby przejść do nowego zasobu usługi Azure Container Instances.
W okienku dla nowego wystąpienia kontenera wybierz pozycję Tożsamość w sekcji Ustawienia menu usługi.
W okienku Tożsamość włącz tożsamość zarządzaną przypisaną przez system, ustawiając opcję Stan na Włączone. Następnie wybierz pozycję Zapisz i rozwiąż wszelkie monity o zatwierdzenie zmiany.
Gdy tożsamość zarządzana przypisana przez system będzie gotowa, przejrzyj wartość właściwości Identyfikator obiektu (podmiotu zabezpieczeń). Wartość tej właściwości jest unikatowym identyfikatorem tożsamości.
Napiwek
Na tym przykładowym zrzucie ekranu unikatowy identyfikator tożsamości zarządzanej przypisanej przez system to
bbbbbbbb-1111-2222-3333-cccccccccccc
.
Utwórz obiekt reprezentujący kontener przy użyciu polecenia
New-AzContainerInstanceObject
i zapisz go w zmiennej o nazwie$container
. Następnie użyj tego obiektu kontenera, aby utworzyć nowe wystąpienie kontenera za pomocąNew-AzContainerGroup
polecenia . Skonfiguruj konto tak, aby używało tożsamości zarządzanej przypisanej przez system, ustawiającIdentityType
parametr naSystemAssigned
wartość .$parameters = @{ Name = "aspnet-sample" Image = "mcr.microsoft.com/dotnet/samples:aspnetapp-chiseled" RequestCpu = 1 RequestMemoryInGb = 2 } $container = New-AzContainerInstanceObject @parameters $parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-new-container>" Container = $container OsType = "Linux" Location = "<azure-region>" IdentityType = "SystemAssigned" } New-AzContainerGroup @parameters
Pobierz szczegóły tożsamości zarządzanej przypisanej przez system przy użyciu polecenia
Get-AzContainerGroup
iFormat-List
wybierz tylkoIdentity
właściwość.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-existing-container>" } Get-AzContainerGroup @parameters | Format-List Identity
Przejrzyj dane wyjściowe polecenia . Powinien zawierać unikatowe identyfikatory tożsamości i dzierżawy.
Identity : { "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned" }
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
Utwórz tożsamość zarządzaną przypisaną przez użytkownika, która może być używana z co najmniej jedną usługą platformy Azure w sposób przenośny.
Użyj
az identity create
polecenia , aby utworzyć nową tożsamość zarządzaną przypisaną przez użytkownika w grupie zasobów platformy Azure.az identity create \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-new-managed-identity>"
Pobieranie listy tożsamości zarządzanych przypisanych przez użytkownika w grupie zasobów przy użyciu polecenia
az identity list
az identity list \ --resource-group "<name-of-existing-resource-group>"
Przejrzyj dane wyjściowe polecenia . Zapisz wartość
id
pola, ponieważ ten w pełni kwalifikowany identyfikator zasobu służy do przypisywania tożsamości zarządzanej przypisanej przez użytkownika do zasobu platformy Azure.{ "clientId": "11112222-bbbb-3333-cccc-4444dddd5555", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned", "location": "<azure-location>", "name": "msdocs-identity-example-user-assigned", "principalId": "cccccccc-dddd-eeee-3333-444444444444", "resourceGroup": "msdocs-identity-example", "systemData": null, "tags": {}, "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Uwaga
W tym przykładzie
id
wartość to/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned
. W tym przykładzie użyto fikcyjnych danych, a identyfikator będzie inny niż w tym przykładzie.
Utwórz plik Bicep w celu zdefiniowania tożsamości zarządzanej przypisanej przez użytkownika i nadaj plikowi nazwę user-assigned-managed-identity.bicep. Ustaw te minimalne właściwości:
Wartość name
Użyj opcjonalnego parametru o nazwie identityName
i wygeneruj unikatową wartość domyślnąlocation
Ustaw na lokalizację grupy zasobów metadata description = 'Create a user-assigned managed identity.' param identityName string = uniqueString(subscription().id, resourceGroup().id) resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { name: identityName location: resourceGroup().location } output id string = identity.id output name string = identity.name
Wdróż szablon Bicep przy użyciu polecenia
az deployment group create
. Określ nazwę szablonu Bicep i grupę zasobów platformy Azure.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file "user-assigned-managed-identity.bicep"
Przejrzyj dane wyjściowe z wdrożenia. Dane wyjściowe zawierają unikatowy identyfikator tożsamości zarządzanej
properties.outputs.name.value
we właściwości . Zapisz tę wartość, ponieważ jest ona wymagana do użycia podczas tworzenia nowego zasobu platformy Azure w dalszej części tego przewodnika.{ "type": "String", "value": "msdocs-identity-example-user-assigned" }
Uwaga
W tym przykładzie wartość
name.value
tomsdocs-identity-example-user-assigned
. W tym przykładzie użyto fikcyjnych danych, a identyfikator będzie inny niż w tym przykładzie.
Wprowadź tożsamość zarządzaną na globalnym pasku wyszukiwania.
W obszarze Usługi wybierz pozycję Tożsamości zarządzane.
W okienku Wystąpienia kontenera wybierz pozycję Utwórz.
W okienku Podstawowe skonfiguruj następujące opcje, a następnie wybierz pozycję Przejrzyj i utwórz:
Wartość Subskrypcja Wybierz subskrypcję platformy Azure Grupa zasobów Utwórz nową grupę zasobów lub wybierz istniejącą grupę zasobów Region Wybieranie obsługiwanego regionu platformy Azure dla subskrypcji Nazwa/nazwisko Podaj globalnie unikatową nazwę W okienku Przeglądanie i tworzenie poczekaj na pomyślne zakończenie walidacji konta, a następnie wybierz pozycję Utwórz.
Portal automatycznie przechodzi do okienka Wdrażanie . Zaczekaj na zakończenie wdrażania.
Poczekaj na zakończenie wdrażania tożsamości zarządzanej.
Utwórz nową tożsamość zarządzaną przypisaną przez użytkownika przy użyciu jej
New-AzUserAssignedIdentity
w grupie zasobów platformy Azure.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-new-managed-identity>" Location = "<azure-region>" } New-AzUserAssignedIdentity @parameters
Użyj
Get-AzUserAssignedIdentity
polecenia , aby uzyskać listę tożsamości zarządzanych przypisanych przez użytkownika w grupie zasobów.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" } Get-AzUserAssignedIdentity @parameters | Format-List Name, Id
Przejrzyj dane wyjściowe polecenia . Zapisz wartość
Id
pola, ponieważ ten w pełni kwalifikowany identyfikator zasobu służy do przypisywania tożsamości zarządzanej przypisanej przez użytkownika do zasobu platformy Azure.Name : msdocs-identity-example-user-assigned Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned
Uwaga
W tym przykładzie
Id
wartość to/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned
. W tym przykładzie użyto fikcyjnych danych, a identyfikator będzie inny niż w tym przykładzie.
Tworzenie usługi platformy Azure przy użyciu tożsamości zarządzanej przypisanej przez użytkownika
Przypisz wcześniej utworzoną tożsamość zarządzaną przypisaną przez użytkownika do nowej usługi hosta platformy Azure. Ta sekcja tworzy zasób aplikacji internetowej usług aplikacja systemu Azure Services.
Utwórz nowy plan usługi App Service przy użyciu polecenia
az appservice plan create
.az appservice plan create \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-new-plan>"
Przypisz tożsamość zarządzaną przypisaną przez użytkownika do nowej aplikacji internetowej za pomocą polecenia
az webapp create
. Użyj pola zarejestrowanegoid
wcześniej w tym przewodniku jako wartości parametrussign-identity
.az webapp create \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-existing-web-app>" \ --plan "<name-of-existing-plan>" \ --assign-identity "<resource-id-recorded-earlier>"
Uzyskaj szczegółowe informacje dotyczące wszystkich tożsamości przypisanych do tego konta przy użyciu i
az webapp show
zapytania JMESPath.az webapp show \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-existing-account>" \ --query "identity"
Przejrzyj dane wyjściowe polecenia . Powinna zawierać zarówno tożsamość zarządzaną przypisaną przez użytkownika.
{ "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": { "clientId": "11112222-bbbb-3333-cccc-4444dddd5555", "principalId": "cccccccc-dddd-eeee-3333-444444444444" } } }
Utwórz inny plik Bicep o nazwie app-service-web-app.bicep i zdefiniuj plan usługi aplikacja systemu Azure i aplikację internetową. Ustaw następujące właściwości dla tych zasobów:
Zasób Wartość name
Istniejąca tożsamość zarządzana Używanie parametru o nazwie identityName
name
Plan usługi App Service Używanie parametru o nazwie planName
location
Plan usługi App Service Ustaw na lokalizację grupy zasobów name
Aplikacja sieci web Używanie parametru o nazwie webAppName
location
Aplikacja sieci web Ustaw na lokalizację grupy zasobów identity.type
UserAssigned
identity.userAssignedIdentities.{identity.id}
{}
properties.serverFarmId
plan.id
metadata description = 'Creates an Azure App Service plan and web app with a user-assigned managed identity.' @description('The name of the app service plan.') param planName string @description('The name of the web app.') param webAppName string @description('The name of the user-assigned managed identity.') param identityName string resource identity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' existing = { name: identityName } resource plan 'Microsoft.Web/serverfarms@2023-12-01' = { name: planName location: resourceGroup().location } resource webApp 'Microsoft.Web/sites@2023-12-01' = { name: webAppName location: resourceGroup().location identity: { type: 'UserAssigned' userAssignedIdentities: { '${identity.id}': {} } } properties: { serverFarmId: plan.id } } output userAssignedIdentity object = webApp.identity
Utwórz plik parametrów Bicep o nazwie app-service-web-app.
bicepparam
. W tym pliku parametrów utwórz unikatową nazwę aplikacji internetowej i zaplanuj odpowiednio przy użyciuplanName
parametrów iwebAppName
. Następnie podaj nazwę tożsamości zarządzanej przypisanej przez użytkownika jako wartość parametruidentityName
.using './app-service-web-app.bicep' param planName = '<name-of-new-app-service-plan>' param webAppName = '<name-of-new-web-app>' param identityName = '<name-of-existing-managed-identity>'
Wdróż szablon Bicep przy użyciu polecenia
az deployment group create
. Określ nazwę szablonu Bicep, pliku parametrów i grupy zasobów platformy Azure.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --parameters "app-service-web-app.bicepparam" \ --template-file "app-service-web-app.bicep"
Przejrzyj dane wyjściowe z wdrożenia. Dane wyjściowe zawierają obiekt tożsamości z wystąpienia kontenera
properties.outputs.userAssignedIdentity.value
we właściwości .{ "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": { "clientId": "11112222-bbbb-3333-cccc-4444dddd5555", "principalId": "cccccccc-dddd-eeee-3333-444444444444" } } }
Wprowadź ciąg Aplikacja internetowa na pasku wyszukiwania globalnego.
W obszarze Usługi wybierz pozycję App Services.
W okienku App Services wybierz pozycję Utwórz, a następnie pozycję Aplikacja internetowa.
W okienku Podstawowe skonfiguruj następujące opcje, a następnie wybierz pozycję Przejrzyj i utwórz:
Wartość Subskrypcja Wybierz subskrypcję platformy Azure Grupa zasobów Utwórz nową grupę zasobów lub wybierz istniejącą grupę zasobów Nazwa/nazwisko Podaj globalnie unikatową nazwę Planowanie Tworzenie nowego planu lub wybieranie istniejącego planu W okienku Przeglądanie i tworzenie poczekaj na pomyślne zakończenie walidacji konta, a następnie wybierz pozycję Utwórz.
Portal automatycznie przechodzi do okienka Wdrażanie . Zaczekaj na zakończenie wdrażania.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu , aby przejść do nowego zasobu usługi Azure Container Instances.
W okienku dla nowego wystąpienia kontenera wybierz pozycję Tożsamość w sekcji Ustawienia menu usługi.
W okienku Tożsamość wybierz opcję Przypisane przez użytkownika.
Wybierz pozycję Dodaj , aby otworzyć okno dialogowe, aby przypisać istniejące tożsamości zarządzane przypisane przez użytkownika. W oknie dialogowym wybierz istniejącą tożsamość zarządzaną przypisaną przez użytkownika, a następnie wybierz pozycję Dodaj.
Na koniec przejrzyj listę tożsamości zarządzanych przypisanych przez użytkownika skojarzonych z aplikacją internetową. Powinna zawierać nazwę tożsamości, nazwę grupy zasobów i identyfikator subskrypcji.
Użyj
New-AzWebApp
polecenia , aby utworzyć nową aplikację internetową usługi aplikacja systemu Azure Service.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-new-web-app>" Location = "<azure-region>" } New-AzWebApp @parameters
Popraw nowo utworzoną aplikację internetową, aby ustawić
identity.type
właściwość naUserAssigned
i dodać istniejącą tożsamość zarządzaną przypisaną przez użytkownika doidentity.userAssignedIdentities
właściwości . Aby wykonać to zadanie, najpierw podajid
pole zarejestrowane wcześniej w tym przewodniku jako wartość zmiennejidentityId
powłoki. Następnie skonstruuj obiekt ładunku i przekonwertuj go na format JSON. Na koniec użyjInvoke-AzRestMethod
czasownikaPATCH
HTTP, aby zaktualizować istniejącą aplikację internetową.$identityId = "<resource-id-recorded-earlier>" $payload = @{ identity = @{ type = "UserAssigned" userAssignedIdentities = @{ "$identityId" = @{} } } } | ConvertTo-Json -Depth 3 $parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-existing-web-app>" ResourceProviderName = 'Microsoft.Web' ResourceType = 'sites' ApiVersion = '2023-12-01' Method = 'PATCH' Payload = $payload } Invoke-AzRestMethod @parameters
Uzyskaj szczegółowe informacje dotyczące wszystkich tożsamości przypisanych do aplikacji internetowej przy użyciu metody
Get-AzWebApp
,Select-Object
iConvertTo-Json
wybierając tylkoIdentity
właściwość .$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-existing-web-app>" } Get-AzWebApp @parameters | Select-Object Identity | ConvertTo-Json -Depth 3
Przejrzyj dane wyjściowe polecenia . Powinien zawierać unikatowe identyfikatory tożsamości i dzierżawy.
{ "Identity": { "Type": "UserAssigned", "TenantId": null, "PrincipalId": null, "UserAssignedIdentities": { "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned": { "PrincipalId": "cccccccc-dddd-eeee-3333-444444444444", "ClientId": "11112222-bbbb-3333-cccc-4444dddd5555" } } } }