Можете ли вы объяснить часть 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 конечному пользователю.
Это кажется отсутствующим на диаграмме.