Почему разрешение Azure отсутствует в областях действия моего токена JWT? - PullRequest
0 голосов
/ 04 января 2019

У меня проблема с разрешением, предоставленным моему приложению пользователем, который отображается как область действия в моем JWT.

Я хочу разрешить пользователю видеть список своих арендаторов (Office 365) на моей странице. Для этого мне нужен токен с областью действия https://management.azure.com/user_impersonation. Я добавил разрешение в разрешения API Azure. Когда пользователь впервые входит в систему, он видит это:

permission request

На этом экране я предполагаю, что моя установка работает, поскольку пользователю предлагается предоставить разрешение моему приложению на то, что мне нужно (Access Azure Service Management, как вы). Но когда я вставляю JWT в JWT Debugger , я не вижу области действия user_impersonation среди областей.

Я понял:

scp variable value

Я уже пытался удалить приложение из приложений тестового пользователя (на его портале Azure), чтобы оно снова запросило согласие, но оно все равно. Другие тестовые пользователи также имеют тот же результат. Что мне нужно, так это просто увидеть user_impersonation среди прицелов. Это позволило бы мне вызвать конечную точку API, которая возвращает список клиентов моего пользователя.

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Вам необходимо получить токен доступа для ресурса https://management.azure.com. Или, если используется v2, запросите его для области действия https://management.azure.com/user_impersonation.

Это похоже на токен MS Graph API.

Токен доступа всегда действителен только для одного API, поэтому вам нужно запросить токен для API управления Azure.

0 голосов
/ 07 января 2019

Работает сейчас!

Итак, я попытался получить области для https://management.azure.com/ и https://graph.microsoft.com/ в одном токене. Как объяснил Juunas , вы должны получить отдельный токен для каждого API. Но может запросить согласие на оба вопроса одновременно.

Мой поток сейчас такой:

  1. Я захожу в систему, запрашивая согласие на некоторые разрешения (только для API и только для первого входа)
  2. Я запрашиваю токен в фоновом режиме для областей действия Graph API
  3. Я запрашиваю второй токен для областей действия Azure Management API
...