Я зарегистрировал два приложения в 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'
Вышеприведенное возвращает токен доступа, но без областей. ЕСЛИ я изменяю (или опускаю) параметр области действия, я все равно получаю токен доступа.