Рабочие будни

Архивы

Сервер авторизации 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 надо заменить на ваш логин полученный при регистрации.

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

20 комментариев to “Сервер авторизации OpenID на собственном домене”

  1. Нурлан Says:

    Всё это есть и на Яндексе:

    openid.yandex.ru

    openid.yandex.ru/info/delegation/

  2. Валентин Says:

    О как. Не видел. Я тут кучу скриптов перерыл и сделал открытие практически для себя :)

    Спасибо буду знать!

  3. AS Says:

    поставил яндексовый роднее))

  4. vootshi Says:

    я один момент понять не могу — в какой ФАЙЛ надо код в тегах HEAD вставлять? на сайте то — php скрипты лежат... ниче не вкуриваю...

  5. vootshi Says:

    авторизуюсь ка я у вас тут...

  6. vootshi Says:

    я вот тока одного прикола не понимаю, мне ваш сайт в форму просит не только openid вводить но ещё и логин и мыло... а накой тогда вапще — OpenID URL нужен, если он ничего не подменяет?

  7. Валентин Says:

    Ничего но не просит кроме OpenID URL. Вводите его и авторизовываетесь у своего openid провайдера. Он сам отдаст моему блогу нужные поля.

  8. vootshi Says:

    щас проверим... еслиф чо, потом этот флуд удалите... ввел только — 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:

    лень скриншоты делать, да и не знаю я, вдруг у вас их прикреплять низя... в общем приходиться для публикации это сообщения — все поля кроме САЙТ заполнить...

    это у вас косяк или у меня?

  9. Viktor Says:

    Лучше Yandex

  10. DeMoN Says:

    Спасибо =)

  11. Борис Says:

    Проверяю openid, у меня выдает ошибку „OpenID Authentication Error:

    We were unable to authenticate your claimed OpenID, however you can continue to post your comment without OpenID: “

    Причем на нескольких сайтах, включая Ваш )

  12. Кирилл Says:

    А вот никак не могу с авторизацией разобраться...

  13. Роман Says:

    Яндекс наше все )

  14. Крупенич Андрей Says:

    Сделал все так, как описано у вас, ща пробую авторизоваться :)

    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 провайдера...

    Что не так? Испробовал много разных вариантов...

  15. ioni Says:

    Ну ведь теоретически надо давать только URL этого самого OpenID, иначе тепярется для прелесть!

    Зачем мне давать незнакомым ресурсам свой email к примеру?

    Так и здесь: форма *все равно* требует заполнения имени и электропочты...

    PSю Тем более, что не рсабатывает тут — однако мой OPenID отлично сеья зарекомендовал!

  16. SMiX Says:

    пробуемс...)

  17. sunshine.by Says:

    Ну вот ведь я упрямый человек.

    Это ведь WordPress?

    Два планига — XRDS / Yadis (уж не знаю для чего, но нужен). Добавляет два мета заголовка в header

    OpenID 3 и выше — обственно OpenID

    И все работает прекрасно!

  18. sunshine.by Says:

    Сработало :)

  19. Вася Says:

    phpMyID база не нужна

  20. Valentin Says:

    А щас ? :)

Leave a Reply