Если вы хотите использовать поток кода устройства для доступа к ресурсам azure, выполните следующие действия:
1. Перейдите к своему приложению AD в Azure Active Directory
на портале -> API permissions
-> Add a permission
-> выберите Azure Service Management
API -> выберите user_impersonation
.
2. Перейдите к подписке на портале -> Access control (IAM)
, убедитесь, что ваша учетная запись, используемая для входа, имеет роль, например Contributor
в подписке. Если нет, добавьте пользователя в качестве роли в подписке, выполните следующие действия: do c.
3. В почтальоне используйте запрос ниже.
URL запроса:
POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/devicecode
Тело запроса:
client_id=<client-id>
scope=https://management.azure.com/user_impersonation
В браузере перейдите к https://microsoft.com/devicelogin
, введите код и войдите в свою учетную запись, приложение позволит вам согласиться на разрешение, нажмите Accept
.
4.После успешного входа в систему в почтовом отделении используйте запрос ниже.
URL запроса:
POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
Тело запроса:
grant_type: urn:ietf:params:oauth:grant-type:device_code
client_id: <client-id>
device_code: <device_code in the screenshot of step 3>
5.Используйте access_token
на шаге 4 для вызова Azure REST API, например, Группы ресурсов - Список , он работает нормально.
Для получения дополнительной информации вы можете обратиться к - Платформа идентификации Microsoft и поток авторизации устройства OAuth 2.0 .
Кроме , для разрешения разрешения успешно На шаге 3 убедитесь, что для вашего клиента в настройках ниже (Azure AD -> Enterprise applications
-> User settings
-> Users can consent to apps accessing company data on their behalf
) установлено значение Yes
, в противном случае вам нужно разрешить администратору нажать кнопка Grant admin consent for xxxx
на шаге 1.