axiger (axiger) wrote,
axiger
axiger

PHP: Как прикрутить OpenID сервер

В словаре веб-программистов есть специфическое слово "прикрутить". Когда нужно найти инфу по незнакомой теме, такой, например, как "OpenID", первое что делает программист - лезет в гугль. Обычный программист набирает что-то вроде "OpenID specification". Наш программист не хочет читать спецификации, он хочет сразу, быстро, и желательно по-русски. Поэтому его запрос примерно такой: "PHP OpenID прикрутить". Для того, чтобы облегчить жизнь такому программисту я и написал этот абзац.

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


http://ru.wikipedia.org/wiki/OpenID - на русском
http://openid.net/specs/openid-authentication-2_0.html - спецификация



Традиционно обращаемся к блогам за критикой спецификаций и дополнительной информацией:



Этот человек внес струю свежего воздуха в мой воспаленный мозг :) Нашел много полезного, например: http://david-m.livejournal.com/760821.html - это реализованный OpenID-consumer, т.е. сервис, проверяющий идентификацию - им удобно отлаживать свой OpenID сервер.
ЖЖ Давида Мзареуляна (записи с тегом OpenId)

Запись в блоге МакСима, которая будет интересна пользователям мастерхоста (я один из них), у которых PHP скомпилирован без поддержки CURL.
http://mak-sim.ru/2007/02/28/95

Сценарий раскрытия пароля при использовании OpenId от mderk
http://www.ragbag.ru/2007/01/21/openid_phishing/

Иван Сагалаев, хоть пишет и не на PHP - зато разумно и по делу. Затрагиваются и смежные области. Много хороших идей, которые так хочется спиздить нуждаются в разработке.
http://softwaremaniacs.org/blog/2007/03/25/cicero-openid-hcard/
http://softwaremaniacs.org/blog/2007/03/28/openid-mutants/



Теперь, когда мы знаем все, что нам нужно про OpenID, можно приступать к поиску готовых решений, которые можно использовать в своих проектах. На текущий момент я нашел несколько, буду признателен, если кто-нибудь дополнит.


http://www.openidenabled.com/
PHP OpenID Library - (не только PHP). Выглядит монструозно, на мастерхосте не заработала, потому что не смогла найти XML-парсер (привет админам Мастерхоста - всерьез думаю о том, чтобы менять хостинг).

http://www.phpclasses.org/browse/package/3290.html
Simple OpenID PHP Class - спасибо, Дима Смирнов. У меня не заработал, потому что на мастерхосте PHP скомпилирован без CURL. (ненавижу!)

http://siege.org/projects/phpMyID/
Этот проект, состоящий всего из двух небольших файлов - заработал сразу. И действительно, многое встает на свои места при просмотре его кода. Он использует Basic HTTP-авторизацию, что в коде выглядит очень компактно (но если хотите можно легко заменить на привычную веб-авторизацию). Он не требует базы данных, поддержки XML или чего-нибудь подобного. Пожалуй, можно рекомендовать.


Для тех кто дочитал до конца - маленький мультик про OpenID. Если вы хотите поблагодарить меня за проделанную работу - уделите немного своего внимания рекламе на сайте http://gehirn.ru. Спокойной ночи и удачи!



Tags: php
Comments for this post were disabled by the author