Поделиться через


Использование управляемых удостоверений со службами Azure для подключения к Azure Cosmos DB для NoSQL

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

Схема текущего расположения ('Подготовка') в последовательности руководства по развертыванию.

Схема последовательности руководства по развертыванию, включая следующие расположения: обзор, основные понятия, подготовка, управление доступом на основе ролей, сеть и справочник. В настоящее время выделено расположение "Подготовка".

В этой статье рассматриваются действия, необходимые для создания управляемых удостоверений для использования с развернутыми приложениями, подключенными к Azure Cosmos DB для NoSQL.

Управляемые удостоверения — это один из многих типов ресурсов удостоверений в идентификаторе Microsoft Entra для приложений, используемых при подключении к службам, поддерживающим проверку подлинности Microsoft Entra. Управляемые удостоверения можно использовать вместо традиционных учетных данных, принадлежащих ресурсам, таких как ключи. В Azure управляемые удостоверения позволяют приложениям получать маркер Microsoft Entra для проверки подлинности в службах Azure без необходимости писать большой объем кода проверки подлинности.

Вы можете использовать Microsoft Entra для проверки подлинности в службах Azure, включая, но не только:

  • Azure SQL
  • Azure AI
  • Azure Cosmos DB
  • Хранилище Azure
  • Центры событий Azure
  • Реестр контейнеров Azure

Управляемые удостоверения можно использовать для представления субъекта, который проходит проверку подлинности в службе Azure из других служб Azure, включая, но не ограничивается:

  • Служба Azure Kubernetes
  • Приложения-контейнеры Azure
  • Виртуальные машины Azure
  • Функции Azure
  • Служба приложений Azure
  • Azure Spring Apps
  • Azure Service Fabric

Управляемые удостоверения позволяют выполнять несколько безопасных сценариев, в которых различные службы Azure могут подключаться друг к другу. Некоторыми примерами могут служить:

  • Создание управляемого удостоверения, назначаемого системой, для приложения в Azure Spring Apps для подключения и запроса учетной записи SQL Azure
  • Использование управляемого удостоверения, назначаемого пользователем, с Служба Azure Kubernetes и Функции Azure для выдачи запросов к учетной записи ИИ Azure
  • Использование управляемого удостоверения для учетной записи Azure Cosmos DB для хранения ключей в Azure Key Vault

Дополнительные сведения см. в статье об управляемых удостоверениях для ресурсов Azure.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Создание службы Azure с управляемым удостоверением, назначаемым системой

Создайте новую службу Azure с управляемым удостоверением, назначаемого системой. В этом разделе создается ресурс Экземпляры контейнеров Azure.

  1. Используется az container create для создания нового экземпляра контейнера. Настройте учетную запись для использования управляемого удостоверения, назначаемого системой, с помощью assign-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
    
  2. Получите сведения об управляемом удостоверении, назначаемом системой, с помощью az container show запроса JMESPath.

    az container show \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-container>" \
        --query "identity"
    
  3. Просмотрите выходные данные команды. Он должен содержать уникальные идентификаторы для удостоверения и клиента.

    {
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "SystemAssigned",
      "userAssignedIdentities": null
    }
    
  1. Создайте файл Bicep для определения нового экземпляра контейнера. Присвойте файлу имя container-instance.bicep. Задайте следующие свойства для экземпляра контейнера:

    Значение
    name Использование параметра с именем instanceName
    location Установка расположения группы ресурсов
    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. Создайте файл параметров Bicep с именем container-instance.bicepparam. В этом файле параметров создайте уникальное имя для экземпляра контейнера с помощью instanceName параметра.

    using './container-instance.bicep'
    
    param instanceName = '<name-of-new-container-instance>'
    
  3. Разверните шаблон Bicep с помощью az deployment group create. Укажите имя шаблона Bicep, файла параметров и группы ресурсов Azure.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --parameters "container-instance.bicepparam" \
        --template-file "container-instance.bicep"
    
  4. Просмотрите выходные данные развертывания. Выходные данные содержат объект удостоверения из экземпляра контейнера в свойстве properties.outputs.systemAssignedIdentity.value .

    {
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "SystemAssigned"
    }
    
  1. Войдите на портал Azure (https://portal.azure.com).

  2. Введите Экземпляры контейнеров Azure в глобальной строке поиска.

    Снимок экрана: глобальная панель поиска в портал Azure.

  3. В службах выберите экземпляры контейнеров.

    Снимок экрана: параметр

  4. В области "Экземпляры контейнеров" нажмите кнопку "Создать".

    Снимок экрана: параметр

  5. В области "Основные сведения" настройте следующие параметры и нажмите кнопку "Проверить и создать".

    Значение
    Подписка Выберите подписку Azure.
    Группа ресурсов Создание новой группы ресурсов или выбор существующей группы ресурсов
    Имя контейнера Укажите глобально уникальное имя
    Регион Выбор поддерживаемого региона Azure для подписки

    Снимок экрана: панель создания ресурсов Экземпляры контейнеров Azure

    Совет

    Вы можете оставить любые не указанные параметры значениями по умолчанию.

  6. На панели "Проверка и создание" дождитесь успешной проверки учетной записи и нажмите кнопку "Создать".

    Снимок экрана: шаг проверки ресурсов в интерфейсе создания экземпляра контейнера.

  7. Портал автоматически переходит в область развертывания . Дождитесь завершения развертывания.

  8. После завершения развертывания выберите "Перейти к ресурсу", чтобы перейти к новому ресурсу Экземпляры контейнеров Azure.

    Снимок экрана: полностью развернутый Экземпляры контейнеров Azure ресурс с выделенным параметром

  9. В области нового экземпляра контейнера выберите "Удостоверение " в разделе "Параметры " меню службы.

    Снимок экрана: параметр Identity (Удостоверение) в меню службы для экземпляра контейнера.

  10. В области удостоверений включите управляемое удостоверение, назначаемое системой, задав для параметра "Состояние" значение "Вкл". Затем нажмите кнопку "Сохранить " и устранить все запросы, чтобы зафиксировать изменение.

    Снимок экрана: установка параметра

  11. После готовности управляемого удостоверения, назначаемого системой, просмотрите значение свойства идентификатора объекта (субъекта). Это свойство является уникальным идентификатором удостоверения.

    Снимок экрана: сведения о управляемом удостоверении, назначаемом системой.

    Совет

    В этом примере снимок экрана: уникальный идентификатор управляемого удостоверения bbbbbbbb-1111-2222-3333-cccccccccccc, назначаемого системой.

  1. Создайте объект, представляющий контейнер с помощью New-AzContainerInstanceObject и сохраните его в переменной с именем $container. Затем используйте этот объект контейнера для создания нового экземпляра контейнера с New-AzContainerGroup. Настройте учетную запись для использования управляемого удостоверения, назначаемого системой, задав параметру IdentityType 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. Получите сведения об управляемом удостоверении, назначаемом Identity системой, и Get-AzContainerGroup Format-List выберите только это свойство.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-container>"
    }
    Get-AzContainerGroup @parameters | Format-List Identity
    
  3. Просмотрите выходные данные команды. Он должен содержать уникальные идентификаторы для удостоверения и клиента.

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

Создание управляемого удостоверения, назначаемого пользователем

Создайте управляемое удостоверение, назначаемое пользователем, которое можно использовать с одной или несколькими службами Azure переносимо.

  1. Используйте az identity create для создания управляемого удостоверения, назначаемого пользователем, в группе ресурсов Azure.

    az identity create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-managed-identity>"
    
  2. Получение списка управляемых удостоверений, назначенных пользователем, в группе ресурсов с помощью az identity list

    az identity list \
        --resource-group "<name-of-existing-resource-group>"    
    
  3. Просмотрите выходные данные команды. Запишите значение id поля, так как этот полный идентификатор ресурса используется для назначения управляемого удостоверения, назначаемого пользователем, ресурсу 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"
    }
    

    Примечание.

    В этом примере id значение будет./subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned В этом примере используются вымышленные данные, и идентификатор будет отличаться от этого примера.

  1. Создайте файл Bicep, чтобы определить управляемое удостоверение, назначаемое пользователем, и назовите управляемое пользователем удостоверение.bicep. Задайте следующие минимальные свойства:

    Значение
    name Использование необязательного параметра с именем identityName и создание уникального значения по умолчанию
    location Установка расположения группы ресурсов
    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. Разверните шаблон Bicep с помощью az deployment group create. Укажите имя шаблона Bicep и группы ресурсов Azure.

    az deployment group create \
        --resource-group "<name-of-existing-resource-group>" \
        --template-file "user-assigned-managed-identity.bicep"
    
  3. Просмотрите выходные данные развертывания. Выходные данные содержат уникальный идентификатор управляемого удостоверения в свойстве properties.outputs.name.value . Запишите это значение, так как оно необходимо использовать при создании нового ресурса Azure далее в этом руководстве.

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

    Примечание.

    В этом примере name.value будет.msdocs-identity-example-user-assigned В этом примере используются вымышленные данные, и идентификатор будет отличаться от этого примера.

  1. Введите управляемое удостоверение в глобальной строке поиска.

  2. В службах выберите управляемые удостоверения.

    Снимок экрана: параметр

  3. В области "Экземпляры контейнеров" нажмите кнопку "Создать".

    Снимок экрана: параметр

  4. В области "Основные сведения" настройте следующие параметры и нажмите кнопку "Проверить и создать".

    Значение
    Подписка Выберите подписку Azure.
    Группа ресурсов Создание новой группы ресурсов или выбор существующей группы ресурсов
    Регион Выбор поддерживаемого региона Azure для подписки
    Имя Укажите глобально уникальное имя

    Снимок экрана: панель создания ресурса управляемого удостоверения

  5. На панели "Проверка и создание" дождитесь успешной проверки учетной записи и нажмите кнопку "Создать".

    Снимок экрана: шаг проверки ресурсов в интерфейсе создания управляемого удостоверения.

  6. Портал автоматически переходит в область развертывания . Дождитесь завершения развертывания.

  7. Дождитесь завершения развертывания управляемого удостоверения.

    Снимок экрана: полностью развернутый ресурс управляемого удостоверения.

  1. Создайте управляемое удостоверение, назначаемое пользователем, с помощью New-AzUserAssignedIdentity группы ресурсов Azure.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-managed-identity>"
        Location = "<azure-region>"
    }
    New-AzUserAssignedIdentity @parameters
    
  2. Используйте Get-AzUserAssignedIdentity для получения списка управляемых удостоверений, назначаемых пользователем, в группе ресурсов.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
    }
    Get-AzUserAssignedIdentity @parameters | Format-List Name, Id
    
  3. Просмотрите выходные данные команды. Запишите значение Id поля, так как этот полный идентификатор ресурса используется для назначения управляемого удостоверения, назначаемого пользователем, ресурсу 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
    

    Примечание.

    В этом примере Id значение будет./subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/msdocs-identity-example/providers/Microsoft.ManagedIdentity/userAssignedIdentities/msdocs-identity-example-user-assigned В этом примере используются вымышленные данные, и идентификатор будет отличаться от этого примера.

Создание службы Azure с управляемым удостоверением, назначаемое пользователем

Назначьте ранее созданное управляемое удостоверение, назначаемое пользователем, новой службе узлов Azure. В этом разделе создается ресурс веб-приложения служб приложение Azure.

  1. Создание нового плана службы приложений с помощью az appservice plan create.

    az appservice plan create \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-new-plan>"
    
  2. Назначьте управляемое удостоверение, назначаемое пользователем, новому веб-приложению az webapp create. id Используйте поле, записанное ранее в этом руководстве, в качестве значения ssign-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>"
    
  3. Получите сведения обо всех удостоверениях, назначенных этой учетной записи, с помощью az webapp show запроса JMESPath.

    az webapp show \
        --resource-group "<name-of-existing-resource-group>" \
        --name "<name-of-existing-account>" \
        --query "identity"   
    
  4. Просмотрите выходные данные команды. Он должен включать управляемое удостоверение, назначаемое пользователем.

    {
      "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. Создайте другой файл Bicep с именем app-service-web-app.bicep и определите план службы приложение Azure и веб-приложение. Задайте эти свойства для этих ресурсов:

    Ресурс Значение
    name Существующее управляемое удостоверение Использование параметра с именем identityName
    name План службы приложений Использование параметра с именем planName
    location План службы приложений Установка расположения группы ресурсов
    name Веб-приложение Использование параметра с именем webAppName
    location Веб-приложение Установка расположения группы ресурсов
    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. Создайте файл параметров Bicep с именем app-service-web-app.bicepparam. В этом файле параметров создайте уникальное имя веб-приложения и запланируйте их с помощью planName параметров и webAppName параметров соответственно. Затем укажите имя управляемого удостоверения, назначаемого пользователем, в качестве значения identityName параметра.

    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. Разверните шаблон Bicep с помощью az deployment group create. Укажите имя шаблона Bicep, файла параметров и группы ресурсов 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"
    
  4. Просмотрите выходные данные развертывания. Выходные данные содержат объект удостоверения из экземпляра контейнера в свойстве properties.outputs.userAssignedIdentity.value .

    {
      "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. Введите веб-приложение в глобальной строке поиска.

  2. В службах выберите Служба приложений.

    Снимок экрана: параметр

  3. В области Служба приложений выберите "Создать" и "Веб-приложение".

    Снимок экрана: параметры

  4. В области "Основные сведения" настройте следующие параметры и нажмите кнопку "Проверить и создать".

    Значение
    Подписка Выберите подписку Azure.
    Группа ресурсов Создание новой группы ресурсов или выбор существующей группы ресурсов
    Имя Укажите глобально уникальное имя
    План Создание нового плана или выбор существующего плана

    Снимок экрана: панель создания ресурсов веб-приложения

  5. На панели "Проверка и создание" дождитесь успешной проверки учетной записи и нажмите кнопку "Создать".

    Снимок экрана: шаг проверки ресурсов в интерфейсе создания ресурса веб-приложения.

  6. Портал автоматически переходит в область развертывания . Дождитесь завершения развертывания.

  7. После завершения развертывания выберите "Перейти к ресурсу", чтобы перейти к новому ресурсу Экземпляры контейнеров Azure.

    Снимок экрана: полностью развернутый ресурс веб-приложения службы приложение Azure с выделенным параметром

  8. В области нового экземпляра контейнера выберите "Удостоверение " в разделе "Параметры " меню службы.

    Снимок экрана: параметр

  9. В области удостоверений выберите параметр "Назначаемый пользователем".

    Снимок экрана: параметр

  10. Выберите "Добавить ", чтобы открыть диалоговое окно, чтобы назначить существующие управляемые удостоверения, назначенные пользователем. В диалоговом окне выберите существующее управляемое удостоверение, назначаемое пользователем, и нажмите кнопку "Добавить".

    Снимок экрана: параметр

  11. Наконец, просмотрите список управляемых удостоверений, назначенных пользователем, связанных с веб-приложением. Он должен содержать имя удостоверения, имя группы ресурсов и идентификатор подписки.

    Снимок экрана: список управляемых удостоверений, назначенных пользователем, связанных с текущим веб-приложением.

  1. Используется New-AzWebApp для создания веб-приложения службы приложение Azure.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-new-web-app>"
        Location = "<azure-region>"
    }
    New-AzWebApp @parameters
    
  2. Исправьте только что созданное веб-приложение, чтобы задать identity.type свойство UserAssigned и добавить существующее управляемое удостоверение, назначаемое пользователем, в identity.userAssignedIdentities свойство. Чтобы выполнить эту задачу, сначала укажите id поле, записанное ранее в этом руководстве, в качестве значения переменной identityId оболочки. Затем создайте объект полезных данных и преобразуйте его в JSON. Наконец, используйте Invoke-AzRestMethod команду PATCH HTTP для обновления существующего веб-приложения.

    $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. Получите сведения для всех удостоверений, назначенных веб-приложению, с помощью Get-AzWebAppSelect-Object, и ConvertTo-Json выберите только Identity свойство.

    $parameters = @{
        ResourceGroupName = "<name-of-existing-resource-group>"
        Name = "<name-of-existing-web-app>"
    }
    Get-AzWebApp @parameters | Select-Object Identity | ConvertTo-Json -Depth 3
    
  4. Просмотрите выходные данные команды. Он должен содержать уникальные идентификаторы для удостоверения и клиента.

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

Следующий шаг