Полагаю, вы используете клиентское приложение или субъект-службу для доступа к azure ресурсам. Если это так, вы используете клиентский поток учетных данных , но user_impersonation
из Azure Service Management
API имеет разрешение delegated
, оно не будет действовать в этом потоке.
Разрешение используется как согласие пользователя, который входит в приложение AD, например, в потоке кода авторизации , когда оно получит согласие пользователя, приложение сможет представлять пользователя для доступа к ресурсам azure, обратите внимание, что разрешение принадлежит пользователю, а не приложению. Поэтому, если вы хотите использовать этот поток, пользователь должен иметь роль в подписке или указать c ресурсы.
Чтобы получить доступ к azure ресурсам с помощью клиентского приложения или участника службы, вам просто нужно Чтобы добавить субъект-службу в качестве роли RBA C в Access control (IAM)
вашей подписки или указанного ресурса c, нет необходимости добавлять какие-либо разрешения API в Azure AD, см. эту ссылку . После этого субъект службы сможет получить доступ к ресурсам azure.
Когда вы получаете токен для доступа к ресурсам azure, например, вызываете API REST, область действия должна быть https://management.azure.com/.default
, а не https://graph.microsoft.com/.default
, вы можете просто получить токен для одного ресурса за один раз.