Мне уже удалось получить токен на предъявителя с помощью 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 в веб-браузере, чтобы включить доступ к службе».
Первоначально я тоже получил ту же ошибку, когда запустил вызов 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
Ответ:
Добавили ли вы регистрацию приложения Azure в качестве пользователя в своей организации Azure DevOps? 499b84ac-1321-427f-aa17-267ca6975798 — значение ресурса для создания токена для Azure DevOps. Обратитесь к этому stackoverflow.com/questions/77523451/…
У меня нет доступа к регистрации приложения в моей компании... Я получил только секретный идентификатор клиента... который мне был нужен. Приложение создано, но может не быть пользователем. Как добавить его как пользователя?
Вы также можете добавить субъект-службу, нажав кнопку Add users
на портале Azure DevOps, например: i.imgur.com/metCGBN.png . Введите регистрационное имя своего приложения и добавьте его вот так i.imgur.com/nW7jH5G.png
С помощью этого метода запрос имеет разрешения созданного нами приложения/пользователя? Есть ли способ получить токен на предъявителя, который работает с разрешениями пользователя, который его запрашивает?
Да, вам нужно переключиться на делегированный поток для генерации токена с разрешениями пользователя. Пожалуйста, опубликуйте новый вопрос с более подробной информацией и поделитесь этой ссылкой здесь.
откуда вы взяли стоимость ресурса? Я пробовал с твоим, не помогло