Вызов токена Azure с использованием потока учетных данных клиента не проверяет параметр областей - PullRequest
0 голосов
/ 30 октября 2019

Я зарегистрировал два приложения в AAD: приложение API и клиентское приложение. Приложение API настроено для предоставления API с использованием двух областей: scans.read и scans.request. Я настроил приложение API для авторизации клиента только для области scans.read. Я делаю вызов токена, используя тип предоставления учетных данных клиента. Независимо от того, что я положил для области (или пропущу), я получаю токен доступа обратно. Маркер не включает элемент области (или элемент scp). Я не должен возвращать токен, если не укажу правильную область, для которой авторизовано клиентское приложение. И когда я указываю эту область, токен доступа должен включать эту область.

Я настроил оба приложения в соответствии с документацией.

Вот запрос токена:

curl -X POST \
  https://login.microsoftonline.com/<<tenantid>>/oauth2/token \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Length: 181' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Host: login.microsoftonline.com' \
  -H 'User-Agent: PostmanRuntime/7.19.0' \
  -H 'cache-control: no-cache' \
  -d 'grant_type=client_credentials&client_id=<<client_id>>&client_secret=<<client_secret>>&scope=api%3A%2F%2Finfosecasaservice%2Fscans.request'

Вышеприведенное возвращает токен доступа, но без областей. ЕСЛИ я изменяю (или опускаю) параметр области действия, я все равно получаю токен доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...