Freigeben über


Verwenden von verwalteten Identitäten mit Azure-Diensten zum Herstellen einer Verbindung mit Azure Cosmos DB for NoSQL

GILT FÜR: NoSQL

Abbildung der aktuellen Phase („Vorbereiten“) in der Sequenz des Bereitstellungsleitfadens

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

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

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.

  1. 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 des assign-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
    
  2. 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"
    
  3. Ü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
    }
    
  1. 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    
    
  2. Erstellen Sie eine neue Bicep-Parameterdatei namens container-instance.bicepparam. Erstellen Sie in dieser Parameterdatei mithilfe des instanceName Parameters einen eindeutigen Namen für Ihre Containerinstanz.

    using './container-instance.bicep'
    
    param instanceName = '<name-of-new-container-instance>'
    
  3. 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"
    
  4. Ü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"
    }
    
  1. Melden Sie sich beim Azure-Portal (https://portal.azure.com) an.

  2. Geben Sie Azure-Containerinstanzen in die globale Suchleiste ein.

    Screenshot der globalen Suchleiste im Azure-Portal.

  3. Wählen Sie in Diensten Containerinstanzen aus.

    Screenshot der im Suchmenü ausgewählten Option Container-Instanzen.

  4. Wählen Sie im Bereich Containerinstanzen die Option Erstellen aus.

    Screenshot der Option Erstellen im Fenster für Azure Container Instances.

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

    Screenshot des Bereichs Grundlagen der Ressourcenerstellung für Azure Container Instances.

    Tipp

    Sie können alle nicht spezifizierten Optionen auf ihren Standardwerten belassen.

  6. Warten Sie im Bereich Bewertung + Create, bis die Validierung Ihres Kontos erfolgreich abgeschlossen ist, und wählen Sie dann Create.

    Screenshot des Schritts der Ressourcenvalidierung bei der Erstellung einer Containerinstanz.

  7. Das Portal navigiert automatisch zum Bereitstellungsbereich. Warten Sie, bis die Bereitstellung abgeschlossen ist.

  8. Sobald die Bereitstellung abgeschlossen ist, wählen Sie Gehe zu Ressource, um zu der neuen Azure Container Instances-Ressource zu navigieren.

    Screenshot einer vollständig bereitgestellten Azure Container Instances-Ressource mit der hervorgehobenen Option Gehe zu Ressource.

  9. Wählen Sie im Bereich für die neue Containerinstanz die Option Identität im Abschnitt Einstellungen des Dienstmenüs aus.

    Screenshot der Option

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

    Screenshot der Einstellung der Option „Status“ auf „Ein“ für eine vom System zugewiesene verwaltete Identität.

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

    Screenshot der Details zu einer aktivierten vom System zugewiesenen verwalteten Identität.

    Tipp

    In diesem Beispielfoto ist bbbbbbbb-1111-2222-3333-cccccccccccc der eindeutige Bezeichner für die vom System zugewiesene verwaltete Identität.

  1. 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 mit New-AzContainerGroup zu erstellen. Konfigurieren Sie das Konto so, dass eine vom System zugewiesene verwaltete Identität verwendet wird, indem Sie den IdentityType Parameter auf SystemAssignedfestlegen.

    $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
    
  2. Rufen Sie die Details für die vom System zugewiesene verwaltete Identität mit Get-AzContainerGroup und Format-List ab und wählen Sie nur die Identity Eigenschaft aus.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-container>"
    }
    Get-AzContainerGroup @parameters | Format-List Identity
    
  3. Ü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.

  1. 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>"
    
  2. 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>"    
    
  3. Ü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.

  1. 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 Standardwerts
    location 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
    
  2. 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"
    
  3. Ü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.

  1. Geben Sie Verwaltete Identität in der globalen Suchleiste ein.

  2. Wählen Sie unter DiensteVerwaltete Identitäten aus.

    Screenshot der Option

  3. Wählen Sie im Bereich Containerinstanzen die Option Erstellen aus.

    Screenshot der Option Erstellen im Fensterbereich für verwaltete Identitäten.

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

    Screenshot des Bereichs Grundlagen für die Erstellung von verwalteten Identitätsressourcen.

  5. Warten Sie im Bereich Bewertung + Create, bis die Validierung Ihres Kontos erfolgreich abgeschlossen ist, und wählen Sie dann Create.

    Screenshot des Schritts der Ressourcenvalidierung bei der Erstellung einer verwalteten Identität.

  6. Das Portal navigiert automatisch zum Bereitstellungsbereich. Warten Sie, bis die Bereitstellung abgeschlossen ist.

  7. Warten Sie, bis die Bereitstellung der verwalteten Identität abgeschlossen ist.

    Screenshot einer vollständig bereitgestellten verwalteten Identitätsressource.

  1. 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
    
  2. 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
    
  3. Ü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.

  1. 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>"
    
  2. Weisen Sie die vom Benutzer zugewiesene verwaltete Identität einer neuen Web-App mit az webapp create zu. Verwenden Sie das id weiter oben in dieser Anleitung aufgezeichnete Feld als Wert des ssign-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>"
    
  3. 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"   
    
  4. Ü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"
        }
      }
    }
    
  1. 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
    
  2. 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 Parameter planName und webAppName verwenden. Geben Sie dann den Namen der vom Benutzer zugewiesenen verwalteten Identität als Wert des identityName 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>'
    
  3. 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"
    
  4. Ü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"
        }
      }
    }
    
  1. Geben Sie Web app in die globale Suchleiste ein.

  2. Wählen Sie in Dienste die Option App Services aus.

    Screenshot der im Suchmenü ausgewählten Option App Services.

  3. Wählen Sie im Bereich App Services die Option Erstellen und dann Web App aus.

    Screenshot der Optionen Erstellen und Web-App im Fenster für Azure App Service.

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

    Screenshot des Bereichs Grundlagen der Ressourcenerstellung einer Web-App.

  5. Warten Sie im Bereich Bewertung + Create, bis die Validierung Ihres Kontos erfolgreich abgeschlossen ist, und wählen Sie dann Create.

    Screenshot des Schritts der Ressourcenvalidierung bei der Erstellung einer Webanwendungsressource.

  6. Das Portal navigiert automatisch zum Bereitstellungsbereich. Warten Sie, bis die Bereitstellung abgeschlossen ist.

  7. Sobald die Bereitstellung abgeschlossen ist, wählen Sie Gehe zu Ressource, um zu der neuen Azure Container Instances-Ressource zu navigieren.

    Screenshot einer vollständig bereitgestellten Azure App Service-Webanwendungsressource mit hervorgehobener Option Gehe zu Ressource.

  8. Wählen Sie im Bereich für die neue Containerinstanz die Option Identität im Abschnitt Einstellungen des Dienstmenüs aus.

    Screenshot der Option

  9. Wählen Sie im Bereich Identität die Option Benutzer zugewiesen.

    Screenshot der Option

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

    Screenshot der Option

  11. Ü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.

    Screenshot der Liste der vom Benutzer zugewiesenen verwalteten Identitäten, die der aktuellen Web-App zugeordnet sind.

  1. 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
    
  2. Patchen Sie die neu erstellte Web-App, um die identity.type Eigenschaft auf UserAssigned festzulegen und Ihre vorhandene vom Benutzer zugewiesene verwaltete Identität der identity.userAssignedIdentities Eigenschaft hinzuzufügen. Um diese Aufgabe auszuführen, geben Sie zuerst das id Feld an, das weiter oben in dieser Anleitung als Wert der identityId Shellvariablen aufgezeichnet wurde. Erstellen Sie dann ein Nutzlastobjekt, und konvertieren Sie es in JSON. Verwenden Sie schließlich Invoke-AzRestMethod mit dem PATCH 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
    
  3. Rufen Sie die Details für alle der Webanwendung zugewiesenen Identitäten ab, indem Sie Get-AzWebApp, Select-Object, und ConvertTo-Json verwenden und nur die Identity 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
    
  4. Ü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"
          }
        }
      }
    }
    

Nächster Schritt