Итак, я рассматривал настройку OAuth 2.0 для мобильного приложения Cordova с использованием Microsoft cordova-plugin-ms-adal plugin (который использует собственные библиотеки) против пользовательского API с использованием Azure AD. Все это хорошо работает, но я немного запутался в использовании тайны (или, точнее, ее отсутствия).OAuth 2.0 Код авторизации Грант без секретности
Во многих статьях в Интернете говорится, что при использовании гранта авторизационного кода и запроса маркера вы включаете секрет. И этот тип гранта идеально подходит для использования, когда вы можете безопасно хранить секрет, например. на сервере.
Однако плагин не требует, чтобы в приложении был указан секрет, но он по-прежнему использует грант авторизационного кода для аутентификации. Также можно вручную вызвать
https://login.windows.net/common/oauth2/authorize?resource=http://***.onmicrosoft.com/***API&client_id=***&response_type=code&redirect_uri=http://***.onmicrosoft.com/***App
в моем браузере, Логин, получить код и затем POST к https://login.windows.net/common/oauth2/token с
grant_type: authorization_code
client_id: ***
code: ***
redirect_uri: http://***.onmicrosoft.com/***App
resource: http://***.onmicrosoft.com/***API
и это работает, так что я получаю обратно действительный JWT, без отправьте секрет.
Почему ?? Это менее безопасно? (Я также заметил, что OAuth 2.0 spec section 4.1.3 не утверждает, что секрет требуется для типа гранта кода авторизации !?)
Каковы последствия использования типа грантовый authorization_code без секретного основного заголовка/Идента?
Можете ли вы рассказать мне, как вы получили код в браузере, и вы сделали POST с помощью Javascript или любого языка на стороне сервера. Я столкнулся с этой проблемой и нуждаюсь в вашей помощи !!!! –
@SouravDas Чтобы я мог лучше понять, я вызывал конечные точки вручную. После того, как вы назовете первый URL-адрес в своем браузере и войдите в него, он перенаправляется на redirect_uri, который вы настроили с параметром? Code = param. Используйте это значение, когда вы отправляете POST на конечную точку маркера - я использовал https://www.getpostman.com для тестирования этого. В моем фактическом коде у меня есть плагин cordova-plugin-ms-adal, который обрабатывает это для меня! – Mac
Спасибо за ответ. Мы используем ADFS, а не AZAD, поэтому, я думаю, мне нужно написать все! –