🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

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

January 25, 2008, revised May 5, 2010 in Devops
Не надо мне теории, дайте код!

Что такое OpenID?

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

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

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

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

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

Мой OpenID

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

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

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

Установка

  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 комментарий на этот пост – пользователи ЖЖ могут сделать это без лишних хлопот. :)

Buy me a coffee Понравился пост? Купи мне кофе