Управляемые удостоверения в Контейнерах приложений

Управляемое удостоверение из идентификатора Microsoft Entra позволяет приложению-контейнеру получать доступ к другим защищенным ресурсам Microsoft Entra. Дополнительные сведения об управляемых удостоверениях в идентификаторе Microsoft Entra см. в разделе "Управляемые удостоверения" для ресурсов Azure.

Приложению-контейнеру можно предоставить два типа удостоверений:

  • Назначаемое системой удостоверение привязывается к приложению-контейнеру и удаляется при удалении этого приложения. Приложение может иметь только одно назначаемое системой удостоверение.
  • Назначаемое пользователем удостоверение — это изолированный ресурс Azure, который можно назначить приложению-контейнеру и другим ресурсам. Приложение-контейнер может иметь несколько назначаемых пользователем удостоверений. Удостоверения существуют, пока вы не удалите их.

Для чего нужны управляемые удостоверения?

Управляемое удостоверение можно использовать в работающем приложении контейнера для проверки подлинности в любой службе, поддерживающей проверку подлинности Microsoft Entra.

При использовании управляемых удостоверений:

  • приложение подключается к ресурсам с помощью управляемого удостоверения. Вам не нужно управлять учетными данными в приложении-контейнере.
  • управление доступом на основе ролей можно использовать для предоставления определенных разрешений управляемому удостоверению;
  • назначаемые системой удостоверения создаются и управляются автоматически. Они удаляются при удалении приложения-контейнера.
  • вы можете добавлять и удалять удостоверения, назначаемые пользователем, и назначать их нескольким ресурсам. Они не зависят от жизненного цикла приложения-контейнера.
  • Управляемое удостоверение можно использовать для проверки подлинности с помощью частного Реестр контейнеров Azure без имени пользователя и пароля для извлечения контейнеров для приложения-контейнера.
  • Управляемое удостоверение можно использовать для создания подключений для приложений с поддержкой Dapr с помощью компонентов Dapr.

Распространенные варианты использования

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

  • содержатся в одном ресурсе;
  • требуют независимых удостоверений.

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

  • выполняются на нескольких ресурсах и могут совместно использовать одно удостоверение;
  • требуют предварительной авторизации в защищенном ресурсе.

Ограничения

Использование управляемых удостоверений в правилах масштабирования не поддерживается. Вам по-прежнему потребуется включить строка подключения или ключ в secretRef правило масштабирования.

Контейнеры Init не могут получить доступ к управляемым удостоверениям.

Настройка управляемых удостоверений

Доступны следующие способы настройки управляемых удостоверений:

  • портала Azure
  • Интерфейс командной строки Azure
  • Шаблон Azure Resource Manager (ARM)

При добавлении, удалении или изменении управляемого удостоверения в работающем приложении-контейнере приложение не перезапускается автоматически, и новая редакция не создается.

Примечание.

При добавлении управляемого удостоверения в приложение-контейнер, развернутое до 11 апреля 2022 г., необходимо создать новую редакцию.

Добавление назначаемого системой удостоверения

  1. В левой области навигации на странице приложения-контейнера прокрутите вниз до группы Параметры.

  2. Выберите Удостоверение.

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

Screenshot of system-assigned identities.

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

Для настройки приложения-контейнера с удостоверением, назначаемым пользователем, необходимо сначала создать удостоверение, а затем добавить его идентификатор ресурса в конфигурацию приложения-контейнера. Удостоверения, назначаемые пользователем, можно создать с помощью портала Azure или Azure CLI. Сведения о создании назначаемых пользователем удостоверений и управлении ими см. в статье Администрирование управляемых удостоверений, назначаемых пользователем.

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

  1. Создайте ресурс управляемого удостоверения, назначаемого пользователем, в соответствии с инструкциями, описанными в статье Администрирование управляемых удостоверений, назначаемых пользователем.

  2. В левой области навигации на странице приложения-контейнера прокрутите вниз до группы Параметры.

  3. Выберите Удостоверение.

  4. На вкладке Назначено пользователем выберите Добавить.

  5. Найдите созданное ранее удостоверение и выберите его. Выберите Добавить.

Screenshot of user-assigned identities.

Настройка целевого ресурса

Чтобы предоставить доступ, для некоторых ресурсов потребуется настроить назначения ролей для управляемого удостоверения приложения. В противном случае вызовы из приложения к службам, таким как Azure Key Vault и База данных SQL Azure, будут отклонены даже при использовании допустимого маркера для этого удостоверения. Дополнительные сведения об управлении доступом на основе ролей Azure (Azure RBAC) см. в этой статье. Дополнительные сведения о том, какие ресурсы поддерживают токены Microsoft Entra, см. в службах Azure, поддерживающих проверку подлинности Microsoft Entra.

Важно!

Внутренние службы управляемых удостоверений поддерживают кэш для каждого URI-адреса ресурса в течение около 24 часов. Если вы обновляете политику доступа для определенного целевого ресурса и сразу получаете маркер для этого ресурса, вы можете постоянно получать кэшированный маркер с устаревшими разрешениями до тех пор, пока не истечет срок действия этого маркера. В настоящее время невозможно принудительно обновить маркер.

Подключение к службам Azure в коде приложения

С помощью управляемых удостоверений приложение может получить маркеры для доступа к ресурсам Azure, используюющим идентификатор Microsoft Entra ID, например База данных SQL Azure, Azure Key Vault и служба хранилища Azure. Эти маркеры представляют приложение, получающее доступ к ресурсам, а не конкретного пользователя приложения.

Контейнеры приложений предоставляют внутреннюю конечную точку REST для получения маркеров. К конечной точке RESTFUL можно обращаться из приложения с помощью стандартного HTTP-запроса GET, что можно реализовать с помощью универсального HTTP-клиента на каждом языке. Для .NET, JavaScript, Java и Python клиентская библиотека удостоверений Azure предоставляет абстракцию для этой конечной точки REST. Подключение к другим службам Azure выполняется так же просто, как добавление объекта учетных данных в клиент для конкретной службы.

Примечание.

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

Примечание.

При подключении к источникам данных Azure SQL с помощью Entity Framework Core рекомендуется использовать Microsoft.Data.SqlClient, который предоставляет специальные строки подключения для подключения с помощью управляемого удостоверения.

Для приложений .NET самый простой способ работы с управляемым удостоверением заключается в использовании клиентской библиотеки удостоверений Azure для .NET. Дополнительные сведения см. в документации с соответствующими заголовками из клиентской библиотеки:

В связанных примерах используется DefaultAzureCredential. Это удобно в большинстве сценариев, так как один и тот же шаблон работает в Azure (с управляемыми удостоверениями) и на локальном компьютере (без управляемых удостоверений).

Просмотр управляемых удостоверений

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

az containerapp identity show --name <APP_NAME> --resource-group <GROUP_NAME>

Удаление управляемого удостоверения

При удалении назначаемого системой удостоверения он удаляется из идентификатора Microsoft Entra. Назначаемые системой удостоверения также автоматически удаляются из идентификатора Microsoft Entra при удалении самого ресурса приложения контейнера. Удаление управляемых удостоверений, назначаемых пользователем, из приложения контейнера не удаляет их из идентификатора Microsoft Entra.

  1. В левой области навигации на странице вашего приложения прокрутите вниз до группы Параметры.

  2. Выберите Удостоверение. Затем выполните следующие действия в зависимости от типа удостоверения.

    • Удостоверение, назначаемое системой: на вкладке Назначается системой переключите состояние на Off. Выберите Сохранить.
    • Удостоверение, назначаемое пользователем: перейдите на вкладку Назначается пользователем, установите флажок для удостоверения и нажмите Удалить. Выберите Да для подтверждения.

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