OAuth2 On-Behalf-Of - как пользователь принимает права доступа среднего уровня?

Я проверяю OAuth2, в On-Behalf-Flow есть одна вещь, которую я не понимаю. Поток выглядит так: У нас есть:

  • Приложение 1 (интерфейс)
  • App2 (веб-API)
  • App3 (ресурс данных (другой веб-API))

Допустим, они настроены так:

  • App1 - не предоставляет никаких API; требуется разрешение на использование "App2Permission"
  • App2 - выставляет "App2Permission"; требуется разрешение на использование "App3Permission"
  • App3 - выставляет "App3Permisson"; не нужно никаких разрешений

Теперь, когда пользователь заходит в App1, он перенаправляет его на страницу входа в AAD - пользователь принимает "App2Permisions", что требуется для App1. После этого App1 получает токен доступа для App2. App1 отправляет запрос в App2 (включая токен доступа, который я только что упомянул). App2 получает этот запрос и должен получить доступ к App3, чтобы получить фактические данные. Тем не менее, он требует "App3Permission" - как это получить? App2 не является интерактивным приложением, которое может показать пользователю экран входа в систему.

1 ответ

Решение

Согласно документу, в потоке OAuth 2.0 On-Behalf-Of служба среднего уровня не взаимодействует с пользователем, чтобы получить согласие пользователя на доступ к нисходящему API(в вашем случае App3).

Таким образом, опция предоставления доступа к нисходящему API представляется заранее как часть шага согласия во время аутентификации.

Чтобы узнать, как настроить это для своего приложения, см. Получение согласия для приложения среднего уровня.

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