Devops

Твой собственный OpenID

revised 5 May 2010

Если у тебя есть сайт, то вполне логичным будет использование его имени в качестве OpenID-логина.

Логотип OpenID

Система единого входа OpenID, разработанная создателем Живого Журнала Брэдом Фитцпатриком несколько лет назад, постепенно начала входить в моду. Список сайтов, поддерживающих OpenID-вход, растет – есть и плагин для OpenID-комментариев в WordPress.

Если у тебя есть сайт, то вполне логичным будет использование его имени в качестве OpenID-логина.

Не надо мне теории, дайте код!

Что такое OpenID?

Даю слово Википедии:

OpenID — это свободная децентрализованная система единого входа, которая позволяет использовать один логин и пароль на большом количестве сайтов. На сайтах поддерживающих OpenID, пользователям не приходится регистрироваться и помнить данные для каждого сайта. Вместо этого им достаточно быть зарегистрированными на сайте «провайдера идентификации» OpenID (предоставляющего идентификатор).Так как технология OpenID децентрализованная, то любой сайт может использовать программное обеспечение OpenID в качестве средства входа; OpenID решает проблему не полагаясь на централизованный сайт для подтверждения подлинности пользователя.
(текст из Википедии: OpenID)

Принцип работы OpenID

  • С OpenID ты авторизуешься только один раз за сеанс работы – на сайте провайдера.
  • OpenID использует твое доменное имя как логин
  • Поэтому твой логин уникален и может быть использован только тобой (если увидите coldflame.in.ua – это я и никто другой)
  • Если сайт поддерживает OpenID, то где-то около ввода логина/пароля, должно быть поле OpenID, куда вводится OpenID-логин, то есть твое доменное имя:

    Форма OpenID-логина

  • Провайдеры бывают разные (у нас будет свой)

Преимущества OpenID

  • Возможность писать комментарии на многих блог-серверах (например, LiveJournal, Blogspot, WordPress), не регистрируясь там.
  • Если сайт/сообщество поддерживает OpenID, там всегда можно использовать свой нормальный логин – никто не может его занять. Здорово, правда?
  • Пока ты владеешь доменным именем – твой логин никто не отберет.
  • Когда-нибудь необходимость в регистрации на сайтах вообще отпадет.

Установка собственного провайдера OpenID

Мой OpenID

Ладно, хватит теории!Провайдеров OpenID много, но если у тебя есть PHP-хостинг, можно установить свой собственный – ни от кого не зависеть, Пригодятся базовые знания PHP, на уровне «поменять значение строковой константы».

Будем использовать библиотеку phpMyId. Хотя библиотека – это громко сказано. phpMyId – это однопользовательский провайдер OpenID, написанный на PHP. Устанавливается еще проще, чем хваленый WordPress.

Что тебе понадобится?

  • Дистрибутив phpMyId
  • PHP-хостинг
  • отключенный safe mode
  • Базы данных не нужны (на одного пользователя? зачем?)

Установка

  1. Распаковываем дистрибутив на сайт в отдельную папку, например, /openid
  2. Переименовываем MyId.config.php в index.php
  3. Открываем его. Наблюдаем два массива с конфигурацией. Нам строго необходимо указать
    • auth_username – твой логин (любой, не имеет значения)
    • auth_password – отдельным скриптом считаем хеш, например, так:
      <?php=md5('твой-логин-из-предыдущего-пункта:phpMyID:твой-пароль')?>

      получаем строку типа 37fa04faebe5249023ed1f6cc867329b, вот ее и вписываем в конфиг.

    • idp_url – это URL твоего провайдера – раскомментируй и впиши URL файла index.php, например, у меня – http://coldflame.in.ua/openid/index.php (вроде бы и не необходимая настройка, но без нее у меня не заработало)

    На это настройка провайдера закончена! Осталось привязать его к твоему доменному имени.

  4. Для этого редактируем index твоего домена (попросту, страницу, которая будет открываться при вводе твоего OpenID-логина в обозреватель)
  5. В <head> этой страницы добавляем две строчки. Важно – URL должен быть путем к файлу, т.е. заканчиваться на index.php, без этого у меня не заработало.
          <link rel="openid.server" href="URL твоего провайдера" />
          <link rel="openid.delegate" href="URL твоего провайдера" />
  6. Поздравляю, теперь можешь использовать свой домен как OpenID-логин!

Для желающих покопаться в настройках подробнее описано в README к библиотеке.

Проверяем

Проще всего проверить исправность своего OpenID OpenID Checkup – достаточно ввести туда свой логин (я ввожу http://coldflame.in.ua), и следовать инструкциям. Или оставь Open-ID комментарий на этот пост – пользователи ЖЖ могут сделать это без лишних хлопот. :)