Можете ли вы объяснить часть RP->OP в потоке openid connect?

Я не понимаю 1 часть.

Например, у меня есть сайт asdf.com и использовать google ОП, поэтому у меня есть login with google кнопка со ссылкой (что-то вроде https://account.google.com/XXX?return_url=asdf.com) на сайте Google на моем сайте.

Таким образом, пользователь нажмет эту кнопку, чтобы войти, поэтому я думаю, 1 шаг должен быть enduser -> OP? Зачем RP -> OP?

2 ответа

Давайте посмотрим на это по частям, а может взять их всех. Это называется танцем Oauth2 или потоком Oauth2 с тремя ногами. В танце есть три шага, чтобы получить разрешение. Есть два основных игрока Client Application и Authentication server с resource owner играя боковой рулон.

Шаг 1:

[Клиентское приложение] контакты аутентификации сервера. Говорит, что у меня есть пользователь, который хотел бы дать согласие на вход в мое приложение.

[Сервер аутентификации] уверен, что нет проблем, пользователь должен войти в систему, а затем я покажу им экран согласия

https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com & redirect_uri = urn: ietf: wg: oauth: 2.0: oob & scope = https://www.googleapis.com/auth/analytics.readonly&response_type=code

введите описание изображения здесь

[Владелец ресурса (пользователь)] Получает согласие.

Шаг 2:

[Сервер аутентификации] отвечает клиенту. Эй, ваш пользователь говорит, что вы можете получить доступ к этому здесь код авторизации.

[Клиентское приложение] Спасибо за код авторизации, верните его, а мой идентификатор клиента и секрет (идентификатор клиента и секрет - это, в основном, логин и пароль для клиента, идентифицирующего его на сервере авторизации), это должно подтвердить, что я - это я.

https://accounts.google.com/o/oauth2/token код =4/X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&client_id={ClientID}.apps.googleusercontent.com&client_secret={ClientSecret}&redirect_uri= урна: IETF: Рабочая группа по OAuth: 2.0: OOB & grant_type = authorization_code

Шаг 3.

[Сервер аутентификации] потрясающе выглядит так, как будто у вас есть токен доступа и, возможно, токен обновления.

Комментарии:

Open id connect в основном построен поверх Oauth2, главное отличие в том, что отправляемая вами область - openid.

Вы можете проверить это здесь, если вы хотите для развлечения Oauth2 игровая площадка

Да, я бы сказал, что вы правы: первый запрос к ОП поступает от конечного пользователя.

RP обычно строит запрос к OP authorise конечной точки, но затем либо перенаправляет браузер конечного пользователя на эту конечную точку (например, посредством ответа HTTP 302), либо помещает встроенный URL-адрес в качестве действия над ссылкой / кнопкой на html-странице, возвращаемой из RP конечному пользователю.

Это кажется отсутствующим на диаграмме.

Другие вопросы по тегам