Azure AD автоматически добавлен offline_access - PullRequest
0 голосов
/ 23 мая 2018

Для Microsoft Предоставление кода авторизации OAuth 2.0 мы столкнулись с проблемой с областями действия.

Когда мы запрашиваем only область User.Read, наш клиентпопросили предоставить нам разрешение на Войдите в систему и прочитайте свой профиль и Доступ к вашим данным в любое время .Там, где мы не заявили, нам нужна область действия offline_access.

enter image description here

Это происходит только после того, как Microsoft переключилась на новый интерфейс предоставления разрешений.Кто-то еще сталкивался с той же проблемой, или мы сделали что-то не так?

response_type, который мы передаем, только code.

enter image description here

Я дважды проверил, мы зарегистрировали приложение под https://apps.dev.microsoft.com.

URL, который мы используем для авторизации, следующий.

https://login.microsoftonline.com/common/oauth2/v2.0/authorize

Как я уже говорил ранее, единственная область, которую мы передаем через запрос, была User.Read.

Редактировать 3

URL запроса:( Я удалил идентификатор клиента. ) https://login.microsoftonline.com:443/common/oauth2/v2.0/authorize?client_id={client_id}&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A19974%2Fapi%2Fv1%2Fmicrosoft%2Foauth2%2Fsession&response_mode=form_post&scope=User.Read&state=1527572151-IIZ0D&nonce=1527572151-IIZ0D&prompt=consent&domain_hint=organizations

Ответ, зарегистрированный с помощью fiddler:


POST http://localhost:19974/api/v1/microsoft/oauth2/session HTTP / 1.1
Хост: localhost: 19974
Соединение: keep-alive
Длина контента: 798
Контроль кэша: max-age = 0
Запросы на обновление-небезопасность: 1
Источник: null
Content-Type: application / x-www-form-urlencoded
Пользовательский агент: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 66.0.3359.181 Safari/537.36
Accept: text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, image / apng, / ; q = 0,8
Accept-Encoding: gzip, deflate, br
Accept-Language: en, en-NZ; q = 0,9, zh-TW; q = 0,8, zh; q = 0,7, zh-CN; q = 0,6
DNT: 1

code = OAQABAAIAAADX8GCi6Js6SK82TsD2Pb7rUmGhJoHUB3devvTffqTlhRhg9XZ202zgEA8B37CzgkeLNVBc4FFstw3sTjNmYhKCYLE_jcl7KeCrtYgPVFYOKUuazv_B3vHKIM8ttwIzOlV_3GL4vqxPgjvXbWUdas5Sj9Z1X9fEBB63Wa1Ig0AnisnHk6qagIimFEPApYx473RzgIve2erM3r5fnX5Q0L1-pHppSFUJoWop6MPTkUh-umPzuXQgB280rHyUds3odS6_cJP6SbI70aLNOqHV_AnaV_VUZqQ6hLfBZMVKFMYMg_r_harPOU5EE2gf2d15FIKMsmjPRTR2vryaJRyg0TblF_jr-kWyeURwpbkPzsU6r3avEqM6dfTqhhASoXB4VmeZ2zw75pZgK4v8cfcd3J_tIpFRjcEY1TqPz5E3QrYQGfFSeBEEbjwqvj2X5_4VBvve7ABdrt3OCjid8E_837mLX-Fv5t3nk_nfnV0SY6XrFQQmoPClyqSyn44FTv_WFY7Af74SfeBrWDYSSiTuwphEmVTeT6U2R4Rs4wR8G0uHW2L53U-4UbkODd -_- JZYIahAohDAF-8TaguUwb4mOK497wsFOkgpmYz-np4MX3sTweSLmn6bAOy9Y91E3o4fuERzX9m9N_HBt64cv6k8JROKJqs6cx1Gb9EoYCRLCn2ihWi_crZh2PH5LACMCLWYgH0gAA и состояние = 1527572151-IIZ0D & session_state = 1faeaab9-0f00-45cb-a776-356463a54684


Редактирование 4

Сегодня я провел еще несколько тестов при обновлении проекта до .Net Core 2.1.Я заметил, что хотя из интерфейса это подтверждает Access your data anytime, но когда я использую код для обмена токеном доступа, он не содержит токен обновления.

Еще одна вещь, которую я замечаю, это когда я передаюобласть видимости User.Read, а когда я обмениваюсь токеном доступа, область видимости возвращается как User.Read User.ReadBasic.All.Это немного противоречивая, но не большая проблема.

enter image description here

Ответы [ 3 ]

0 голосов
/ 07 июля 2018

В настоящее время невозможно удалить область offline_access с экрана начального согласия при использовании конечной точки v2 с учетной записью AAD.При запросе токенов область offline_access по-прежнему запрашивается явно.

0 голосов
/ 29 ноября 2018

Это проблема , которая находится в состоянии запланировано на сайте предложений и отзывов Azure Active Directory.
В сообщении администратора (2 октября 2018 г.) упоминается план исправленияэто "в течение следующих 3 месяцев".

0 голосов
/ 23 мая 2018

Cuase:

Для конечной точки v1 область статически настраивается при регистрации приложения AAD.Если у вас есть разрешение на доступ к данным пользователя в любое время, вы также получите область offline_access в своем запросе.

Решение:

Если вы не хотите предоставлять пользователю разрешение offline_access, вы можете снять разрешение Access user's data anytime в делегированных разрешениях Microsoft Graph.

enter image description here

Подробнее о offline_access:

offline_access - это одно из разрешений OpenID.Его имя offline_access, а строка вывода в конечной точке v1 - это доступ к данным пользователя в любое время. Более подробную информацию об этом разрешении можно найти в этой документации .

...