Ваш собственный OpenID

Многие думают, что OpenID — это что-то невероятно сложное в использовании. Вовсе нет. Давайте я покажу простой и полезный, для тех, у кого есть собственный сайт, пример использования OpenID. Как многие знают, для того, чтобы авторизоваться на чужом сайте, нужно иметь аккаунт на каком-нибудь сервере OpenID — ЖЖ, Li.Ru, MoiKrug, Ya.Ru и т. п. Если у вас есть логин в одном из этих сервисов, то у вас есть OpenID.

Что делать, если вы хотите подписываться у меня в комментариях не как «user.livejournal.com», а как «myblog.sample.com»? Наверное вам нужно будет установить себе на сайте собственный сервер OpenID? Правильно? Неправильно!

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

Вот как это выглядит для сервера myopenid.com (кстати, очень рекомендую его к использованию):

<link rel="openid.server" href="http://www.myopenid.com/server/" />
<link rel="openid.delegate" href="http://ваш_ник.myopenid.com/" />

А вот так это будет выглядеть для Ya.Ru:

<link rel="openid.server" href="http://openid.yandex.ru/server.xml" />
<link rel="openid.delegate" href="http://openid.yandex.ru/users/ваш_ник" />

Так, для Живого Журнала:

<link rel="openid.server" href="http://www.livejournal.com/openid/server.bml" />
<link rel="openid.delegate" href="http://ваш_ник.livejournal.com" />

Для Liveinternet.ru:

<link rel="openid.server" href="http://www.liveinternet.ru/openid.php" />
<link rel="openid.delegate" href="http://http://www.liveinternet.ru/users/ваш_ник" />

Для того, чтобы изготовить эту строку для каких-то других сервисов пользуйтесь универсальным правилом: обычно значение поля «openid.delegate» совпадает с вашей персональной страницей на этом сервисе, а значение для «openid.server» можно взять из исходного кода той же страницы, там должен быть аналогичный тег LINK.

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

SolarWind (solargate.ru) № 3
А почему же установка собственного сервера — это неправильно? Имхо, вполне себе правильно. Кроме того, это совсем просто. Вот здесь я писал об этом когда-то:

http://www.solargate.ru/ustanovka-openid-s … a-v-drupal
Евгений Степанищев (bolknote.ru) автор № 4
Где я написал, что установка собственного сервера неправильно? Я пишу о том, что в этом нет необходимости.
Евгений Степанищев (bolknote.ru) автор № 6
Хотя нет, я считаю, что для решения данной задачи (авторизация однопользовательского блога на других сайтах) установка OpenID — неправильно. Это, несомненно, из пушки по воробьям.
SolarWind (solargate.ru) № 7
Где я написал, что установка собственного сервера неправильно?

Ну это я на основании этой цитаты:

Наверное вам нужно будет установить себе на сайте собственный сервер OpenID? >Правильно? Неправильно!
Хотя нет, я считаю, что для решения данной задачи (авторизация
однопользовательского блога на других сайтах) установка OpenID — неправильно.
Это, несомненно, из пушки по воробьям.

Ну я бы так не сказал. Установка своего сервера — задача немногим сложнее использования делегированного OpenID. Кроме того, к сожалению, не все сайты корректно работают с делегированными OpenID.

Евгений Степанищев (bolknote.ru) автор № 8
Комментарий для solargate.ru:

Я видел только один сайт, который неверно работает с делегированным OpenID, а если работает неверно, то комментрировать я там не буду, потому что посчитаю, что комментарии не работают.

Ставить какую-то сторонюю приблуду, для неё прописывать rewrite-правила в веб-сервере и так далее, это конечно же сложнее, чем написать два тега. Последнее требует куда более низкого уровня знания «всех этих вещей», чем установка своего OpenID.

Кстати, в рамках юзабилити-тестирования, а как сделать персональный ответ, не очевидно?.. :(
SolarWind (solargate.ru) № 9

Комментарий для Евгения Степанищева:

Ставить какую-то сторонюю приблуду, для неё прописывать rewrite-правила в
веб-сервере и так далее, это конечно же сложнее, чем написать два тега.

В том варианте, который я описывал, никаких rewrite-правил описывать не нужно. В том-то и дело, что там все весьма просто. Ну да ладно, это все вопрос личного выбора.

Кстати, в рамках юзабилити-тестирования, а как сделать персональный ответ, не
очевидно?.. :(

Достаточно очевидно, но не особо удобно (читай непривычно). Имхо, было бы проще, если бы были древовидные каменты. Ну или даже если не древовидные, то с ссылкой под каждым каментом «ответить». Из списка выбрать, конечно, можно, но и забываешь, и не особо интуитивно (или непривычно просто).

Евгений Степанищев (bolknote.ru) автор № 10
Комментарий для solargate.ru:

Rewrite-правила конечно же нужны, причём в 90% случаев. У меня, например, ты же не думаешь, да, что эта заметка лежит в директории /all/1514 как index.html? Стоят rewrite для обработки, значит нужно приписывать исключение.

Чёрт, ссылки надо поправить в RSS для подписки на комменты, поломанные. Не обязательно из списка выбирать — достаточно на аватару кликнуть. Да, наверное, ответить проще, куда только это сунуть.
SolarWind (solargate.ru) № 11
Комментарий для Евгения Степанищева:

Я наверное чего-то не понимаю, но причем тут openid и правила rewrite?
SolarWind (solargate.ru) № 12
Комментарий для Евгения Степанищева:

Хмм, действительно, насчет клика на аватару я не допер. Не интуитивно понятно…
ZliyPes (zliypes.com.ua) № 13
Женя, почини фид. Он периодически глючит и вытягивает постинги с www.bolk.exler.ru, хотя обычно без www.
Евгений Степанищев (bolknote.ru) автор № 15
Подробнее проблему. Я не понял. Какой из кучи фидов чинить? И в чём конкретно проблема? Какие-то ссылки с www, какие-то без? Так какой из фидов поломан?
Евгений Степанищев (bolknote.ru) автор № 14
Комментарий для solargate.ru:

OpenID и правила rewrite не связаны напрямую. Ситуация такая.

На кого расчитано то, что я написал? На очень неподготовленного пользователя, это видно по тому, что в заметке есть несколько однотипных готовых конструкций. Для того, чтобы поставить OpenID-сервер, этому неподготовленному пользователю нужно выполнить кучу телодвижений. В том числе прописать rewrite, так как почти все движки перенаправляют на себя обработку URL.

Для этого OpenID-пакета нужно, чтобы этот директорий (myopenid или куда там оно ставится) не перенаправлялся в обработчик, значит нужно писать rewrite-правило.

Насчёт клика на аватару не нужно допирать, это просо написано, рядом с select'ом выбора ника.
SolarWind (solargate.ru) № 17

Комментарий для Евгения Степанищева:

Для того, чтобы поставить OpenID-сервер, этому неподготовленному пользователю
нужно выполнить кучу телодвижений. В том числе прописать rewrite, так как почти
все движки перенаправляют на себя обработку URL.

Хмм… А я никаких rewrite не прописывал при установке openid-сервера.

Евгений Степанищев (bolknote.ru) автор № 18
Комментарий для solargate.ru:

И так бывает. Зависит от того как организаван rewrite.
nudnik.ru № 19
Комментарий для solargate.ru:

Древовидные комменты идут в пизду!
Евгений Степанищев (bolknote.ru) автор № 20
+1. Ненавижу эту древовидность, механизм раздувания флейма. Кроме того, для них потом придётся делать «схлопование» на длинных тредах и unfold.
Евгений Степанищев (bolknote.ru) автор № 21
В общем, мысли по поводу подписки на комментарии такие:
1) под юзерпиком написать «ответить»
2) рядом с логином в форме комментария сделать иконку RSS для подписки.
kikaha.moikrug.ru № 24
Древовидные — в пень, согласен, нефиг письками меряться в чужом треде, для этого аська есть
nicomashi.livejournal.com № 31
Извините, а уведомления приходить куда будут? OpenId не отдает мыла?
karudo.livejournal.com № 41
Вот интересный момент: я могу написать в качестве OpenID www.livejournal.com/users/karudo, а могу karudo.livejournal.com и для сайта, на котором я хочу оставить коммент это, судя по всему будут разные пользователи. Или есть возможность их таки как-то сопоставить?
Ну с ЖЖ то еще потяно как, а вот если завести свой сервер с OpenID, там этих страниц напложить можно целую кучу.
Евгений Степанищев (bolknote.ru) автор № 42
Сопоставить нельзя. OpenID — это система валидации URL, не больше.
Zetruger (ivan.chistyakov.name) № 54
с этими опенайди такое ощущение что уже не люди общаются друг с другом а домены
и еще чемто фидонет напоминает или что то такое

там где у людей более строгие структурированные идентификаторы
а не просто рандомные ники
Евгений Степанищев (bolknote.ru) автор № 56
Комментарий для ivan.chistyakov.name:

А e-mail нет чувства, что не люди общаются, а домены? С Jabber?

bolk@bolknote.ru читается по-английски однозначно: «Болк с сайта bolknote.ru». Человек и место его «прописки».

А вот метод ФИДО — какие-то цифры и значки мне ни разу не близок.

Способ размещать ссылки на свой сайт ничем не лучше других — скажешь что-то, что человека заденет, он зайдёт, не скажешь, не зайдёт. Поисковики ссылки не сранжируют, все нужные теги выставлены.
dmitriykulikoff.ya.ru № 59
Эх, ещё побольше бы сервисов, которые не только раздавали OpenID, но и предоставляли бы услуги на его основе, хотяб чтоб блогхосты камменты позволяли бы оставлять, поисковики — вести историю поиска и прочии фишки…
Евгений Степанищев (bolknote.ru) автор № 60
Сейчас уже очень много блогхостингов OpenID-комменты позволяют оставлять. А поисковики,… не понял идею, это как?
infato.livejournal.com № 72
у меня в самом начале все работало, а сейчас не авторизуется на сайтах поддерживающих OpenID/ в чем дело не понятно
orcinus.ru № 87
Кажется оно работает только если введешь полный путь, вместе с протоколом. А так работает?
Евгений Степанищев (bolknote.ru) автор № 91
Комментарий для baka.name:

Почему бы просто не сделегировать откуда-нибудь?
Orcinus Orca (orcinus.ru) № 93
Комментарий для baka.name:

Господи, что за моветон в исходниках? Сделайте все в нижнем регистре ибо движок у Волка не поддерживает парсинг OpenID прописанный в хеадере из больших букв.