2016-08-01 3 views
2

Вопрос в том, реализует ли аутентификация OAuth 2.0 аутентификацию с провайдером OpenID Connect?OAuth 2.0 и OpenID Connect

Например, Vert.x предлагает аутентификацию OAuth 2.0. Если это будет реализовано, будет достаточно, чтобы разрешить аутентификацию против провайдера OpenID Connect?

Заранее спасибо.

ответ

1

Да, OpenID Connect накладывается поверх/обратно совместим с OAuth 2.0. Следовательно, любая клиентская библиотека OAuth 2.0 сможет пройти проверку подлинности на сервере OIDC и, если необходимо, прочитать профиль пользователя из UserInfo Endpoint с использованием стандартного токена доступа OAuth 2.0.

1

В общем, да, этого достаточно, поскольку OpenId Connect является расширением спецификации OAuth 2.0.

main difference между OAuth 2.0 и OpenId Connect является то, что сервер OAuth 2.0 в конце (в ответе get-token запроса) посылает (обычно строку UUID, но может быть JWT) access_token, а затем клиентское приложение может использовать его для доступа к API сервера OAuth 2.0 (REST). Вызовы этого API находятся за пределами OAuth 2.0 Spec (поэтому Facebook, Google и другие имеют свои собственные разъемы OAuth).

OpenId Connect провайдер посылает в конце концов как access_token и id_token, последний является JWT и содержит пользовательские данные (имя, фамилию, адрес электронной почты и т.д.). В качестве альтернативы провайдер OpenId Connect не может отправлять id_token, но ожидать вызова UserInfo Endpoint, который будет возвращать пользовательские данные.

Таким образом, вы можете взять «необработанный» клиент OAuth 2.0 и получить с него access_token от поставщика OpenID Connect. Затем вы можете взять этот токен и запустить дополнительный HTTP-запрос к конечной точке UserInfo, декодировать данные и достичь функциональности OpenId Connect.

Смежные вопросы