Share via


Beheerde identiteiten gebruiken met Azure-services om verbinding te maken met Azure Cosmos DB for NoSQL

VAN TOEPASSING OP: NoSQL

Diagram van de huidige locatie ('Voorbereiden') in de volgorde van de implementatiehandleiding.

Diagram van de volgorde van de implementatiehandleiding, inclusief deze locaties, in volgorde: Overzicht, Concepten, Voorbereiden, op rollen gebaseerd toegangsbeheer, Netwerk en Verwijzing. De locatie Voorbereiden is momenteel gemarkeerd.

In dit artikel worden de stappen besproken die nodig zijn om beheerde identiteiten te maken voor gebruik met een geïmplementeerde toepassing die is verbonden met Azure Cosmos DB for NoSQL.

Beheerde identiteiten zijn een van de vele soorten identiteitsbronnen in Microsoft Entra ID voor toepassingen die kunnen worden gebruikt bij het maken van verbinding met services die ondersteuning bieden voor Microsoft Entra-verificatie. Beheerde identiteiten kunnen worden gebruikt in plaats van traditionele referenties die eigendom zijn van resources, zoals sleutels. In Azure bieden beheerde identiteiten een manier voor uw toepassingen om een Microsoft Entra-token te verkrijgen voor verificatie bij Azure-services zonder dat u een grote hoeveelheid verificatiecode hoeft te schrijven.

U kunt Microsoft Entra gebruiken om te verifiëren bij Azure-services, waaronder, maar niet beperkt tot:

  • Azure SQL
  • Azure AI
  • Azure Cosmos DB
  • Azure Storage
  • Azure Event Hubs
  • Azure Container Registry

U kunt beheerde identiteiten gebruiken om de principal weer te geven die wordt geverifieerd bij een Azure-service van andere Azure-services, waaronder, maar niet beperkt tot:

  • Azure Kubernetes Service
  • Azure Container Apps
  • Azure Virtual Machines
  • Azure Functions
  • Azure App Service
  • Azure Spring Apps
  • Azure Service Fabric

Beheerde identiteiten maken meerdere veilige scenario's mogelijk waarbij verschillende Azure-services verbinding met elkaar kunnen maken. Enkele voorbeelden:

  • Een door het systeem toegewezen beheerde identiteit maken voor een toepassing in Azure Spring Apps om verbinding te maken met en een query uit te voeren op een Azure SQL-account
  • Eén door de gebruiker toegewezen beheerde identiteit gebruiken met zowel Azure Kubernetes Service als Azure Functions om aanvragen uit te geven voor een Azure AI-account
  • Een beheerde identiteit gebruiken voor een Azure Cosmos DB-account om sleutels op te slaan in Azure Key Vault

Zie beheerde identiteiten voor Azure-resources voor meer informatie.

Vereisten

Een Azure-service maken met een door het systeem toegewezen beheerde identiteit

Maak een nieuwe Azure-service met een door het systeem toegewezen beheerde identiteit. In deze sectie wordt een Azure Container Instances-resource gemaakt.

  1. Hiermee az container create maakt u een nieuwe containerinstantie. Configureer het account voor het gebruik van een door het systeem toegewezen beheerde identiteit met behulp van de assign-identity parameter.

    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. Haal de details op voor de door het systeem toegewezen beheerde identiteit en az container show een JMESPath-query.

    az container show \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-container>" \
        --query "identity"
    
  3. Controleer de uitvoer van de opdracht. Het moet de unieke id's voor de identiteit en tenant bevatten.

    {
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "SystemAssigned",
      "userAssignedIdentities": null
    }
    
  1. Maak een nieuw Bicep-bestand om een nieuwe containerinstantie te definiëren. Geef het bestand de naam container-instance.bicep. Stel deze eigenschappen in voor de containerinstantie:

    Weergegeven als
    name Een parameter met de naam gebruiken instanceName
    location Instellen op de locatie van de resourcegroep
    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. Maak een nieuw Bicep-parametersbestand met de naam container-instance.bicepparam. Maak in dit parameterbestand een unieke naam voor uw containerinstantie met behulp van de instanceName parameter.

    using './container-instance.bicep'
    
    param instanceName = '<name-of-new-container-instance>'
    
  3. Implementeer de Bicep-sjabloon met behulp van az deployment group create. Geef de naam op van de Bicep-sjabloon, het parameterbestand en de Azure-resourcegroep.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --parameters "container-instance.bicepparam" \
        --template-file "container-instance.bicep"
    
  4. Controleer de uitvoer van de implementatie. De uitvoer bevat het identiteitsobject van de containerinstantie in de properties.outputs.systemAssignedIdentity.value eigenschap.

    {
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "SystemAssigned"
    }
    
  1. Meld u aan bij Azure Portal (https://portal.azure.com).

  2. Voer Azure Container Instances in de algemene zoekbalk in.

    Schermopname van de algemene zoekbalk in Azure Portal.

  3. Selecteer containerinstanties in Services.

    Schermopname van de optie Containerinstanties geselecteerd in het zoekmenu.

  4. Selecteer Maken in het deelvenster Containerinstanties.

    Schermopname van de optie Maken in het deelvenster voor Azure Container Instances.

  5. Configureer in het deelvenster Basisbeginselen de volgende opties en selecteer Vervolgens Beoordelen en maken:

    Weergegeven als
    Abonnement Selecteer uw Azure-abonnement
    Resourcegroep Een nieuwe resourcegroep maken of een bestaande resourcegroep selecteren
    Containernaam Geef een wereldwijd unieke naam op
    Regio Selecteer een ondersteunde Azure-regio voor uw abonnement

    Schermopname van het deelvenster Basisinformatie over het maken van resources in Azure Container Instances.

    Tip

    U kunt alle niet-opgegeven opties op de standaardwaarden laten staan.

  6. Wacht in het deelvenster Controleren en maken tot de validatie van uw account is voltooid en selecteer vervolgens Maken.

    Schermopname van de stap resourcevalidatie in de aanmaakervaring voor een containerinstantie.

  7. De portal gaat automatisch naar het deelvenster Implementatie . Wacht totdat de installatie is voltooid.

  8. Zodra de implementatie is voltooid, selecteert u Ga naar de resource om naar de nieuwe Azure Container Instances-resource te navigeren.

    Schermopname van een volledig geïmplementeerde Azure Container Instances-resource met de optie Ga naar resource gemarkeerd.

  9. Selecteer identiteit in het deelvenster voor het nieuwe containerexemplaren in de sectie Instellingen van het servicemenu.

    Schermopname van de optie Identiteit in het servicemenu voor de containerinstantie.

  10. Schakel in het deelvenster Identiteit de door het systeem toegewezen beheerde identiteit in door de optie Status in te stellen op Aan. Selecteer vervolgens Opslaan en los eventuele prompts op om de wijziging door te voeren.

    Schermopname van het instellen van de optie Status op Aan voor een door het systeem toegewezen beheerde identiteit.

  11. Zodra de door het systeem toegewezen beheerde identiteit gereed is, controleert u de waarde van de eigenschap Object-id (principal). De waarde van deze eigenschap is de unieke id voor de identiteit.

    Schermopname van de details voor een door het systeem toegewezen beheerde identiteit.

    Tip

    In dit voorbeeld is de unieke id voor de door het systeem toegewezen beheerde identiteit bbbbbbbb-1111-2222-3333-cccccccccccc.

  1. Maak een object dat een container vertegenwoordigt en New-AzContainerInstanceObject sla het op in een variabele met de naam $container. Gebruik vervolgens dat containerobject om een nieuw containerexemplaren te maken met New-AzContainerGroup. Configureer het account voor het gebruik van een door het systeem toegewezen beheerde identiteit door de IdentityType parameter in te stellen op SystemAssigned.

    $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. Haal de details op voor de door het systeem toegewezen beheerde identiteit en Get-AzContainerGroup Format-List selecteer alleen de Identity eigenschap.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-container>"
    }
    Get-AzContainerGroup @parameters | Format-List Identity
    
  3. Controleer de uitvoer van de opdracht. Het moet de unieke id's voor de identiteit en tenant bevatten.

    Identity : {
                 "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
                 "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
                 "type": "SystemAssigned"
               }
    

Een door de gebruiker toegewezen beheerde identiteit maken

Maak een door de gebruiker toegewezen beheerde identiteit die op een draagbare manier kan worden gebruikt met een of meer Azure-services.

  1. Hiermee az identity create maakt u een nieuwe door de gebruiker toegewezen beheerde identiteit in uw Azure-resourcegroep.

    az identity create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-managed-identity>"
    
  2. De lijst met door de gebruiker toegewezen beheerde identiteiten in uw resourcegroep ophalen met behulp van az identity list

    az identity list \
        --resource-group "<name-of-existing-resource-group>"    
    
  3. Controleer de uitvoer van de opdracht. Noteer de waarde van het id veld omdat deze volledig gekwalificeerde resource-id wordt gebruikt om de door de gebruiker toegewezen beheerde identiteit toe te wijzen aan uw Azure-resource.

    {
      "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"
    }
    

    Notitie

    In dit voorbeeld is /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assignedde id waarde . In dit voorbeeld worden fictieve gegevens gebruikt en uw id is anders dan in dit voorbeeld.

  1. Maak een Bicep-bestand om een door de gebruiker toegewezen beheerde identiteit te definiëren en geef het bestand de naam door de gebruiker toegewezen beheerde identiteit.bicep. Stel deze minimale eigenschappen in:

    Weergegeven als
    name Een optionele parameter met de naam identityName gebruiken en een unieke standaardwaarde genereren
    location Instellen op de locatie van de resourcegroep
    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. Implementeer de Bicep-sjabloon met behulp van az deployment group create. Geef de naam op van de Bicep-sjabloon en de Azure-resourcegroep.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --template-file "user-assigned-managed-identity.bicep"
    
  3. Controleer de uitvoer van de implementatie. De uitvoer bevat de unieke id van de beheerde identiteit in de properties.outputs.name.value eigenschap. Noteer deze waarde omdat deze moet worden gebruikt bij het maken van een nieuwe Azure-resource verderop in deze handleiding.

    {
      "type": "String",
      "value": "msdocs-identity-example-user-assigned"
    }
    

    Notitie

    In dit voorbeeld is msdocs-identity-example-user-assigneddit name.value . In dit voorbeeld worden fictieve gegevens gebruikt en uw id is anders dan in dit voorbeeld.

  1. Voer beheerde identiteit in de algemene zoekbalk in.

  2. Selecteer beheerde identiteiten in Services.

    Schermopname van de optie Beheerde identiteiten geselecteerd in het zoekmenu.

  3. Selecteer Maken in het deelvenster Containerinstanties.

    Schermopname van de optie Maken in het deelvenster voor beheerde identiteiten.

  4. Configureer in het deelvenster Basisbeginselen de volgende opties en selecteer Vervolgens Beoordelen en maken:

    Weergegeven als
    Abonnement Selecteer uw Azure-abonnement
    Resourcegroep Een nieuwe resourcegroep maken of een bestaande resourcegroep selecteren
    Regio Selecteer een ondersteunde Azure-regio voor uw abonnement
    Naam Geef een wereldwijd unieke naam op

    Schermopname van het deelvenster Basisinformatie voor het maken van resources voor beheerde identiteiten.

  5. Wacht in het deelvenster Controleren en maken tot de validatie van uw account is voltooid en selecteer vervolgens Maken.

    Schermopname van de stap resourcevalidatie in de aanmaakervaring voor een beheerde identiteit.

  6. De portal gaat automatisch naar het deelvenster Implementatie . Wacht totdat de installatie is voltooid.

  7. Wacht tot de implementatie van de beheerde identiteit is voltooid.

    Schermopname van een volledig geïmplementeerde beheerde identiteitsresource.

  1. Maak een nieuwe door de gebruiker toegewezen beheerde identiteit met behulp van New-AzUserAssignedIdentity uw Azure-resourcegroep.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-managed-identity>"
        Location = "<azure-region>"
    }
    New-AzUserAssignedIdentity @parameters
    
  2. Hiermee Get-AzUserAssignedIdentity haalt u een lijst op met door de gebruiker toegewezen beheerde identiteiten in uw resourcegroep.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
    }
    Get-AzUserAssignedIdentity @parameters | Format-List Name, Id
    
  3. Controleer de uitvoer van de opdracht. Noteer de waarde van het Id veld omdat deze volledig gekwalificeerde resource-id wordt gebruikt om de door de gebruiker toegewezen beheerde identiteit toe te wijzen aan uw Azure-resource.

    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
    

    Notitie

    In dit voorbeeld is /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assignedde Id waarde . In dit voorbeeld worden fictieve gegevens gebruikt en uw id is anders dan in dit voorbeeld.

Een Azure-service maken met een door de gebruiker toegewezen beheerde identiteit

Wijs de eerder gemaakte door de gebruiker toegewezen beheerde identiteit toe aan een nieuwe Azure-hostservice. In deze sectie wordt een Azure-app Services-web-app-resource gemaakt.

  1. Maak een nieuw App Service-plan met behulp van az appservice plan create.

    az appservice plan create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-plan>"
    
  2. Wijs de door de gebruiker toegewezen beheerde identiteit toe aan een nieuwe web-app met az webapp create. Gebruik het id veld dat eerder in deze handleiding is vastgelegd als de waarde van de ssign-identity parameter.

    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. Haal de details op voor alle identiteiten die zijn toegewezen aan dit account met behulp van az webapp show een JMESPath-query.

    az webapp show \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-account>" \
        --query "identity"   
    
  4. Controleer de uitvoer van de opdracht. Het moet zowel de door de gebruiker toegewezen beheerde identiteit bevatten.

    {
      "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. Maak een ander Bicep-bestand met de naam app-service-web-app.bicep en definieer een Azure-app Service-plan en web-app. Stel deze eigenschappen voor deze resources in:

    Resource Weergegeven als
    name Bestaande beheerde identiteit Een parameter met de naam gebruiken identityName
    name App Service-plan Een parameter met de naam gebruiken planName
    location App Service-plan Instellen op de locatie van de resourcegroep
    name Webapp Een parameter met de naam gebruiken webAppName
    location Webapp Instellen op de locatie van de resourcegroep
    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. Maak een Bicep-parametersbestand met de naam app-service-web-app.bicepparam. Maak in dit parameterbestand een unieke naam voor uw web-app en plan respectievelijk de planName en webAppName parameters. Geef vervolgens de naam op van de door de gebruiker toegewezen beheerde identiteit als de waarde van de identityName parameter.

    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. Implementeer de Bicep-sjabloon met behulp van az deployment group create. Geef de naam op van de Bicep-sjabloon, het parameterbestand en de Azure-resourcegroep.

    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. Controleer de uitvoer van de implementatie. De uitvoer bevat het identiteitsobject van de containerinstantie in de properties.outputs.userAssignedIdentity.value eigenschap.

    {
      "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. Voer de web-app in de algemene zoekbalk in.

  2. Selecteer App Services in Services.

    Schermopname van de optie App Services geselecteerd in het zoekmenu.

  3. Selecteer In het deelvenster App Services de optie Maken en vervolgens Web App.

    Schermopname van de opties 'Maken' en 'Web-app' in het deelvenster voor Azure-app Service.

  4. Configureer in het deelvenster Basisbeginselen de volgende opties en selecteer Vervolgens Beoordelen en maken:

    Weergegeven als
    Abonnement Selecteer uw Azure-abonnement
    Resourcegroep Een nieuwe resourcegroep maken of een bestaande resourcegroep selecteren
    Naam Geef een wereldwijd unieke naam op
    Plannen Een nieuw plan maken of een bestaand plan selecteren

    Schermopname van het deelvenster Basisinformatie voor het maken van resources van een web-app.

  5. Wacht in het deelvenster Controleren en maken tot de validatie van uw account is voltooid en selecteer vervolgens Maken.

    Schermopname van de stap resourcevalidatie in de aanmaakervaring voor een web-app-resource.

  6. De portal gaat automatisch naar het deelvenster Implementatie . Wacht totdat de installatie is voltooid.

  7. Zodra de implementatie is voltooid, selecteert u Ga naar de resource om naar de nieuwe Azure Container Instances-resource te navigeren.

    Schermopname van een volledig geïmplementeerde Azure-app Service-web-app-resource met de optie Ga naar resource gemarkeerd.

  8. Selecteer identiteit in het deelvenster voor het nieuwe containerexemplaren in de sectie Instellingen van het servicemenu.

    Schermopname van de optie Identiteit in het servicemenu voor de web-app.

  9. Selecteer in het deelvenster Identiteit de optie Door de gebruiker toegewezen .

    Schermopname van de optie 'Door gebruiker toegewezen' in het deelvenster Identiteit voor de web-app.

  10. Selecteer Toevoegen om een dialoogvenster te openen om bestaande door de gebruiker toegewezen beheerde identiteiten toe te wijzen. Selecteer in het dialoogvenster uw bestaande door de gebruiker toegewezen beheerde identiteit en selecteer vervolgens Toevoegen.

    Schermopname van de optie Toevoegen en het dialoogvenster Door de gebruiker toegewezen beheerde identiteit toevoegen in het deelvenster Identiteit voor de web-app.

  11. Controleer ten slotte de lijst met door de gebruiker toegewezen beheerde identiteiten die zijn gekoppeld aan uw web-app. Deze moet de naam, de naam van de resourcegroep en de abonnements-id van de identiteit bevatten.

    Schermopname van de lijst met door de gebruiker toegewezen beheerde identiteiten die zijn gekoppeld aan de huidige web-app.

  1. Hiermee New-AzWebApp maakt u een nieuwe Azure-app Service-web-app.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-web-app>"
        Location = "<azure-region>"
    }
    New-AzWebApp @parameters
    
  2. Patch de zojuist gemaakte web-app om de identity.type eigenschap in UserAssigned te stellen en uw bestaande door de gebruiker toegewezen beheerde identiteit toe te voegen aan de identity.userAssignedIdentities eigenschap. Als u deze taak wilt uitvoeren, geeft u eerst het id veld op dat eerder in deze handleiding is vastgelegd als de waarde van de identityId shellvariabele. Vervolgens maakt u een nettoladingobject en converteert u het naar JSON. Invoke-AzRestMethod Gebruik ten slotte het PATCH HTTP-woord om de bestaande web-app bij te werken.

    $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. Haal de details op voor alle identiteiten die zijn toegewezen aan de web-app en Get-AzWebAppSelect-ObjectConvertTo-Json selecteer alleen de Identity eigenschap.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-web-app>"
    }
    Get-AzWebApp @parameters | Select-Object Identity | ConvertTo-Json -Depth 3
    
  4. Controleer de uitvoer van de opdracht. Het moet de unieke id's voor de identiteit en tenant bevatten.

    {
      "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"
          }
        }
      }
    }
    

Volgende stap