OpenID - с чем его едят?

В наше время взрывного развития блоговского движения уже практически не встретишь статьи в Интернете без поля “Откомментировать” внизу. Учитывая количество сайтов, на которых комментирование разрешено не всем, а только авторизованным (зарегистрированным) пользователям, становится страшно от того количества логинов-паролей, которые необходимо помнить пользователю. Так что возникновение сервиса, который обеспечивает авторизацию единожды для многих (в идеале - для всех) сайтов вполне закономерно. Сервис этот - OpenID и есть.
OpenID - это децентрализованная система идентификации. Идентификатор OpenID по сути является всего лишь сетевым адресом (URL). Единственной задачей идентификатора является доказательство того, что Вы являетесь собственником указанного адреса (URL). А информация о Вас, как Вы уже догадались, по этому адресу и хранится.
На практике Вы бродите по интернету, заходите на какой-то сайт, читаете и решаете оставить комментарий - ну, зацепила Вас статейка! Вместо того, чтоб проходить длинную процедуру регистрации с заполнением кучи полей, получения регистрационных писем и т.д., Вы находите поле авторизации по OpenID, вносите туда свой OpenId-URL, пишете комментарий, авторизуетесь у своего провайдера OpenID - и все, Вы уже зарегистрированы на сайте и Ваш коммент уже отослан под Вашим именем. Удобно? Ну еще бы!
Википедия описывает этот процесс так:
На сайте, назовём его, к примеру, example.com, располагается форма входа, но вместо привычных полей логин и пароль, в ней только одно — для ввода OpenID идентификатора. Иногда рядом с полем располагается логотип OpenID. Для веб-разработчиков — за обработку формы отвечает клиентская часть библиотеки OpenID.
Чтобы пользователь Вася смог залогиниться на сайт example.com с помощью OpenID идентификатора pupkin.openid-provider.org, который он зарегистрировал у провайдера идентификации openid-provider.org, Вася просто заходит на example.com и вводит свой OpenID в предлагаемую форму.
Сначала зависимая сторона и провайдер (необязательно) согласовывают shared secret или секретный код — описатель партнёра (associate handler), который зависимая сторона сохраняет. В режиме checkid_setup зависимая сторона переадресует браузер пользователя к провайдеру. В данном случае браузер Васи переадресуется на openid-provider.org, где провайдер сможет опознать Васю.
Метод идентификации пользователя может быть любым, но обычно OpenID провайдер запрашивает пароль (затем, как правило, сохраняет сессию в cookie, как это делает большинство сайтов с парольным доступом). Если Вася не залогинен, то провайдер может спросить пароль для входа на openid-provider.org. Затем провайдер спросит, доверяет ли Вася, к примеру, http://example.com/openid-return.php — странице, указанную example.com для возврата пользователя после проверки подлинности, куда будет отправлена его информация. Если Вася ответит утвердительно, идентификация по OpenID признаётся успешной и браузер с соответствующими полномочиями перенаправляется на указанную страницу. В случае недоверия Васи указанной странице зависимой стороны браузер всё равно перенаправляется — однако, так как зависимая сторона получает отказ на свой запрос, example.com в свою очередь, отказывается впустить Васю.
Однако процесс входа всё ещё не завершён, потому что на данном этапе example.com должен удостовериться, что полномочия пользователю выдал действительно openid-provider.org. Если стороны предварительно договорились о секретном ключе (shared secret см.выше), то зависимая сторона может проверить ключ, полученный вместе с полномочиями пользователя по имеющейся у неё информации. Такая зависимая сторона называется хранящей состояние (stateful), так как она сохраняет секретный ключ между сессиями. В противоположность ей зависимая сторона без памяти (stateless) или немая (dumb) должна совершить ещё один фоновый запрос (check_authentication) для проверки того, что данные действительно пришли с сервера openid-provider.org.
После проверки Васиного идентификатора, Вася признаётся зашедшим на example.com как pupkin.openid-provider.org. После чего сайт может сохранить сессию или, если это первый визит, запросить у пользователя дополнительную информацию необходимую example.com для завершения регистрации.
В скором будующем, надеюсь, и на моем сайте заработает openID, а пока Вы можете получить OpenID-идентификатор у провайдера MyopenID.Com или у первого русского провайдера IsOpenId.Ru . На последнем, кстати, в связи с его молодостью, еще много свободных логинов - спешите застолбить!)