OpenID

Якщо ви активний користувач інтернету, то у вас має бути сила-силенна профілів на різних сайтах. Для входу на сайт потрібно знати пару логін/пароль.

Логін зазвичай використовується однаковий (звісно, якщо він не зайнятий), а пароль вже після 5-го разу набридає придумувати і користувачі починають використовувати один і той же пароль на усіх сайтах.

Продвинуті користувачі використовують 2-3 версії паролів для різніх рівнів безпеки — наприклад:

  • чати/форуми/блоґи (~90%) — найпростійший пароль
  • е-пошта/інтернет-пейджери (~7%) — трохи складніший
  • онлайн-банк/електронні гроші/інші важливі сервіси (~3%) — найскладніший

Виникає питання — а чи не має такої технології, що дозволяє на усіх сайтах використовувати один логін/пароль?

Така технологія є, і називається вона OpenID.

Суть її ось в чому — ви реєструєтесь на одному сайті, який є OpenID-провайдером, і використовуєте цей логін на усіх сайтах, що підтримують вхід на сайт за допомогою OpenID.

Де ж знайти OpenID-провайдера?
Виявляється нічого шукати не треба, скоріше за все у вас вже є OpenID, якщо ви зареєстровані на одному з цих сайтів:

Якщо у вас є блоґ на livejournal.com то ваш OpenID буде ім’я.livejournal.com
Ви можете використовувати його для входу на будь-який сайт, де побачите ось таку іконку: OpenID icon
Наприклад, спробуйте авторизуватися на УкрБаші (де я тиждень тому додав підтримку цієї технології ) і для вас автоматично створиться та авторизується користувач ім’я.livejournal.com (при традиційній реєстрації потрібно вводити логін/пароль і активувати профіль через лінк, що приходить на вашу е-пошту).
Також підтримку OpenID має мій блоґ та блоґ УкрБашу (для коментування дописів).

Але автоматична реєстрація на сайті це ще не все. Ви можете входити на сайт, використовуючи свій OpenID. При цьому, якщо ви обрали постійну авторизацію на сайті OpenID-провайдера, то вводити пароль не потрібно і вхід відбудеться автоматично (крім 1-го разу).
На УкрБаші можна до вже існуючого користувача додати OpenID і використовувати його для входу.

Створений користувач буде мати ім’я та адресу сайту, що використовується як OpenID.
Але чи можна використовувати власний сайт як OpenID?
Виявляється можна — мій OpenID це mrgall.com

Щоб використовувати власний домен як OpenID потрібно:

1. Обрати OpenID-провайдера. Ви можете використовувати ваш існуючий профіль (наприклад на LiveJournal, Яндексі чи Yahoo) або зареєструватися на спеціальному OpenID-провайдері (наприклад myopenid.com).

Я зареєструвався на myopenid.com і мій OpenID це mrgall.myopenid.com.

2. Дізнатися код, що потрібно додати на ваш сайт. Для цього потрібно зайти на вашу сторінку на сайті OpenID-провайдера і у вихідних кодах сайту знайти такі рядки:

<link rel="openid.server" href="http://адреса.серверу" />
<link rel="openid.delegate" href="http://ваш.OpenID" />
<link rel="openid2.provider" href="http://адреса.серверу" />
<link rel="openid2.local_id" href="http://ваш.OpenID" />
<meta http-equiv="X-XRDS-Location" content="http://адреса.сторінки.на.сервері" />

Це записи для OpenID версій 1 і 2, якщо ваш OpenID-провайдер підтримує OpenID лише 1ї версії то рядки 3й та 4й будуть відсутні. 5й рядок теж може бути відсутній.
Якщо ви не знайшли 2й та 4й рядки то не біда, ви можете зробити їх самостійно, підставивши адресу вашої сторінки на сайті OpenID-провайдера.

Якщо ви вирішили використовувати livejournal.com то ваш код буде таким:

<link rel="openid.server" href="http://www.livejournal.com/openid/server.bml" />
<link rel="openid.delegate" href="http://ім’я.livejournal.com" />
<meta http-equiv="X-XRDS-Location" content="http://ім’я.livejournal.com/data/yadis" />

Мій код:

<link rel="openid.server" href="http://www.myopenid.com/server" />
<link rel="openid.delegate" href="http://mrgall.myopenid.com" />
<link rel="openid2.provider" href="http://www.myopenid.com/server" />
<link rel="openid2.local_id" href="http://mrgall.myopenid.com" />
<meta http-equiv="X-XRDS-Location" content="http://mrgall.myopenid.com/xrds" />

3. Додати цей код на ваш сайт. Це потрібно зробити між <head> та </head>.
Приклад ви можете побачити в мене на головній сторінці.

Після цих 3х кроків ви зможете використовувати ваш домен як OpenID

Вдалого користування

Для веб-майстерів, що хочуть додати OpenID на свій сайт:
PHP OpenID Library
Интеграция OpenID в ваш сайт
WP-OpenID

  • А чому openID google не написали ?

  • yAnTar, є http://www.blogger.com/ та http://openid-provider.appspot.com/ але нажаль повноцінної підтримки Google цієї технології (як наприклад в Yahoo або Яндекса) ще немає…

  • ткни мене носом де саме ныкнейм вказується пліз…
    А то посилання на певну адресу, це звичайно круто, але не дуже читайобельно 8)

  • Нік-нейм вказується на стороні OpenID-сервера (поле sreg.nickname).
    Якщо сервер не передає це поле то як нік використовується повна адреса.
    OpenID Simple Registration Extension

  • дякую за допомогу…
    буду копатись 8)))

  • kobi

    Привіт. Я от зареєстрував свій OpenID, вказав все, як треба в коді своєї сторінки, логуюсь на UkrBash, залишаю коментарі на Blogpost та багатьох інших сайтах, використовуючи УРЛ сторінки як OpenId, але в ЖЖ, при спробі залишити коментар під OpenID ніком видає помилку: No claimed id: no_identity_server: The provided URL doesn’t declare its OpenID identity server. Можливо, ви з таким зустрічались, порадите щось?

  • kobi,
    ви б вказали ваш OpenID — так буде простіше щось порадити.

  • kobi

    Туплю, ось:

    http://kobi-yobi.myopenid.com/ – OpenID на сайті провайдера
    http://kobi.org.ua/ – сторінка, УРЛ якої я хотів би застосовувати як OpenID, в.т.ч і для коментування ЖЖ

  • kobi,
    чесно кажучи не знаю, в тебе на сторінці наче все правильно, можливо то глюки myopenid.com чи ЖЖ

  • Спасибо. Не знал про rel=”openid2.provider” и имел с этим проблемы соответственно… Теперь же должно работать в ЖЖ?

  • Шкода що немає на всіх сайтах)

  • Щось з жж воно не працює

  • Олег,
    що саме не працює?

  • Pingback: OpenID - spam дира? Плюси і мінуси технології. | Окремий погляд на Інформаційні Технології | 2009-01-08 | openid | 472 | uk()