Как создать токен на предъявителя для API Azure с помощью API Microsoft

Мне уже удалось получить токен на предъявителя с помощью Az cli, но хотелось бы найти другой способ. Я получил токен на предъявителя с запросом POST к API Microsoft oauth2, но этот токен не работает.

Сначала я попробовал выполнить следующий запрос на почтальоне:

Затем я получил этот токен из запроса:

Я передал этот токен в заголовке авторизации запроса: https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.0.

Запрос не работает, с ошибкой 401 Несанкционировано и с сообщением «TF401444: Пожалуйста, войдите в систему хотя бы один раз как xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\xxxxxxxx-xxxx-xxxx -xxxx-xxxxxxxxxxxx в веб-браузере, чтобы включить доступ к службе».

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Первоначально я тоже получил ту же ошибку, когда запустил вызов API Azure DevOps с использованием токена, сгенерированного с неверным значением ресурса, например:

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.0

Ответ:

Чтобы устранить ошибку, вам необходимо изменить значение ресурса на 499b84ac-1321-427f-aa17-267ca6975798.

В моем случае я зарегистрировал одно приложение Azure AD и добавил его в качестве пользователя в организацию Azure DevOps следующим образом:

Теперь я сгенерировал токен доступа со значением ресурса 499b84ac-1321-427f-aa17-267ca6975798 через Postman, как показано ниже:

POST https://login.microsoftonline.com/tenantId/oauth2/token
grant_type:client_credentials
client_id:appId
client_secret:secret
resource:499b84ac-1321-427f-aa17-267ca6975798

Ответ:

Когда я использовал указанный выше токен для вызова REST API Azure DevOps, я успешно получил ответ с подробностями проекта, как показано ниже:

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.0

Ответ:

откуда вы взяли стоимость ресурса? Я пробовал с твоим, не помогло

Titouan Ferdoel 21.08.2024 08:36

Добавили ли вы регистрацию приложения Azure в качестве пользователя в своей организации Azure DevOps? 499b84ac-1321-427f-aa17-267ca6975798 — значение ресурса для создания токена для Azure DevOps. Обратитесь к этому stackoverflow.com/questions/77523451/…

Sridevi 21.08.2024 08:43

У меня нет доступа к регистрации приложения в моей компании... Я получил только секретный идентификатор клиента... который мне был нужен. Приложение создано, но может не быть пользователем. Как добавить его как пользователя?

Titouan Ferdoel 21.08.2024 08:52

Вы также можете добавить субъект-службу, нажав кнопку Add users на портале Azure DevOps, например: i.imgur.com/metCGBN.png . Введите регистрационное имя своего приложения и добавьте его вот так i.imgur.com/nW7jH5G.png

Sridevi 21.08.2024 08:56

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

Titouan Ferdoel 22.08.2024 09:47

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

Sridevi 22.08.2024 10:06

Другие вопросы по теме

Как добавить пользователей в тот или иной репозиторий с помощью API
Аутентификация необходима при запуске сценариев Powershell из конвейера Azure, но не при запуске Azure CLI
Пул агентов Azure DevOps: как мне запросить определенную возможность Net Framework SDK?
Загрузите универсальный пакет без az cli, используя REST API
Служба приложений Azure для Django не работает с Azure Devops Pipeline
Могу ли я иметь собственный локальный сервер агента сборки в Azure Devops с возможностью перехода в облако?
Интеграция Microsoft Teams с AzureDevops Boards для создания рабочих элементов по требованию
Ошибка настройки агента DevOps TF400813: пользователь «пользователь» не имеет прав на доступ к этому ресурсу. Не удалось подключиться. Попробуйте еще раз или нажмите Ctrl-C, чтобы выйти
Azure DevOps Yaml – как установить глобальные переменные из параметров?
Azure Devops REST API — публикуйте артефакты сборки из локального хранилища