Все читатели блога уже общаются на нашем форуме. Ты ведь с ними, не так ли? Войти на форум

Делегирование OpenID


Делегирование Страшное слово делегирование в первом приближении можно понимать, как синоним слова «передача». Обычно оно употребляется в контексте типа «пользователь A делегировал свои права доступа пользователю B». Однако в данной статье речь пойдет о другой виде передачи, а именно о том, как вместо длинного OpenID типа web20su.livejournal.com использовать короткий, например web20.su.

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

Действительно, собственное доменное имя:

  • уникально;
  • как правило, короче какого-нибудь web20su.livejournal.com;
  • и при этом однозначно идентифицирует своего владельца.

Почему-то многие блогеры допускают одну и ту же ошибку. Они пытаются создавать собственный OpenID сервер (последний, надо отметить, является обыкновенным CGI приложением). Итак, они качают готовые скрипты (обычно на PHP), понимают, что они не работают или работают не всегда хорошо, начинают пытаться переписать сервер, терпят неудачу, пытаются писать OpenID сервер с нуля, лезут в спецификацию протокола, а там такое… Все эти телодвижения совершать не требуется, если только вы не хотите позволить пользователям входить под OpenID на вашем собственном сайте.

Собственный OpenID сервер требует специальных настроек хостинга, производит большую нагрузку на сервер, требует много сил для сопровождения. К счастью, Фицпатрик, создатель OpenID (и Живого Журнала!), учел это при разработке технологии. Решение заключается в том, чтобы использовать чужой OpenID сервер вместо своего.

Допустим, у вас имеется N — любое натуральное число — собственных сайтов. Вы можете использовать любой из них в качестве своего OpenID. А точнее говоря, в качестве алиаса (синонима) к OpenID, предоставленного сторонним OpenID провайдером. Например, администратор этого сайта использует короткий и красивый OpenID web20.su вместо длинного и страшного web20su.livejournal.com.

Вопрос о том, как делегирование реализовано в самой технологии, выходит за рамки этой статьи. Скажем лишь, что для его применения достаточно вписать несколько тегов на странице вашего сайта между <head> и </head>. Если вы посмотрите исходный код этой страницы, то найдете в нем следующее:

<link rel="openid.server"
href="http://www.livejournal.com/openid/server.bml" />
<link rel="openid.delegate"
href="http://web20su.livejournal.com/" />

В первой строке указана ссылка на OpenID сервер, во второй — делегируемый идентификатор, то есть собственно OpenID. Получить адрес сервера можно, просмотрев исходный код страницы, находящейся по URL, который представляет собой ваш OpenID. Другими словами первая строчка просто скопирована из исходного кода страницы web20su.livejournal.com. Что вы теперь думаете о собственном сервере? :)

Халява! 9AMKTW58WURE — это подарочный сертификат на хостинг Jino. http://www.jino.ru/card — ссылка для активации. Пожалуйста, отпишитесь в комментариях, если вы воспользовались им. Или если выяснится, что кто-то не отписался… Новые раздачи в ближайший статьях!


Комментарии (8) на запись “Делегирование OpenID”

  1. Сандер 2009.10.21

    Свой OpenID сервер — это не так сложно, если это PHPmyID для одного пользователя. Писал об этом в http://it.sander.su/personal_OpenID.php
    Зачем зависеть от стороннего сервера?

  2. eax 2009.10.21

    Сандер: по аналогии — зачем поднимать свой сервер, когда уже есть myid.net? Видимо это дело вкуса — не зависеть от сторонних сервисов или не делать лишнюю работу. Но учитывая, что мы говорим о Web 2.0, на мой взгляд последнее есть рассово верное решение.

  3. Сандер 2009.10.21

    Ну как-то я стараюсь минимально зависеть от посторонних сервисов. Иначе постоянно проблемы с прогрузкой сайта не из-за меня. Пока единственный провайдер сервисов, которому я доверяю, это Google.

    P.S. очень неудобно, что тут нет подписки на комментарии на e-mail или rss

  4. admin 2009.10.22

    @Сандер,
    Вы не первый, кто жалуется. Уже исправили.

  5. Сандер 2009.10.22

    Отлично, лента работает!

  6. BTemplate 2010.01.19

    Подарочный сертификат от http://www.jino.ru/card использовал. Спасибо.

  7. Безумный Программист 2010.01.19

    BTemplate [#comment-1908], пожалуйста :)

  8. Гость 2010.06.14

    сейчас попробовал несколько сервисов OpenID
    только yandex хорощо отреагировал и отправил еше запрошенный ник и емаил
    livejournal.com отреагировал но ничего не отправил
    ramler вообще не работал
    вот так
    свой надежнее