У меня есть приложение, которое использует Azure DevOps PAT для выполнения операций записи и чтения в репозиториях и конвейерах.
Недавно я обнаружил, что могу сделать это с помощью федеративных учетных данных Azure Entra ID App Registrations
.
Я новичок в Azure Entra ID и не смог найти ни одного ресурса, как использовать эти учетные данные для выполнения каких-либо операций, как это было бы с Azure DevOps PAT.
Я нашел это (https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#add-federated-credentials), где оно находится. для github
, но, похоже, я не уверен, как это можно сделать для моего варианта использования;
Может ли кто-нибудь мне помочь, если вы столкнулись или реализовали такое решение?
Насколько мне известно, в Azure DevOps федеративные учетные данные приложений Microsoft Entra могут быть доступны только для подключения к службе Azure Resource Manager.
Если вы хотите использовать приложение Microsoft Entra в качестве аутентификации для доступа к ресурсам Azure DevOps, вы можете попытаться создать токен доступа (токен Microsoft Entra ID) для приложения, выполнив следующие действия:
Перейдите в Microsoft Entra ID > Регистрации приложений, чтобы создать субъект-службу, если у вас его нет в текущем клиенте.
Откройте субъект-службу, перейдите на вкладку «Сертификаты и секреты» > «Секреты клиента», чтобы создать секрет клиента для субъекта-службы, если действительный секрет клиента не существует. Скопируйте и запомните значение секрета клиента.
Перейдите в «Настройки организации» > «Microsoft Entra» и убедитесь, что организация подключилась к клиенту, в котором находится субъект службы.
Перейдите в «Настройки организации» > «Пользователи», найдите и добавьте принципала службы в организацию.
Добавьте субъекта-службы в группу организации, чтобы можно было управлять разрешениями субъекта-службы через эту группу в организации.
Вы можете использовать один из следующих способов создания токена:
Использование Bash-скрипта.
access_token=$(curl -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
'https://login.microsoftonline.com/{tenant_ID}/oauth2/v2.0/token' \
-d 'grant_type=client_credentials&client_id = {client_id}&client_secret = {client_secret}&scope=499b84ac-1321-427f-aa17-267ca6975798/.default' \
| jq -r '.access_token')
{tenant_ID}
идентификатором каталога (арендатора) арендатора.{client_id}
на идентификатор приложения (клиента) принципала службы.{client_secret}
значением секрета клиента, созданного в объекте службы.Использование Почтальона.
Этот токен Microsoft Entra ID имеет срок действия всего 24 часа, поскольку Microsoft Entra регулярно меняет токен. Таким образом, вам необходимо обновлять токен не реже одного раза в 24 часа.
Дополнительные сведения см. в разделе «Использование субъектов службы и управляемых удостоверений».
@JananathBanuka, обычно это не требуется, если вы назначили правильные разрешения субъекту службы в Azure DevOps на шаге #3
раздела «Предварительные требования в организации Azure DevOps».
Большое спасибо, отметил ваше предложение как ответ.
Привет, спасибо за вашу информацию. Нужно ли мне также добавлять разрешения API для созданной мной регистрации приложений для Azure DevOps?