Сервер авторизации OpenID на собственном домене
Давно хотел приладить OpenID к своему домену в качестве сервера авторизации, что бы при комментировании можно было указывать адрес своего блога в том же ЖЖ.
Перепробовал массу готовых php скриптов (Prairie, phpMyID, PHP OpenID Server, Clamshell, NetMesh InfoGrid LID PHP, SimpleID). Одни не устраивали тем, что требуется база данных (зачем она нужна для одного аккаунта?), другие тупо не хотели работать с одним сайтом, но работали с другим. Надежного автономного решения так и не нашлось.
Почитав спецификацию OpenID выяснил, что можно делегировать проверку полномочий стороннему серверу. На этом и остановился. Считаю, что лучше пусть этим занимается полноценный сервер, нежели недоделанные скрипты.
А теперь по порядку:
1) Заходим на www.myopenid.com и регистрируемся. В итоге получаем для авторизации адрес типа youraccount.myopenid.com
2) Добавляем следующий код в секцию HEAD своего сайта:
<link rel="openid.server" href="http://www.myopenid.com/server" />
<link rel="openid.delegate" href="http://youraccount.myopenid.com/" />
<link rel="openid2.local_id" href="http://youraccount.myopenid.com" />
<link rel="openid2.provider" href="http://www.myopenid.com/server" />
<meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=youraccount.myopenid.com" />
На этом всё. Не правда ли просто? Теперь при авторизации на любом сайте где требуется OpenID вы можете использовать адрес своего сайта.
Там же в myopenid можно заполнить ваши данные (почта, пол, ФИО, возраст, дата рождения, язык и т.д.) которые если потребуются для какого либо сайта, то будут автоматически выданы сервером.
P.S. youraccount надо заменить на ваш логин полученный при регистрации.
февраля 10, 2009 at 21:36
Всё это есть и на Яндексе:
openid.yandex.ru
openid.yandex.ru/info/delegation/
февраля 10, 2009 at 22:32
О как. Не видел. Я тут кучу скриптов перерыл и сделал открытие практически для себя :)
Спасибо буду знать!
марта 21, 2009 at 14:09
поставил яндексовый роднее))
июня 29, 2009 at 9:18
я один момент понять не могу — в какой ФАЙЛ надо код в тегах HEAD вставлять? на сайте то — php скрипты лежат... ниче не вкуриваю...
июня 29, 2009 at 9:20
авторизуюсь ка я у вас тут...
июня 29, 2009 at 9:59
я вот тока одного прикола не понимаю, мне ваш сайт в форму просит не только openid вводить но ещё и логин и мыло... а накой тогда вапще — OpenID URL нужен, если он ничего не подменяет?
июня 29, 2009 at 11:27
Ничего но не просит кроме OpenID URL. Вводите его и авторизовываетесь у своего openid провайдера. Он сам отдаст моему блогу нужные поля.
июня 29, 2009 at 12:15
щас проверим... еслиф чо, потом этот флуд удалите... ввел только — vootshi.oneid.ru ...
да не, нифига, ваш сайт генерирует по адресу — gritsinger.com/wp-comments-post.php
сообщение след. толка — Ошибка: пожалуйста, заполните необходимые поля (имя, e-mail).
а потом ещё на такую форму отправляет —
OpenID Authentication Error
We were unable to authenticate your claimed OpenID, however you can continue to post your comment without OpenID:
лень скриншоты делать, да и не знаю я, вдруг у вас их прикреплять низя... в общем приходиться для публикации это сообщения — все поля кроме САЙТ заполнить...
это у вас косяк или у меня?
июля 10, 2009 at 15:11
Лучше Yandex
июля 21, 2009 at 15:49
Спасибо =)
июля 31, 2009 at 1:33
Проверяю openid, у меня выдает ошибку „OpenID Authentication Error:
We were unable to authenticate your claimed OpenID, however you can continue to post your comment without OpenID: “
Причем на нескольких сайтах, включая Ваш )
августа 16, 2009 at 1:21
А вот никак не могу с авторизацией разобраться...
ноября 7, 2009 at 18:47
Яндекс наше все )
января 8, 2010 at 18:11
Сделал все так, как описано у вас, ща пробую авторизоваться :)
ps требует имя и e-mail, что наверное не важно при авторизации через openid если я все правильно понял...
OpenID Authentication Error
We were unable to authenticate your claimed OpenID, however you can continue to post your comment without OpenID:
Вобщем резюме — не удается авторизоваться на блогах wordpress через openid используя 3 различных openid провайдера...
Что не так? Испробовал много разных вариантов...
января 8, 2010 at 23:24
Ну ведь теоретически надо давать только URL этого самого OpenID, иначе тепярется для прелесть!
Зачем мне давать незнакомым ресурсам свой email к примеру?
Так и здесь: форма *все равно* требует заполнения имени и электропочты...
PSю Тем более, что не рсабатывает тут — однако мой OPenID отлично сеья зарекомендовал!
января 22, 2010 at 7:00
пробуемс...)
января 22, 2010 at 8:31
Ну вот ведь я упрямый человек.
Это ведь WordPress?
Два планига — XRDS / Yadis (уж не знаю для чего, но нужен). Добавляет два мета заголовка в header
OpenID 3 и выше — обственно OpenID
И все работает прекрасно!
января 22, 2010 at 8:31
Сработало :)
февраля 12, 2010 at 4:03
phpMyID база не нужна
февраля 28, 2010 at 13:13
А щас ? :)