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

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

  • App1 (веб-интерфейс)
  • 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 Ответ

2 голосов
/ 25 июня 2019

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

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

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

...