Drupal OpenID delegate. OpenID с именем вашего сайта на примере launchpad.net и Drupal.

 
openid_logo

Зарегистрировавшись на сайте одного из множества провайдеров OpenID вы наверняка уже оценили удобство этой системы.
Теперь можно добавить немного красоты.
Если у вас есть собственный домен и сайт размещённый в этом домене, то в качестве вашего идентификатора можно использовать имя вашего домена оставив весь процесс авторизации на совести первичного провайдера, будь то livejournal.com или yandex.ru.

Универсальный способ

Это редактирование главной страницы (шаблона главной страницы) вашего сайта. Задача состоит в том, чтобы разместить между тэгами <head></head> примерно такие строки:

<link rel="openid.server" href="https://login.launchpad.net/+openid" />
<link rel="openid.delegate" href="https://login.launchpad.net/+id/YOURID" />
<link rel="openid2.provider" href="https://login.launchpad.net/+openid" />
<link rel="openid2.local_id" href="https://login.launchpad.net/+id/YOURID" />
<meta http-equiv="X-XRDS-Location" content="https://login.launchpad.net/+id/YOURID/+xrds" />

Где:

  • https://login.launchpad.net/+openid
    Адрес сервер авторизации (у каждого провайдера он свой)
  • https://login.launchpad.net/+id/YOURID
    Собственно Ваш OpenID предоставленный провайдером
  • https://login.launchpad.net/+id/YOURID/+xrds
    По сути заменяет всё что выше. Желательно.

Если ваш сайт или блог работает на Drupal

Всё очень просто.
Установите модуль Openidurl, зайдите в админку и найдите ссылку "OpenID URL" в разделе "Настройки сайта". Вам будет предложено заполнить простейшую фору из трёх текстовых полей в которые следует ввести все данные, о которых говорилось выше. Drupal сам сформирует необходимый код и включит его в страницу.

Всё

Теперь вместо вашего OpenID полученного у провайдера, например
https://login.launchpad.net/+id/YOURID
можете использовать имя вашего домена, например
http://unixcomp.org

Launchpad.Net выбран для примера не зря.

Если вы счастливый обладатель учётки на Launchpad.Net, то у вас есть OpenID вида https://launchpad.net/~nickname, где nickname ваше имя на Launchpad, которое можно менять в профиле из чего вытекает, что такой идентификатор можно использовать непосредственно, но нельзя сделать для него алиас или использовать для делегирования. Тоесть вы можете его вводить в форму авторизации на сайте поддерживающем вход по OpenID, но в контексте тематики этой статьи он не подходит. При попытке авторизации сайт будет сообщать об ошибке.

Внимательный читатель заметил два разных ID, который приведены в этой статье для одного и того же провайдера:
https://login.launchpad.net/+id/YOURID
и
https://launchpad.net/~nickname

В этом и кроется разгадка. Для создания алиаса OpenID полученного у провайдера Launchpad.NET нужно использовать реальный ID который скрывается в коде странички вашего профиля на Launchpad. Просмотрите код и вы обаружите в разделе <head></head> уже знакомые вам строки, только на месте YOURID будет распологаться уникальная комбинация, используйте её для настройки вашего сайта или блога.

Примеры для других провайдеров

yandex.ru

<link rel="openid.server" href="http://openid.yandex.ru/server/" />
<link rel="openid.delegate" href="http://openid.yandex.ru/{username}/" />
<link rel="openid2.provider" href="http://openid.yandex.ru/server/" />
<link rel="openid2.local_id" href="http://openid.yandex.ru/{username}/" />
<meta http-equiv="X-XRDS-Location" content="http://openid.yandex.ru/{username}/yadis/" />