Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Службы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
В этой статье представлены распространенные сценарии устранения неполадок, которые помогут устранить проблемы, которые могут возникнуть при создании подключения службы Azure Resource Manager (ARM). Сведения о создании, изменении и защите подключений к службам см. в статье "Управление подключениями к службе". См. раздел Устранение проблем с подключением службы удостоверений для рабочей нагрузки в Azure Resource Manager, чтобы узнать, как исправить проблемы, связанные с удостоверениями для рабочей нагрузки.
В этой статье используются термины "тенант" и "каталог", способы использования которых могут пересекаться. Клиент — это выделенный изолированный экземпляр Microsoft Entra ID, который ваша организация получает и управляет всеми удостоверениями и контролем доступа для облачных служб. Каталог — это контейнер в этом клиенте, в котором хранятся такие объекты, как пользователи, группы и приложения, используемые для управления доступом к ресурсам.
Подсказка
Вы можете попросить Copilot помочь с устранением неполадок при возникновении сообщений об ошибках. Дополнительные сведения см. в статье Использование искусственного интеллекта для устранения ошибки подключения службы Azure DevOps.
Что происходит при создании подключения службы Azure Resource Manager
Существует несколько вариантов проверки подлинности для подключения к Azure с подключением службы Azure Resource Manager. Рекомендуется использовать федерацию удостоверений рабочей нагрузки с регистрацией приложения или управляемым удостоверением.
При успешном выполнении процесса создания подключения службы Azure DevOps автоматически выполняет эти действия в клиенте Microsoft Entra. Если во время этого процесса возникают ошибки, ознакомьтесь со следующими сценариями устранения неполадок.
При сохранении нового подключения службы Azure Resource Manager Azure DevOps выполняет следующие действия:
- Подключается к клиенту Microsoft Entra для выбранной подписки.
- Создает приложение в Entra ID от имени пользователя.
- Назначает приложение участником выбранной подписки.
- Создает подключение службы Azure Resource Manager с помощью сведений об этом приложении.
Примечание.
Чтобы создать подключения к службе, необходимо назначить роль Создателя или Администратора для группы Создателей конечных точек в параметрах проекта: Project параметры> Подключения служб>Дополнительные действия>Безопасность. участники проекта добавляются в эту группу по умолчанию.
У пользователя есть только гостевые разрешения в каталоге.
Эта ошибка возникает во время процесса автоматического создания подсоединения к службе, когда Azure DevOps пытается создать приложение и назначить разрешения в Microsoft Entra ID (шаги 2–3 в Что происходит при создании подсоединения службы Azure Resource Manager). Это происходит, когда пользователь с только гостевыми разрешениями в каталоге Microsoft Entra ID пытается создать подключение службы Azure Resource Manager в Azure DevOps но имеет недостаточно разрешений.
Для разрешения этой проблемы:
Войдите на портал Azure с помощью учетной записи администратора. Учетная запись должна быть владельцем или администратором учетной записи пользователя.
Выберите Microsoft Entra ID в левой панели навигации.
Убедитесь, что вы редактируете каталог, соответствующий подписке пользователя. В противном случае выберите "Переключить каталог " и войдите с соответствующими учетными данными при необходимости.
Выберите "Пользователи" в разделе "Управление ".
Выберите Параметры пользователя.
Выберите "Управление параметрами внешней совместной работы" в разделе "Внешние пользователи".
Изменение разрешений гостевого пользователя ограничено значением "Нет".
Кроме того, если вы готовы предоставить пользователю разрешения на уровне администратора, можно сделать пользователя членом администраторской роли. Выполните следующие действия.
Предупреждение
Назначение пользователям роли глобального администратора позволяет им читать и изменять все административные параметры в организации Microsoft Entra. Рекомендуется назначить эту роль не более чем пяти человекам в вашей организации.
Войдите на портал Azure с помощью учетной записи администратора. Учетная запись должна быть владельцем или администратором учетной записи пользователя.
Выберите Microsoft Entra ID в области навигации слева.
Убедитесь, что вы редактируете каталог, соответствующий подписке пользователя. В противном случае выберите "Переключить каталог " и войдите с соответствующими учетными данными при необходимости.
Выберите "Пользователи" в разделе "Управление ".
Используйте поле поиска, чтобы найти пользователя, которым требуется управлять.
Выберите роль каталога в разделе "Управление " и измените ее. Выберите Сохранить, когда вы закончите.
Обычно для глобального применения изменений требуется от 15 до 20 минут. Затем пользователь может попытаться восстановить подключение службы.
Пользователь не авторизован для добавления приложений в каталог
Эта ошибка возникает во время процесса автоматического создания подключения к службе при попытке Azure DevOps создать приложение в Microsoft Entra ID от вашего имени (шаг 2 в Несколько происходит при создании подключения службы Azure Resource Manager). У вас нет разрешения на добавление интегрированных приложений в каталог. Администратор каталога имеет разрешения на изменение этого параметра.
Для разрешения этой проблемы:
Выберите Microsoft Entra ID в области навигации слева.
Убедитесь, что вы редактируете каталог, соответствующий подписке пользователя. В противном случае выберите "Переключить каталог " и войдите с соответствующими учетными данными при необходимости.
Выберите "Пользователи", а затем выберите "Параметры пользователя".
В разделе App registrations измените параметр Пользователи могут регистрировать приложения на Да.
Вы также можете создать учетную запись службы с существующим пользователем, у которого уже есть необходимые разрешения в Entra ID. Для получения дополнительной информации см. раздел Создание подключения к службе Azure Resource Manager с использованием существующего служебного принципала.
Не удалось получить маркер доступа или действительный маркер обновления не найден
Эти ошибки обычно возникают при истечении срока действия сеанса.
Чтобы устранить эти проблемы, выполните следующие действия.
Выйти из Azure DevOps.
Откройте окно браузера InPrivate или incognito и перейдите к Azure DevOps.
Войдите с соответствующими учетными данными.
Выберите свою организацию и проект.
Повторите попытку создать подключение к службе. Подробные инструкции см. в разделе "Управление подключениями к службе".
Похоже, у вас нет активной подписки Azure при попытке редактировать или создать новое подключение к службе.
Эта ошибка обычно возникает, когда вы являетесь частью нескольких клиентов Entra ID.
Для разрешения этой проблемы:
Перейдите к профилю VS.
Проверьте наличие нескольких клиентов.
Выберите каждого арендатора, а затем повторно выполните проверку подлинности.
Попробуйте создать подключение к службе, а затем проверьте, загружается ли подписка.
Не удалось назначить роль участника
Эта ошибка возникает во время процесса автоматического создания подключения к службе при попытке Azure DevOps назначить приложение участником подписки (шаг 3 в Несколько происходит при создании подключения службы Azure Resource Manager). Эта ошибка обычно возникает, если у вас нет разрешения Write для выбранной подписки Azure.
Чтобы устранить эту проблему, попросите администратора подписки назначить соответствующую роль в Microsoft Entra ID.
Подписка не указана при создании подключения к службе
Существует несколько возможных причин этой проблемы.
Превышено максимальное количество в 50 подписок Azure, перечисленных в различных раскрывающихся меню подписки Azure (выставление счетов, подключение к службе и т. д.): Если вы настраиваете подключение к службе и у вас более 50 подписок Azure, некоторые из ваших подписок не отображаются. В этом сценарии выполните следующие действия.
Создайте нового встроенного пользователя Microsoft Entra в экземпляре Microsoft Entra вашей подписки Azure.
Настройте пользователя Microsoft Entra так, чтобы у него были необходимые разрешения для настройки биллинга или создания подключений к службам. Дополнительные сведения см. в разделе Добавьте пользователя, который может настроить выставление счетов для Azure DevOps.
Добавьте пользователя Microsoft Entra в организацию Azure DevOps с уровнем доступа Stakeholder, а затем добавьте его в группу Администраторы коллекции проектов (для выставления счетов) или убедитесь, что у пользователя есть достаточные разрешения в команде проекта для создания подключений к службе.
Войдите в Azure DevOps с помощью новых учетных данных пользователя и настройте выставление счетов. В списке отображается только одна Azure подписка.
Старый токен пользователя, кэшированный в службах Azure DevOps: Если подписка Azure не отображается при создании подключения службы Azure Resource Manager (ARM), это возможно из-за старого токена пользователя, кэшированного в службах Azure DevOps. Этот сценарий не сразу очевиден, так как экран списка Azure подписок не отображает никаких ошибок или предупреждений, указывающих, что маркер пользователя устарел. Чтобы устранить эту проблему, вручную обновите кэшированный маркер пользователя в службах Azure DevOps, выполнив следующие действия.
- Выйдите из служб Azure DevOps и снова войдите. Это действие может обновить маркер пользователя.
- Снимите кэш браузера и файлы cookie, чтобы убедиться, что старые маркеры удалены.
- На портале Azure DevOps перейдите к подключениям службы и повторно выполните проверку подлинности подключения к Azure. На этом шаге Azure DevOps будет предложено использовать новый маркер.
Неверные параметры типов учетных записей поддержки: Исправлена эта проблема, изменив параметры поддерживаемых типов учетных записей и определив, кто может использовать приложение. Выполните следующие действия:
Войдите на портал Azure.
Если у вас есть доступ к нескольким клиентам, используйте фильтр каталога и подписки в верхнем меню, чтобы выбрать клиент, в котором требуется зарегистрировать приложение.
Выберите Microsoft Entra ID на левой панели.
Выберите Регистрация приложений.
Выберите приложение из списка зарегистрированных приложений.
В разделе "Проверка подлинности" выберите поддерживаемые типы учетных записей.
В разделе "Поддерживаемые типы учетных записей", кто может использовать это приложение или получить доступ к этому API? Выберите учетные записи в любом каталоге организации.
Выберите Сохранить, когда вы закончите.
Срок действия объекта службы или секрета истек
Azure DevOps автоматически создаваемые субъекты-службы или секреты имеют срок действия и требуют продления. Если возникли проблемы с обновлением токена, см. "Не удалось получить токен доступа или не найден действительный токен обновления". Чтобы избежать необходимости обновлять секреты, используйте федерацию удостоверений рабочих нагрузок с Azure Resource Manager.
Если срок действия маркера истекает, может появиться одно из следующих сообщений об ошибках:
AADSTS7000215: Invalid client secret is providedAADSTS7000222: The provided client secret keys for app '***' are expiredInvalid client id or client secret
Чтобы обновить токен доступа для автоматически созданного сервисного принципала или секрета:
Перейдите к параметрам Project>Service connections и выберите подключение службы, которое необходимо обновить.
Выберите «Повернуть секрет».
Токен для вашего служебного принципала или секрета был обновлён ещё на три месяца.
Примечание.
Эта операция доступна, вне зависимости от того, истек ли срок действия токена учетной записи службы. Убедитесь, что пользователь, выполняющий операцию, имеет соответствующие разрешения на подписку и Microsoft Entra ID, так как он обновляет секрет приложения, зарегистрированного для субъекта-службы. Дополнительные сведения см. в разделе Создание регистрации приложения с помощью секрета и Несколько происходит при создании подключения службы Resource Manager?
Не удалось получить JWT с помощью идентификатора клиента субъекта-службы
Эта проблема возникает при попытке сохранить подключение службы, если секрет истек или имеются другие проблемы на уровне Microsoft Entra ID.
Подключение к службе в этом состоянии также может не отображаться в раскрывающихся списках задач конвейера (например, Azure App Service Deploy или Azure PowerShell), даже если оно отображается в разделе Параметры проекта>Подключения к службам.
Это происходит, когда основной учетная запись службы была удалена или isReady состояние подключения false.
Для разрешения этой проблемы:
- Перейдите к параметрам Project>Service connections и выберите подключение службы, которое необходимо изменить.
- Выберите "Изменить", а затем нажмите кнопку "Проверить ", чтобы проверить состояние подключения.
- Если проверка завершается ошибкой ("Приложение с идентификатором
AADSTS700016не найдено в каталоге"), учетная запись службы была удалена. Создайте новое подключение службы или для ручных подключений обновите подключение с новыми учетными данными субъекта-службы. - Если проверка выполнена успешно, нажмите кнопку "Сохранить ", чтобы сохранить подключение к службе.
Примечание.
Если вы получаете ошибку, например Failed to obtain the Json Web Token(JWT) using service principal client ID. Exception message: AADSTS7000112: Application is disabled., свяжитесь с командой Microsoft Entra ID, чтобы убедиться, что параметр Включено для входа пользователей в корпоративном приложении, связанном с основным субъектом службы, не отключен.
Подписка на Azure не передается из выходных данных предыдущей задачи
Если вы настраиваете подписку Azure динамически для конвейера релизов и хотите использовать выходную переменную из предыдущей задачи, может возникнуть эта проблема.
Чтобы устранить проблему, убедитесь, что значения определены в разделе переменных конвейера. Затем эту переменную можно передать между задачами конвейера.
Какие механизмы проверки подлинности поддерживаются? Как работают управляемые идентичности?
Подключение Azure Resource Manager может соединяться с подпиской Azure, используя аутентификацию сервисного принципала (SPA) или аутентификацию управляемого удостоверения.
Подключение службы Azure Resource Manager может подключаться к Azure подписке, группе управления или рабочей области машинного обучения с помощью следующих способов:
- Регистрация приложения (рекомендуется): аутентификация подключения с использованием федерации удостоверений Workload или секрета.
- Управляемое удостоверение: управляемые удостоверения для ресурсов Azure предоставляют службам Azure автоматически управляемое удостоверение в Microsoft Entra ID. Вы также можете использовать управляемое удостоверение, назначенное агентом.
При настройке подключения к службе с управляемым удостоверением в качестве метода проверки подлинности процесс не создает новое управляемое удостоверение. Он просто устанавливает подключение к службе. Для правильной работы этого метода проверки подлинности необходимо выполнить определенные условия. В частности, поскольку управляемое удостоверение является выбранным методом проверки подлинности, виртуальная машина, которую вы используете, должна иметь удостоверение, назначаемое системой. Кроме того, эта виртуальная машина должна выступать в качестве локального агента в конвейерах для полного выполнения рабочего процесса, что позволяет конвейеру развертывать изменения через подключение службы. Назначаемое системой удостоверение на виртуальной машине определяет, что та же виртуальная машина служит агентом в конвейере, что позволяет выполнять проверку подлинности. Эта настройка позволяет использовать существующее управляемое удостоверение.
Сведения об управляемых удостоверениях для виртуальных машин см. в разделе "Назначение ролей".
Примечание.
Агенты, размещённые Microsoft, не поддерживают управляемые удостоверения. В этом сценарии необходимо настроить локальный агент на виртуальной машине Azure и настроить управляемое удостоверение для этой виртуальной машины.
Ошибка типа AuthorizationFailed при выполнении задач в пайплайне
При выполнении задачи конвейера с ресурсом Azure может появиться следующая ошибка:
AuthorizationFailed: The client '<ClientName>' with object id '<ObjectId>' does not have authorization
to perform action '<ActionName>' over scope '/subscriptions/<SubscriptionId>/...'
Идентификатор клиента и объекта в сообщении об ошибке ссылается на субъект-службу, который поддерживает подключение к службе.
Для разрешения этой проблемы:
- На портале Azure перейдите к ресурсу или группе ресурсов, на которую ссылается область ошибки.
- Выберите управление доступом (IAM)>назначения ролей.
- Убедитесь, что субъект-служба, указанный в ошибке, имеет роль, содержащую обязательные действия (например, участник или пользовательскую роль).
- Если назначение роли отсутствует, выберите Добавить>Добавить назначение ролей и назначьте соответствующую роль служебному принципалу.
- Подождите несколько минут, пока назначение роли будет распространяться, а затем повторите конвейер.
Дополнительные сведения о системе управления доступом на основе ролей Azure (RBAC) см. в разделе встроенные роли Azure.
Подключение службы не авторизовано для конвейера
При запуске конвейера может появиться следующая ошибка:
Resource not authorized. You need to authorize the resource before it can be used.
Эта ошибка возникает, когда конвейеру не предоставлены разрешения для использования подключения к службе.
Для разрешения этой проблемы:
- Перейдите к параметрам Project>Service connections.
- Выберите подключение службы, которое использует конвейер.
- Выбор дополнительных действий (...) >Безопасность.
- В разделе "Разрешения конвейера" выберите + и добавьте конвейер, которому требуется доступ.
Кроме того, можно предоставить доступ ко всем конвейерам. Это не рекомендуется. Чтобы предоставить доступ ко всем конвейерам, выполните приведенные далее действия.
На странице безопасности подключения службы выберите "Дополнительные действия>" "Открыть доступ".
Примечание.
Открытый доступ позволяет любому пайплайну в проекте использовать подключение сервиса. Для более жесткого контроля предоставьте доступ только к определенным конвейерам.
Дополнительные сведения см. в разделе "Безопасность подключения службы".
Создайте учетную запись службы без разрешений подписки Azure
Если у вас нет необходимых разрешений на подписку Azure или Microsoft Entra ID для создания подключения к службе с помощью автоматического метода, попросите администратора вручную создать учетную запись службы. Затем можно ввести сведения об учетной записи службы в Azure DevOps, чтобы создать подключение к службе.
- Попросите пользователя, имеющего необходимую подписку Azure и разрешения Microsoft Entra ID, создать учетную запись службы в Microsoft Entra ID и назначить ей соответствующую роль в подписке.
- Получите следующие сведения от администратора: идентификатор приложения (клиента), идентификаторкаталога (клиента), идентификатор подписки и секрет клиента или сертификат.
- В Azure DevOps перейдите в Параметры проекта>Подключения службы>Новое подключение службы>Azure Resource Manager>Учетная запись службы (вручную).
- Введите сведения, предоставленные администратором, и сохраните подключение.
Для получения дополнительной информации см. раздел Создание подключения к службе Azure Resource Manager с использованием существующего служебного принципала.
Не удалось удалить подключение службы
При попытке удалить подключение службы Azure Resource Manager может возникнуть ошибка, например "Не удалось удалить разрешение Azure" или "Не удалось удалить субъект-службу из Microsoft Entra ID". В некоторых случаях подключение остается в списке, даже если ошибка не отображается.
Для разрешения этой проблемы:
Выберите подключение службы и нажмите кнопку "Удалить". Даже если появляются сообщения об ошибках, связанных с разрешениями Azure или учетной записью службы, подключение все равно должно быть удалено из Azure DevOps.
Если удаление завершается ошибкой, используйте REST API конечной точки службы , чтобы удалить его напрямую. Установите параметр
deepнаfalse, чтобы пропустить очистку основного сервисного принципала.DELETE https://dev.azure.com/{organization}/{project}/_apis/serviceendpoint/endpoints/{endpointId}?deep=false&api-version=7.1После удаления подключения вручную удалите или обновите связанное доверенное лицо службы из Регистрации приложений на портале Azure.
Устранение неполадок подключения службы Azure DevOps с помощью искусственного интеллекта
В этом примере запрос на Copilot Chat помогает Copilot устранять неполадки с кодом ошибки и сообщением. Скопируйте и вставьте эту подсказку в Copilot Chat, заменив заполнитель на конкретное сообщение об ошибке.
I'm getting this Azure DevOps service connection error: [PASTE YOUR ERROR MESSAGE HERE]
Can you help me troubleshoot this issue? Please provide step-by-step instructions to:
1. Identify the root cause
2. Fix the configuration in Azure or Entra ID
3. Verify the solution works
Context: This is for an Azure Resource Manager service connection in Azure DevOps.