Ошибка при попытке получить токен с использованием идентификатора управляемой службы в мультиконтейнерной службе веб-приложения azure - PullRequest
0 голосов
/ 26 апреля 2020

У нас есть следующий сценарий:

Текущая рабочая настройка

  1. Проект веб-API с использованием одного DockerFile
  2. Выпускная конвейерная линия с задачей «Azure развертывание службы приложений».

Предлагаемая новая настройка

  1. Проект веб-API с использованием мультиконтейнера Docker Создать файл
  2. Выпускная конвейерная линия с задачей «Azure Веб-приложение для контейнеров».

При развертывании новой настройки мы получаем следующее сообщение об ошибке:

ERROR - multi-container unit was not started successfully

Unhandled exception. System.AggregateException: One or more errors occurred. 
(Parameters: Connection String: XXX, Resource: https://vault.azure.net, Authority: 
https://login.windows.net/xxxxx. Exception Message: 
Tried to get token using Managed Service Identity. 
Access token could not be acquired. Connection refused)

Исключение вызвано тем, что он не может подключиться к Azure MSI (идентификатор управляемой службы). Это делается для получения токена перед подключением к хранилищу ключей.

Я попробовал следующее на основе некоторых исследований и решений, найденных другими:

  1. Соединение с "RunAs=App" (это в любом случае кажется, что это конструктор по умолчанию без параметров)
  2. Собираю строку подключения самостоятельно, вытягивая переменную окружения "MSI_SECRET" из машины. Это всегда пусто.
  3. Перезапуск MSI.
  4. Обновление и понижение AppAuthentication пакет

MSI, кажется, настроен правильно, поскольку он отлично работает с нашей текущей рабочей настроить, чтобы мы могли исключить это. Стоит отметить, что это назначенный Системой идентификатор, а не назначенный пользователем.

В документации, в которой говорится, что службы поддерживают управляемые идентификаторы, упоминается только «Azure Экземпляры контейнеров», а не «Azure Экземпляры управляемых контейнеров» и что также для Linux / Preview, чтобы его нельзя было поддерживать.

Сервисы, которые поддерживают управляемые удостоверения для Azure ресурсов

Мы потратили значительное количество Пришло время приступить к настройке и развертыванию, и было бы здорово, если бы мы смогли решить эту последнюю проблему.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 28 апреля 2020

К сожалению, в настоящее время отсутствует поддержка нескольких контейнеров для управляемых удостоверений. Функция нескольких контейнеров находится в режиме предварительного просмотра, поэтому пока не все ее функции работают.

Однако документация, на которую вы ссылаетесь, также не так ясна в отношении поддерживаемого сценария ios, поэтому я работаю над обновление этой документации, чтобы лучше уточнить это. Я могу обновить этот ответ, как только это будет сделано.

...