OpenID и Simple Registration Extension.

21 Янв 2009

openidOpenID был разработал Брэдом Фицпатриком, одним из создателей LiveJournal. Этот стандарт изначально проектировался, как независимый от провайдера метод аутентификации.

Позже появилась потребность в предоставлении дополнительной информации о конечном пользователе. Для решения этой проблемы было разработано расширение протокола — Simple Registration Extension. Оно позволило хранить и передавать по запросу информацию о «персонах». «Персона» — это запись, содержащая имя, адрес электронной почты и другие данные пользователя, которые обычно требуются для регистрации на сайтах.

Что такое OpenID для конечного пользователя? Это возможность зайти на ваш сайт и получить на нём аккаунт или возможность комментирования без дополнительной регистрации, используя существующий аккаунт на каком-либо сервисе, поддерживающем этот стандарт. Наглядно этот процесс показан на этом видеоролике.

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

Вот несколько примеров популярных сервисов с поддержкой OpenID:

Есть сервисы, которые не имеют другого функционала, являясь просто OpenID-серверами:

    Для разработчиков в использовании OpenID не должно быть особых сложностей. В сети есть полные спецификации всех форматов и стандартов. Существует большое число всевозможных библиотек и классов, реализующих этот функционал.
    Например, библиотека  PHP OpenID Library позволяет производить аутентификацию по OpenID и самому являться провайдером аккаунтов. В комплекте к этой библиотеке идёт множество примеров реализации. То же самое можно осуществить по отдельности более простыми библиотеками class.openid.php и phpMyID.

Для многих популярных CMS и FW есть модули и плагины, которые можно использовать как примеры или как рабочие части проектов:

На мой взгляд, стандарт OpenID уже давно плотно прижился бы в блогосфере, если бы не одно досадное «но». Все OpenID плагины для популярной блог-CMS WordPress ужасны. И дело там даже не в том, что они написаны любителями, а в том, что та часть WordPress, которая отвечает за вывод комментариев и формы комментирования до версии 2.7 была сама реализована очень плохо и грубо.

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

В WordPress 2.7 ситуация немного улучшилась, но с OpenID проблема осталась: работает не всегда и не так как хотелось бы.

Сделать нужно просто: взять за основу форму комментариев сервиса Blogger (выбор способа аутентификации в выпадающем списке), в селект поместить список из OpenID, нескольких популярных сервисов с его поддержкой (LJ, LI, Blogger, Ya.ru, BestPersons) и типа «гость», которому адрес сайта вводить не нужно (только имя и e-mail).

Ещё придётся немного изменить способ отображения автора комментария, когда он уже оставлен. Большинство плагинов тупо приравнивает имя пользователя к его OpenID-идентификатору, а это просто адрес. Настоящее имя пользователя можно запросить у OpenID-провайдера вместе с e-mail и адресом сайта текущей персоны (он может отличаться от OpenID-идентификатора). В случае LiveJournal всё ещё проще — от идентификатора достаточно отрезать заранее известную вторую часть, а первую букву сделать заглавной.

Кроме того, у каждого сервиса есть характерные логотипы, которые было бы здорово выводить перед именем автора.

Задача, казалось бы, очевидная, ничего сложного в ней нет, а нормальной реализации мы, похоже, так и не дождёмся.

Предлагаю порассуждать на эту тему: хочет ли кто-либо участвовать? Может ли кто-то взяться? Есть ли ещё идеи на этот счёт?

Жилинский Владимир.






 

Александр Анатольевич     .

Написано 21 января 2009 года в 20:26


Этот комментарий оставляю с помощью опен айди.

У меня такой вопрос:
Получается, что я могу оставить комментарий введя ник ЖЖ или ЛИ. И получается, что у меня два аккаунта?
Или я где-то не догоняю.

 

Dimox     .

Написано 21 января 2009 года в 21:06


Нужно искать программиста, разбирающегося в WordPress и заинтересованного в появлении такого функционала на его сайте.

Я так полагаю, если будет плагин, реализующий то, что ты описал, количество комментариев, оставляемых на блоге, его использующем, может заметно увеличиться. Правильно?

 

Евгений Че     .

Написано 21 января 2009 года в 21:22


Идея интересная… Покурю маны, мож чего придумаю…

 

Жилинcкий Владимир     .

Написано 22 января 2009 года в 1:54


Александр Анатольевич: с OpenID аккаунт может быть вообще один, например, свой блог, ЖЖ, ЛИ или аккаунт на Яндексе.

Dimox: можно совместно продумать ТЗ и скинуться на кодинг.

Евгений Че: посмотри-подумай :-)

 

Денис Болтиков     .

Написано 22 января 2009 года в 12:27


У меня в планах на начало февраля стоит этот плагин.

 

Жилинcкий Владимир     .

Написано 22 января 2009 года в 12:28


М… Может стоит к разработке совместно подойти, чтобы очередная бесполезная вещь не вышла?
Поднять Wiki, набросать схемки =)

 

Dimox     .

Написано 22 января 2009 года в 12:55


Во, отлично! Надо еще народ привлекать, чтобы составить хорошее ТЗ и красиво реализовать. Короче, нужно объединять усилия =)

 

Жилинcкий Владимир     .

Написано 22 января 2009 года в 12:58


Народ на хабре, но я туда не пойду =)
Этим невменяемым всё равно не удастся объяснить, что такое WordPress…

 

Zigzag     .

Написано 22 января 2009 года в 13:12


С версткой нужна помощь?

 

Денис Болтиков     .

Написано 22 января 2009 года в 13:14


Много народу не надо :)

 

Тормоз     .

Написано 22 января 2009 года в 16:56


Про OpenID ещё много Иван Сагалаев писал. А я сам сейчас без ссылки, т. к. пароль не вспомнил, вспоминать лень и хидер править тоже лень :) Но OpenID – клёвая штука, несомненно.

 

Devaka     .

Написано 24 января 2009 года в 23:41


Надо ещё для wordpress и для textpattern написать.
Вообще идея хорошая, как только научусь писать плагины для вордпресса, войду в комманду :)

 

openid.yandex.ru/NikitaKoroe…     .

Написано 28 января 2009 года в 2:15


Владимир, а как поднять свой openID сервис ?
писать с нуля лень … может есть готовые реализации ?

 

onebaks     .

Написано 1 февраля 2009 года в 20:20


не ставил wp 2.7 , думал там с openid порядок, видимо для них важнее дизайн админки чем опенид

 

Yakov     .

Написано 5 февраля 2009 года в 20:31


У меня в ВП 2.7 включена авторизация по OpenID, так же включен плагин, который при авторизации через OpenID ЖЖ тащит с него юзерпик и подставляет вместо граватара. Эти два плагина входят в сборку Лекактуса, но второй я обновил – так он не требует изменений в теме оформления. Кроме того, в сборку входит и плагин, позволяющий подписываться собственным доменом, на котором ВП установлен. Это все лекактусовская сборка.

 

gritsinger.com/     .

Написано 10 февраля 2009 года в 12:24


тест openid

 

gritsinger.com/     .

Написано 10 февраля 2009 года в 12:35


Извини Володя что балуюсь тут. Почему то только на твоём сайте отрабатывает openid авторизация. Другие не хотят. ЖЖ тоже не хочет. Чуток попроверяю ещё.

 

Valentin     .

Написано 10 февраля 2009 года в 13:57


Всё разобрался. Всё намного проще оказалось. Скоро будет пост :)

 

Жилинcкий Владимир     .

Написано 10 февраля 2009 года в 13:59


Теперь ник отдаётся, а емейл чего нет? =)

 

Valentin     .

Написано 10 февраля 2009 года в 17:59


Работает через http://www.myopenid.com/
Все данные там заполнены. А блог емейл просит вобще? Я не уверен что блог запрашивает данные хоть какие то вобще. Потому как когда идёт запрос личных данных, myopenid предлагает передавать ли их. Тут я запроса не вижу.

 

Жилинcкий Владимир     .

Написано 10 февраля 2009 года в 18:01


Возможно, SRE этому плагину вообще не знакомо =(
Я в нём глубоко не ковырялся – то, что он скорее мертв, чем жив – видно издалека. Спасибо, что хоть как-то работает.

 

Valentin     .

Написано 10 февраля 2009 года в 18:05


Пардон прогнал. Есть запрос. В профиле галку напротив емейла не поставил. Сейчас должно быть всё. Есть?

 

Жилинcкий Владимир     .

Написано 10 февраля 2009 года в 18:06


Сам видишь – и фотка появилась даже =)

 

Valentin     .

Написано 10 февраля 2009 года в 18:09


Было бы время и желание. Остальное найдётся :)
С авторизацией решилось. Клиентская часть смотрю работает у тебя тоже не плохо как бы. Тему можно считать закрытой

 

Жилинcкий Владимир     .

Написано 10 февраля 2009 года в 18:10


Расскажи как сделал, а то я сам до конца не въезжаю как это настроить на стороне сайта и OpenID-провайдера.

 

Valentin     .

Написано 10 февраля 2009 года в 18:12


http://gritsinger.com/server-avtorizacii-openid-na-sobstvennom-domene.html
смотрел? Там всего 2 действия. Зарегистрироваться на сайте и внести строчки в head

 

Valentin     .

Написано 10 февраля 2009 года в 18:13


На блоге у меня последний пост посмотри. Там 2-а действия всего

 

Жилинcкий Владимир     .

Написано 10 февраля 2009 года в 18:14


Я так делал, работает ой не везде и ой не всегда ровно =(

 

Valentin     .

Написано 10 февраля 2009 года в 18:16


Пример где не работает можно? Хочется испытать :)

 

Жилинcкий Владимир     .

Написано 10 февраля 2009 года в 18:17


Не сейчас, не сразу =)
На работе. Надо вспоминать.

 

Valentin     .

Написано 10 февраля 2009 года в 18:19


Почитав спецификацию OpenID понял, что она ох как не простая. Не каждому под силу её реализовать правильно

 

Valentin     .

Написано 10 февраля 2009 года в 18:20


Просто пока где пробовал, результат положительный. Время найдёт ошибки :)

 

Dimox     .

Написано 10 февраля 2009 года в 18:47


Valentin, а для чего мета-тег, который содержит X-XRDS-Location? У меня он не прописан, и, например, на этом блоге без проблем.

 

Valentin     .

Написано 10 февраля 2009 года в 19:08


Dimox, на этом блоге без проблем, а на другом могут быть проблемы. Это не моя прихоть, данные теги рекомендовал сервер авторизации. Я ему верю :)

 

Valentin     .

Написано 10 февраля 2009 года в 19:18


Погугли X-XRDS-Location и понял, что после того как написал пост, нашел подобные посты. Пока сам не сделаешь глаза не видят.

 

medplanet.livejournal.com/     .

Написано 19 февраля 2009 года в 5:23


Я перепробовал не одно решение под Друпал и Вордпресс, но пришлось всё же брать наиболее подходящее и переписывать под себя. Жалко, много времени потратил.

 

Жилинcкий Владимир     .

Написано 19 февраля 2009 года в 7:39


И где это можно увидеть? =)

 

ibear.livejournal.com/     .

Написано 2 марта 2009 года в 11:59


Гут! Мы на rocID тоже планируем сделать openID-сервер.

© 2007-2010 Блог интернет-разработчика, автор — Жилинский Владимир.
При использовании информации ссылка на источник обязательна.



Дизайн сайта
DIZ Balance
PR&CY Checker
Рейтинг блогов