Ваш собственный 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 комментариев
blog.fxposter.org

Спс :)

Lab (laborant.myopenid.com)

спасибо. как эта штука работает-то?

SolarWind (solargate.ru)

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

http://www.solargate.ru/ustanovka-openid-servera-v-drupal

Евгений Степанищев (bolknote.ru)

Комментарий для solargate.ru:

Где я написал, что установка собственного сервера неправильно? Я пишу о том, что в этом нет необходимости.

Евгений Степанищев (bolknote.ru)

Комментарий для laborant.myopenid.com:

О том как эта штука работает, можно прочитать в любом стандарте OpenID.

Евгений Степанищев (bolknote.ru)

Комментарий для solargate.ru:

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

SolarWind (solargate.ru)

Где я написал, что установка собственного сервера неправильно?

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

Наверное вам нужно будет установить себе на сайте собственный сервер OpenID? >Правильно? Неправильно!

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

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

Евгений Степанищев (bolknote.ru)

Комментарий для solargate.ru:

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

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

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

SolarWind (solargate.ru)

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

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

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

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

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

Евгений Степанищев (bolknote.ru)

Комментарий для solargate.ru:

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

Чёрт, ссылки надо поправить в RSS для подписки на комменты, поломанные. Не обязательно из списка выбирать — достаточно на аватару кликнуть. Да, наверное, ответить проще, куда только это сунуть.

SolarWind (solargate.ru)

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

Я наверное чего-то не понимаю, но причем тут openid и правила rewrite?

SolarWind (solargate.ru)

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

Хмм, действительно, насчет клика на аватару я не допер. Не интуитивно понятно...

ZliyPes (zliypes.com.ua)

Женя, почини фид. Он периодически глючит и вытягивает постинги с www.bolk.exler.ru, хотя обычно без www.

Евгений Степанищев (bolknote.ru)

Комментарий для solargate.ru:

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

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

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

Насчёт клика на аватару не нужно допирать, это просо написано, рядом с select’ом выбора ника.

Евгений Степанищев (bolknote.ru)

Комментарий для zliypes.com.ua:

Подробнее проблему. Я не понял. Какой из кучи фидов чинить? И в чём конкретно проблема? Какие-то ссылки с www, какие-то без? Так какой из фидов поломан?

gstrategy.ru

test

SolarWind (solargate.ru)

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

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

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

Евгений Степанищев (bolknote.ru)

Комментарий для solargate.ru:

И так бывает. Зависит от того как организаван rewrite.

nudnik.ru

Комментарий для solargate.ru:

Древовидные комменты идут в пизду!

Евгений Степанищев (bolknote.ru)

Комментарий для nudnik.ru:

+1. Ненавижу эту древовидность, механизм раздувания флейма. Кроме того, для них потом придётся делать «схлопование» на длинных тредах и unfold.

Евгений Степанищев (bolknote.ru)

В общем, мысли по поводу подписки на комментарии такие:
1) под юзерпиком написать «ответить»
2) рядом с логином в форме комментария сделать иконку RSS для подписки.

lusever.ru

Сработает?

Евгений Степанищев (bolknote.ru)

Комментарий для lusever.ru:

Конечно, сработает :)

kikaha.moikrug.ru

Древовидные — в пень, согласен, нефиг письками меряться в чужом треде, для этого аська есть

westra.ru/club/person/gladilin.html

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

спасибо!

bressergey.com

спасибо

frd.zazoid.com

спасибо, да %)

openid.yandex.ru/users/Aufreisser

Спасибо

dvf.name

Спасибо!

kotoffeich.livejournal.com

Классно! Сделал эту штуку под joomla в communitybuilder!

nicomashi.livejournal.com

Извините, а уведомления приходить куда будут? OpenId не отдает мыла?

Nicomo (openid.yandex.ru/users/nicomo)

Комментарий для nicomashi.livejournal.com:

Эт я себя пробую

kotoffeich.livejournal.com

и как успехи?

www.liveinternet.ru/users/nicomashi

Комментарий для kotoffeich.livejournal.com:

Все гуд!

Евгений Степанищев (bolknote.ru)

Комментарий для nicomashi.livejournal.com:

У OpenID есть SRE, там можно запросить и мыло.

Mr.K (mourk.com)

Проверка!

freeman.isopenid.ru

test

Philip (philip.progtech.ru)

Спасибо/ Действительно удобно.

lisfer.livejournal.com

test

www.livejournal.com/users/karudo

test

karudo.livejournal.com

Вот интересный момент: я могу написать в качестве OpenID www.livejournal.com/users/karudo, а могу karudo.livejournal.com и для сайта, на котором я хочу оставить коммент это, судя по всему будут разные пользователи. Или есть возможность их таки как-то сопоставить?
Ну с ЖЖ то еще потяно как, а вот если завести свой сервер с OpenID, там этих страниц напложить можно целую кучу.

Евгений Степанищев (bolknote.ru)

Комментарий для karudo.livejournal.com:

Сопоставить нельзя. OpenID — это система валидации URL, не больше.

alexey (alexeyb.myid.net)

тест

Евгений Степанищев (bolknote.ru)

Комментарий для alexeyb.myid.net:

passed

vitiy.info

test

xeus.ru

Спасибо, для меня это актуально было.

rAlex (plaintext.ru)

Можно, да, проверить :)

Erema (id.eremeev.net)

интересно...

verstalchik.livejournal.com

тест :)))

verstalchik.livejournal.com

ещё раз проверю :))

spionsbbs.ya.ru

Test

RealMan (emptyman.myopenid.com)

test

www.ocy.ru

Хм... Что ж всё-таки не так с md5 у меня...

Zetruger (ivan.chistyakov.name)

с этими опенайди такое ощущение что уже не люди общаются друг с другом а домены
и еще чемто фидонет напоминает или что то такое

там где у людей более строгие структурированные идентификаторы
а не просто рандомные ники

Zetruger (ivan.chistyakov.name)

кстати не плохой способ размещать ссылки на свой сайт или блог ))

Евгений Степанищев (bolknote.ru)

Комментарий для ivan.chistyakov.name:

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

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

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

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

pomaskin (www.pomasking.ru)

Проверка

airspb.myopenid.com

Спасибо зарегал опен ID — проверка :)

dmitriykulikoff.ya.ru

Эх, ещё побольше бы сервисов, которые не только раздавали OpenID, но и предоставляли бы услуги на его основе, хотяб чтоб блогхосты камменты позволяли бы оставлять, поисковики — вести историю поиска и прочии фишки...

Евгений Степанищев (bolknote.ru)

Комментарий для dmitriykulikoff.ya.ru:

Сейчас уже очень много блогхостингов OpenID-комменты позволяют оставлять. А поисковики,… не понял идею, это как?

RealMan (realman.isopenid.ru)

test

RealMan (realman.isopenid.ru)

dasda

emptyman.ya.ru

тест

levchik (lev-a.spb.ru)

прикольно, спасибо)

infinius.ru

test

gawu.ru

проверка

intway.dn.ua

проверка

http/openid.yandex.ru/vsyscoder/ /

test

aleksandr-kobychenko.ya.ru

проверка

Lestat (www.chertov.me/blog/)

Спасибо за инфу!... тестим))

andrey.sorvin.ru

Проверка.
Очень полезная статья ))) Спасибо!

infato.livejournal.com

у меня в самом начале все работало, а сейчас не авторизуется на сайтах поддерживающих OpenID/ в чем дело не понятно

Евгений Степанищев (bolknote.ru)

Комментарий для infato.livejournal.com:

У всех работает. Может провайдер OpenID протух?

desti.livejournal.com

tst

polshestogo-utra.blogspot.com

Спасибо. Воспользуюсь.

ademidov.livejournal.com

test

www.liveinternet.ru/users/omffg/

и у меня тоже тест

Евгений Степанищев (bolknote.ru)

Ещё тест

Евгений Степанищев (bolknote.ru)

Тест

Евгений Степанищев (bolknote.ru)

Таак… Ещё тест

cargan (cargan.ya.ru)

test

www.kreinin.com/blog/

test

http://www.kreinin.com

Спасибо! Всё работает.

sergun46 (openid-provider.appspot.com/sergun46)

Очень помогло .

sergun46 (www.sergun-blog.ru)

Проверка

orcinus.ru

А как проверить работоспособность ОпенИд?

http://orcinus.ru

Кажется оно работает только если введешь полный путь, вместе с протоколом. А так работает?

Евгений Степанищев (bolknote.ru)

Комментарий для orcinus.ru:

У вас просто не работает OpenID.

http://baka.name/

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

А у меня? (test)

baka.name

Комментарий для http://baka.name/:

По-прежнему — нет. ^_^

Евгений Степанищев (bolknote.ru)

Комментарий для baka.name:

Почему бы просто не сделегировать откуда-нибудь?

DebianMan (debianadmin.ru)

test

Orcinus Orca (orcinus.ru)

Комментарий для baka.name:

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

Oleg Kuznetsov (o-a-kuznetsov.ya.ru)

Проверка

Локи Артем (lowkee.moikrug.ru)

тест

Популярное