2016-12-12 7 views
1

Почему пароль grant_type должен быть предоставлен с учетными данными клиента (в этой реализации) ???. Владелец спецификация oauth2 ресурса просто необходимоТип ресурса владельца ресурса, требующий client_id и client_secret в yii2-oauth2-сервере

{ 
    "grant_type" : "password", 
    "username" : "some_user_name", 
    "password" : "some_password" 
} 

Эта реализация также требует client_id и client_secret быть посланной с этой просьбой быть преуспевающими.

Я просто хочу знать, если я что-то отсутствует

Пожалуйста, обратитесь также к http://andyfiedler.com/2014/09/how-secure-is-the-oauth2-resource-owner-password-credential-flow-for-single-page-apps

Я хочу, чтобы предоставить доступ от моего SPA к моему защищенному ресурсу. Предоставление учетных данных клиента в исходном коде браузера потенциально опасно.

Кроме того, оригинальная библиотека в https://bshaffer.github.io/oauth2-server-php-docs/overview/grant-types/ не заставит клиент верительный в владельце ресурса типа гранта

Update 1 13-12-2016

Чтения в оригинальной библиотеке, я понял, что они имеют понятие «публичный клиент» (то есть клиент, не имеющий client_secret).

Используя общедоступный клиент, я могу опустить client_secret из запроса. Во всяком случае, я снова прочитал спецификацию владельца ресурса, и об этом не упоминается.

Таким образом, маркер запрос владельца ресурса должен быть выполнен таким образом (не STANDAR)

{ 
    "grant_type" : "password", 
    "username" : "some_user_name", 
    "password" : "some_password" 
    "cliend_id" : "some_client_id" 
} 

Bye

Благодарность

ответ

0

Для справочных целей спецификации OAuth2 делает удовлетворение для этого сценария где клиент без секретности может передать параметр client_id в тело запроса, даже если аутентификация клиента не будет завершена. В разделе 2.3.1 у вас есть:

(...) сервер авторизации может поддерживать в том числе учетных данных клиента в запросе тела с использованием следующих параметров:

client_id
ТРЕБУЕТСЯ. Идентификатор клиента, выданный клиенту во время процесса регистрации, описанного в Разделе 2.2.

client_secret
ТРЕБУЕТСЯ. Секрет клиента. Клиент МОЖЕТ опустить параметр, если секрет клиента является пустой строкой.