Твой собственный OpenID
January 25, 2008 , revised May 5, 2010 in DevopsСистема единого входа OpenID, разработанная создателем Живого Журнала Брэдом Фитцпатриком несколько лет назад, постепенно начала входить в моду. Список сайтов, поддерживающих OpenID-вход, растет – есть и плагин для OpenID-комментариев в WordPress.
Если у тебя есть сайт, то вполне логичным будет использование его имени в качестве OpenID-логина.
Не надо мне теории, дайте код!
Что такое OpenID?
Даю слово Википедии:
OpenID — это свободная децентрализованная система единого входа, которая позволяет использовать один логин и пароль на большом количестве сайтов. На сайтах поддерживающих OpenID, пользователям не приходится регистрироваться и помнить данные для каждого сайта. Вместо этого им достаточно быть зарегистрированными на сайте «провайдера идентификации» OpenID (предоставляющего идентификатор).Так как технология OpenID децентрализованная, то любой сайт может использовать программное обеспечение OpenID в качестве средства входа; OpenID решает проблему не полагаясь на централизованный сайт для подтверждения подлинности пользователя.
(текст из Википедии: OpenID)
Принцип работы OpenID
- С OpenID ты авторизуешься только один раз за сеанс работы – на сайте провайдера.
- OpenID использует твое доменное имя как логин
- Поэтому твой логин уникален и может быть использован только тобой (если увидите coldflame.in.ua – это я и никто другой)
- Если сайт поддерживает OpenID, то где-то около ввода логина/пароля, должно быть поле OpenID, куда вводится OpenID-логин, то есть твое доменное имя:
- Провайдеры бывают разные (у нас будет свой)
Преимущества OpenID
- Возможность писать комментарии на многих блог-серверах (например, LiveJournal, Blogspot, WordPress), не регистрируясь там.
- Если сайт/сообщество поддерживает OpenID, там всегда можно использовать свой нормальный логин – никто не может его занять. Здорово, правда?
- Пока ты владеешь доменным именем – твой логин никто не отберет.
- Когда-нибудь необходимость в регистрации на сайтах вообще отпадет.
Установка собственного провайдера OpenID
Ладно, хватит теории!Провайдеров OpenID много, но если у тебя есть PHP-хостинг, можно установить свой собственный – ни от кого не зависеть, Пригодятся базовые знания PHP, на уровне «поменять значение строковой константы».
Будем использовать библиотеку phpMyId. Хотя библиотека – это громко сказано. phpMyId – это однопользовательский провайдер OpenID, написанный на PHP. Устанавливается еще проще, чем хваленый WordPress.
Что тебе понадобится?
- Дистрибутив phpMyId
- PHP-хостинг
- отключенный safe mode
- Базы данных не нужны (на одного пользователя? зачем?)
Установка
- Распаковываем дистрибутив на сайт в отдельную папку, например,
/openid
- Переименовываем
MyId.config.php
вindex.php
- Открываем его. Наблюдаем два массива с конфигурацией. Нам строго необходимо указать
auth_username
– твой логин (любой, не имеет значения)auth_password
– отдельным скриптом считаем хеш, например, так:<?php=md5('твой-логин-из-предыдущего-пункта:phpMyID:твой-пароль')?>
получаем строку типа
37fa04faebe5249023ed1f6cc867329b
, вот ее и вписываем в конфиг.idp_url
– это URL твоего провайдера – раскомментируй и впиши URL файлаindex.php
, например, у меня –http://coldflame.in.ua/openid/index.php
(вроде бы и не необходимая настройка, но без нее у меня не заработало)
На это настройка провайдера закончена! Осталось привязать его к твоему доменному имени.
- Для этого редактируем
index
твоего домена (попросту, страницу, которая будет открываться при вводе твоего OpenID-логина в обозреватель) - В <head> этой страницы добавляем две строчки. Важно – URL должен быть путем к файлу, т.е. заканчиваться на index.php, без этого у меня не заработало.
<link rel="openid.server" href="URL твоего провайдера" /> <link rel="openid.delegate" href="URL твоего провайдера" />
- Поздравляю, теперь можешь использовать свой домен как OpenID-логин!
Для желающих покопаться в настройках подробнее описано в README к библиотеке.
Проверяем
Проще всего проверить исправность своего OpenID OpenID Checkup – достаточно ввести туда свой логин (я ввожу http://coldflame.in.ua), и следовать инструкциям. Или оставь Open-ID комментарий на этот пост – пользователи ЖЖ могут сделать это без лишних хлопот. :)
Понравился пост? Купи мне кофе