Verwenden von verwalteten Identitäten mit Azure-Diensten zum Herstellen einer Verbindung mit Azure Cosmos DB for NoSQL
GILT FÜR: NoSQL
Abbildung der Sequenz des Bereitstellungsleitfadens, einschließlich dieser Phasen (in ihrer Reihenfolge): Übersicht, Konzepte, Vorbereiten, Rollenbasierte Zugriffssteuerung, Netzwerk und Verweis. Die Phase „Vorbereiten“ ist zurzeit hervorgehoben.
In diesem Artikel werden die Schritte zum Erstellen verwalteter Identitäten für die Verwendung mit einer bereitgestellten Anwendung überprüft, die mit Azure Cosmos DB für NoSQL verbunden ist.
Verwaltete Identitäten sind eine von vielen Arten von Identitätsressourcen in Microsoft Entra ID, die Anwendungen verwenden können, wenn sie sich mit Diensten verbinden, die die Microsoft Entra-Authentifizierung unterstützen. Verwaltete Identitäten können anstelle herkömmlicher ressourceneigener Anmeldeinformationen wie Schlüssel verwendet werden. In Azure bieten verwaltete Identitäten eine Möglichkeit für Ihre Anwendungen, ein Microsoft Entra-Token für die Authentifizierung bei Azure-Diensten abzurufen, ohne dass Sie eine große Menge Authentifizierungscode schreiben müssen.
Sie können Microsoft Entra verwenden, um sich bei Azure-Diensten zu authentifizieren, einschließlich, aber nicht beschränkt auf:
- Azure SQL
- Azure KI
- Azure Cosmos DB
- Azure Storage (in englischer Sprache)
- Azure Event Hubs
- Azure Container Registry
Sie können verwaltete Identitäten verwenden, um den Prinzipal darzustellen, der sich von anderen Azure-Diensten bei einem Azure-Dienst authentifiziert, einschließlich, aber nicht beschränkt auf:
- Azure Kubernetes Service
- Azure Container Apps
- Azure Virtual Machines
- Azure-Funktionen
- Azure App Service
- Azure Spring Apps
- Azure Service Fabric
Verwaltete Identitäten ermöglichen mehrere sichere Szenarien, in denen sich verschiedene Azure-Dienste miteinander verbinden können. Beispiele hierfür sind:
- Erstellen einer vom System zugewiesenen verwalteten Identität für eine Anwendung in Azure Spring Apps zum Herstellen einer Verbindung mit und Abfragen eines Azure SQL-Kontos
- Verwenden einer einzelnen vom Benutzer zugewiesenen verwalteten Identität mit Azure Kubernetes Service und Azure Functions zum Ausgeben von Anforderungen an ein Azure AI-Konto
- Verwenden einer verwalteten Identität für ein Azure Cosmos DB-Konto zum Speichern von Schlüsseln in Azure Key Vault
Weitere Informationen finden Sie unter verwaltete Identitäten für Azure-Ressourcen.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Bei lokaler Verwendung von Azure PowerShell:
- Installieren der aktuellen Version des Az PowerShell-Moduls.
- Stellen Sie eine Verbindung mit Ihrem Azure-Konto mit dem Cmdlet Connect-AzAccount her.
- Bei Verwendung von Azure Cloud Shell:
- Weitere Informationen finden Sie in der Übersicht über Azure Cloud Shell.
Erstellen eines Azure-Dienstes mit einer dem System zugewiesenen verwalteten Identität
Erstellen eines neuen Azure-Dienstes mit einer dem System zugewiesenen verwalteten Identität. In diesem Abschnitt wird eine Azure Container Instances-Ressource erstellt.
Verwenden Sie
az container create
, um eine neue Containerinstanz zu erstellen. Konfigurieren Sie das Konto für die Verwendung einer vom System zugewiesenen verwalteten Identität mithilfe desassign-identity
Parameters.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
Rufen Sie die Details für die vom System zugewiesene verwaltete Identität mithilfe
az container show
und einer JMESPath-Abfrage ab.az container show \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-existing-container>" \ --query "identity"
Überprüfen Sie die Ausgabe des Befehls. Sie sollte die eindeutigen Bezeichner für die Identität und den Mandanten enthalten.
{ "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned", "userAssignedIdentities": null }
Erstellen Sie eine neue Bicep-Datei, um eine neue Containerinstanz zu definieren. Nennen Sie die Datei container-instance.bicep. Legen Sie diese Eigenschaften für die Container-Instanz fest:
Wert name
Verwenden eines Parameters mit dem Namen instanceName
location
Auf den Standort der Ressourcengruppe festlegen 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
Erstellen Sie eine neue Bicep-Parameterdatei namens container-instance.
bicepparam
. Erstellen Sie in dieser Parameterdatei mithilfe desinstanceName
Parameters einen eindeutigen Namen für Ihre Containerinstanz.using './container-instance.bicep' param instanceName = '<name-of-new-container-instance>'
Bereitstellen der Bicep-Vorlage mithilfe von
az deployment group create
. Geben Sie den Namen der Bicep-Vorlage, der Parameterdatei und der Azure-Ressourcengruppe an.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --parameters "container-instance.bicepparam" \ --template-file "container-instance.bicep"
Überprüfen Sie die Ausgabe der Bereitstellung. Die Ausgabe enthält das Identitätsobjekt aus der Containerinstanz in der
properties.outputs.systemAssignedIdentity.value
Eigenschaft.{ "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned" }
Melden Sie sich beim Azure-Portal (https://portal.azure.com) an.
Geben Sie Azure-Containerinstanzen in die globale Suchleiste ein.
Wählen Sie in Diensten Containerinstanzen aus.
Wählen Sie im Bereich Containerinstanzen die Option Erstellen aus.
Konfigurieren Sie im Bereich Allgemeine Informationen die folgenden Optionen, und wählen Sie dann Bewertung + Create:
Wert Abonnement Wählen Sie Ihr Azure-Abonnement aus. Ressourcengruppe Erstellen Sie eine neue Ressourcengruppe, oder wählen Sie eine vorhandene Ressourcengruppe aus Containername Geben Sie einen global eindeutigen Namen an. Region Wählen Sie eine unterstützte Azure-Region für Ihre Subscription Tipp
Sie können alle nicht spezifizierten Optionen auf ihren Standardwerten belassen.
Warten Sie im Bereich Bewertung + Create, bis die Validierung Ihres Kontos erfolgreich abgeschlossen ist, und wählen Sie dann Create.
Das Portal navigiert automatisch zum Bereitstellungsbereich. Warten Sie, bis die Bereitstellung abgeschlossen ist.
Sobald die Bereitstellung abgeschlossen ist, wählen Sie Gehe zu Ressource, um zu der neuen Azure Container Instances-Ressource zu navigieren.
Wählen Sie im Bereich für die neue Containerinstanz die Option Identität im Abschnitt Einstellungen des Dienstmenüs aus.
Aktivieren Sie im Bereich Identität die vom System zugewiesene verwaltete Identität, indem Sie die Option Status auf Ein festlegen. Wählen Sie dann Speichern aus, und lösen Sie alle Eingabeaufforderungen zum Übernehmen der Änderung auf.
Nachdem die vom System zugewiesene verwaltete Identität bereit ist, überprüfen Sie den Wert der Objekt-ID-Eigenschaft (Prinzipal-ID ). Der Wert dieser Eigenschaft ist der eindeutige Bezeichner für die Identität.
Tipp
In diesem Beispielfoto ist
bbbbbbbb-1111-2222-3333-cccccccccccc
der eindeutige Bezeichner für die vom System zugewiesene verwaltete Identität.
Erstellen Sie mit
New-AzContainerInstanceObject
ein Objekt, das einen Container darstellt, und speichern Sie es in einer Variablen namens$container
. Verwenden Sie dann dieses Containerobjekt, um eine neue Containerinstanz mitNew-AzContainerGroup
zu erstellen. Konfigurieren Sie das Konto so, dass eine vom System zugewiesene verwaltete Identität verwendet wird, indem Sie denIdentityType
Parameter aufSystemAssigned
festlegen.$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
Rufen Sie die Details für die vom System zugewiesene verwaltete Identität mit
Get-AzContainerGroup
undFormat-List
ab und wählen Sie nur dieIdentity
Eigenschaft aus.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-existing-container>" } Get-AzContainerGroup @parameters | Format-List Identity
Überprüfen Sie die Ausgabe des Befehls. Sie sollte die eindeutigen Bezeichner für die Identität und den Mandanten enthalten.
Identity : { "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned" }
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität
Erstellen Sie eine vom Benutzer zugewiesene verwaltete Identität, die auf tragbare Weise mit mindestens einem Azure-Dienst verwendet werden kann.
Verwenden Sie
az identity create
, um eine neue, dem Benutzer zugewiesene verwaltete Identität in Ihrer Azure-Ressourcengruppe zu erstellen.az identity create \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-new-managed-identity>"
Abrufen der Liste der vom Benutzer zugewiesenen verwalteten Identitäten in Ihrer Ressourcengruppe mithilfe von
az identity list
az identity list \ --resource-group "<name-of-existing-resource-group>"
Überprüfen Sie die Ausgabe des Befehls. Notieren Sie den Wert des
id
Felds, da dieser vollqualifizierte Ressourcenbezeichner verwendet wird, um Ihrer Azure-Ressource die vom Benutzer zugewiesene verwaltete Identität zuzuweisen.{ "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" }
Hinweis
In diesem Beispiel wäre der Wert
id
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned
. In diesem Beispiel werden fiktive Daten verwendet, Ihr Bezeichner unterscheidet sich von diesem Beispiel.
Erstellen Sie eine Bicep-Datei, um eine vom Benutzer zugewiesene verwaltete Identität zu definieren und die Datei user-assigned-managed-identity.bicep zu benennen. Legen Sie diese minimalen Eigenschaften fest:
Wert name
Verwenden eines optionalen Parameters namens identityName
und Generieren eines eindeutigen Standardwertslocation
Auf den Standort der Ressourcengruppe festlegen 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
Bereitstellen der Bicep-Vorlage mithilfe von
az deployment group create
. Geben Sie den Namen der Bicep-Vorlage und der Azure-Ressourcengruppe an.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --template-file "user-assigned-managed-identity.bicep"
Überprüfen Sie die Ausgabe der Bereitstellung. Die Ausgabe enthält den eindeutigen Bezeichner der verwalteten Identität in der
properties.outputs.name.value
Eigenschaft. Notieren Sie diesen Wert, da er beim Erstellen einer neuen Azure-Ressource später in diesem Handbuch verwendet werden muss.{ "type": "String", "value": "msdocs-identity-example-user-assigned" }
Hinweis
In diesem Beispiel wäre der
name.value
msdocs-identity-example-user-assigned
. In diesem Beispiel werden fiktive Daten verwendet, Ihr Bezeichner unterscheidet sich von diesem Beispiel.
Geben Sie Verwaltete Identität in der globalen Suchleiste ein.
Wählen Sie unter DiensteVerwaltete Identitäten aus.
Wählen Sie im Bereich Containerinstanzen die Option Erstellen aus.
Konfigurieren Sie im Bereich Allgemeine Informationen die folgenden Optionen, und wählen Sie dann Bewertung + Create:
Wert Abonnement Wählen Sie Ihr Azure-Abonnement aus. Ressourcengruppe Erstellen Sie eine neue Ressourcengruppe, oder wählen Sie eine vorhandene Ressourcengruppe aus Region Wählen Sie eine unterstützte Azure-Region für Ihre Subscription Name Geben Sie einen global eindeutigen Namen an. Warten Sie im Bereich Bewertung + Create, bis die Validierung Ihres Kontos erfolgreich abgeschlossen ist, und wählen Sie dann Create.
Das Portal navigiert automatisch zum Bereitstellungsbereich. Warten Sie, bis die Bereitstellung abgeschlossen ist.
Warten Sie, bis die Bereitstellung der verwalteten Identität abgeschlossen ist.
Erstellen Sie eine neue, dem Benutzer zugewiesene verwaltete Identität mit
New-AzUserAssignedIdentity
in Ihrer Azure-Ressourcengruppe.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-new-managed-identity>" Location = "<azure-region>" } New-AzUserAssignedIdentity @parameters
Verwenden Sie
Get-AzUserAssignedIdentity
zum Abrufen einer Liste der vom Benutzer zugewiesenen verwalteten Identitäten in Ihrer Ressourcengruppe.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" } Get-AzUserAssignedIdentity @parameters | Format-List Name, Id
Überprüfen Sie die Ausgabe des Befehls. Notieren Sie den Wert des
Id
Felds, da dieser vollqualifizierte Ressourcenbezeichner verwendet wird, um Ihrer Azure-Ressource die vom Benutzer zugewiesene verwaltete Identität zuzuweisen.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
Hinweis
In diesem Beispiel wäre der Wert
Id
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned
. In diesem Beispiel werden fiktive Daten verwendet, Ihr Bezeichner unterscheidet sich von diesem Beispiel.
Erstellen eines Azure-Dienstes mit einer dem Benutzer zugewiesenen verwalteten Identität
Weisen Sie die zuvor erstellte, dem Benutzer zugewiesene verwaltete Identität einem neuen Azure-Hostdienst zu. In diesem Abschnitt wird eine Azure-App Services-Web-App-Ressource erstellt.
Erstellen Sie einen neuen App Service-Plan mit
az appservice plan create
.az appservice plan create \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-new-plan>"
Weisen Sie die vom Benutzer zugewiesene verwaltete Identität einer neuen Web-App mit
az webapp create
zu. Verwenden Sie dasid
weiter oben in dieser Anleitung aufgezeichnete Feld als Wert desssign-identity
Parameters.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>"
Rufen Sie die Details für alle Identitäten ab, die diesem Konto zugewiesen sind, mit
az webapp show
und einer JMESPath-Abfrage.az webapp show \ --resource-group "<name-of-existing-resource-group>" \ --name "<name-of-existing-account>" \ --query "identity"
Überprüfen Sie die Ausgabe des Befehls. Sie sollte sowohl die vom Benutzer zugewiesene verwaltete Identität enthalten.
{ "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" } } }
Erstellen Sie eine weitere Bicep-Datei mit dem Namen app-service-web-app.bicep, und definieren Sie einen Azure-App Serviceplan und eine Web-App. Legen Sie diese Eigenschaften für diese Ressourcen fest:
Resource Wert name
Vorhandene verwaltete Identität Verwenden eines Parameters mit dem Namen identityName
name
App Service-Plan Verwenden eines Parameters mit dem Namen planName
location
App Service-Plan Auf den Standort der Ressourcengruppe festlegen name
Web-App Verwenden eines Parameters mit dem Namen webAppName
location
Web-App Auf den Standort der Ressourcengruppe festlegen 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
Erstellen Sie eine Bicep-Parameterdatei mit dem Namen app-service-web-app.
bicepparam
. Erstellen Sie in dieser Parameterdatei einen eindeutigen Namen für Ihre Webanwendung und Ihren Plan, indem Sie die ParameterplanName
undwebAppName
verwenden. Geben Sie dann den Namen der vom Benutzer zugewiesenen verwalteten Identität als Wert desidentityName
Parameters an.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>'
Bereitstellen der Bicep-Vorlage mithilfe von
az deployment group create
. Geben Sie den Namen der Bicep-Vorlage, der Parameterdatei und der Azure-Ressourcengruppe an.az deployment group create \ --resource-group "<name-of-existing-resource-group>" \ --parameters "app-service-web-app.bicepparam" \ --template-file "app-service-web-app.bicep"
Überprüfen Sie die Ausgabe der Bereitstellung. Die Ausgabe enthält das Identitätsobjekt aus der Containerinstanz in der
properties.outputs.userAssignedIdentity.value
Eigenschaft.{ "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" } } }
Geben Sie Web app in die globale Suchleiste ein.
Wählen Sie in Dienste die Option App Services aus.
Wählen Sie im Bereich App Services die Option Erstellen und dann Web App aus.
Konfigurieren Sie im Bereich Allgemeine Informationen die folgenden Optionen, und wählen Sie dann Bewertung + Create:
Wert Abonnement Wählen Sie Ihr Azure-Abonnement aus. Ressourcengruppe Erstellen Sie eine neue Ressourcengruppe, oder wählen Sie eine vorhandene Ressourcengruppe aus Name Geben Sie einen global eindeutigen Namen an. Planen Erstellen Sie einen neuen Plan oder wählen Sie einen bestehenden Plan aus Warten Sie im Bereich Bewertung + Create, bis die Validierung Ihres Kontos erfolgreich abgeschlossen ist, und wählen Sie dann Create.
Das Portal navigiert automatisch zum Bereitstellungsbereich. Warten Sie, bis die Bereitstellung abgeschlossen ist.
Sobald die Bereitstellung abgeschlossen ist, wählen Sie Gehe zu Ressource, um zu der neuen Azure Container Instances-Ressource zu navigieren.
Wählen Sie im Bereich für die neue Containerinstanz die Option Identität im Abschnitt Einstellungen des Dienstmenüs aus.
Wählen Sie im Bereich Identität die Option Benutzer zugewiesen.
Wählen Sie Hinzufügen aus, um ein Dialogfeld zu öffnen, um vorhandene vom Benutzer zugewiesene verwaltete Identitäten zuzuweisen. Wählen Sie im Dialogfeld Ihre vorhandene, dem Benutzer zugewiesene verwaltete Identität aus und wählen Sie dann Hinzufügen aus.
Überprüfen Sie schließlich die Liste der von Benutzern zugewiesenen verwalteten Identitäten, die Ihrer Web-App zugeordnet sind. Er sollte den Namen der Identität, den Ressourcengruppennamen und den Abonnementbezeichner enthalten.
Verwenden Sie
New-AzWebApp
, um eine neue Azure App Service-Webanwendung zu erstellen.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-new-web-app>" Location = "<azure-region>" } New-AzWebApp @parameters
Patchen Sie die neu erstellte Web-App, um die
identity.type
Eigenschaft aufUserAssigned
festzulegen und Ihre vorhandene vom Benutzer zugewiesene verwaltete Identität deridentity.userAssignedIdentities
Eigenschaft hinzuzufügen. Um diese Aufgabe auszuführen, geben Sie zuerst dasid
Feld an, das weiter oben in dieser Anleitung als Wert deridentityId
Shellvariablen aufgezeichnet wurde. Erstellen Sie dann ein Nutzlastobjekt, und konvertieren Sie es in JSON. Verwenden Sie schließlichInvoke-AzRestMethod
mit demPATCH
HTTP-Verb, um die vorhandene Web-App zu aktualisieren.$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
Rufen Sie die Details für alle der Webanwendung zugewiesenen Identitäten ab, indem Sie
Get-AzWebApp
,Select-Object
, undConvertTo-Json
verwenden und nur dieIdentity
Eigenschaft auswählen.$parameters = @{ ResourceGroupName = "<name-of-existing-resource-group>" Name = "<name-of-existing-web-app>" } Get-AzWebApp @parameters | Select-Object Identity | ConvertTo-Json -Depth 3
Überprüfen Sie die Ausgabe des Befehls. Sie sollte die eindeutigen Bezeichner für die Identität und den Mandanten enthalten.
{ "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" } } } }