запутался относительно того, как работают эти открытые идентификаторы - PullRequest
6 голосов
/ 22 января 2010

Может кто-нибудь объяснить, как работают эти системы открытых ID?

Когда пользователь перенаправляет провайдеру openid и аутентифицируется, что провайдер отправляет обратно на исходный веб-сайт? Это какой-то зашифрованный текст, который веб-сайт проверяет, или ему действительно нужно связаться с провайдером open-id для проверки?

1 Ответ

9 голосов
/ 22 января 2010

Если вас интересуют все подробности, вы можете проверить спецификацию здесь .

Хотя на высоком уровне это довольно просто (перефразируя здесь обзор спецификации 2.0 ):

  1. Сайт перенаправляет пользователя к провайдеру OpenID вместе с запросом авторизации

  2. Поставщик OpenID пытается аутентифицировать пользователя

  3. Поставщик OpenID перенаправляет пользователя на сайт вместе с информацией о том, прошла ли аутентификация неудачно или успешно.

  4. Затем сайт проверяет эту информацию, проверяет некоторые поля, которые он получил из ответа, а также делает прямой запрос (который не проходит через браузер пользователя) поставщику OpenID; все это для предотвращения подмены и тому подобного

Так что шаги один и два довольно просты, но последние два имеют некоторую сложность. В частности, ответ на шаге 3 содержит поле «nonce», которое будет уникальным для запроса, и несколько полей, которые сайт затем будет проверять. Эта проверка происходит на четвертом шаге, где делается несколько проверок. В частности, обратный URL и подписи.

Конечно, под капотом происходит гораздо больше, но если вам нужна именно эта информация, лучше всего искать эту спецификацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...