Мы — программисты — любим новые фенечки. OpenID — такая фенечка, и я уже видел в паре мест (совсем забыл где, правда) людей, выражающих желание сделать сервер из своего блога, форума или просто написать сервер как таковой.
До тех пор, пока вы хотите это сделать для себя — желаю удачи! Но если вы хотите сделать сервис публичным, не спешите. Я хочу изложить по крайней мере три причины, по которым этого делать не нужно...
- Куда еще-то!
-
OpenID-серверов полно. Я бы сказал, что их даже слишком много. Первый же вопрос, который я получил, когда прислал первому же человеку ссылку на эту страницу: "И что тут выбирать?" Это тот самый плохой вариант выбора, когда у человека нет ни малейшей зацепки, на основании которой этот выбор делать.
- OpenID — не сервис
-
Сам по себе OpenID-сервер вообще-то не ценен. Предполагается, что этот URL представлят собой некое "личное представительство" человека в сети. Поэтому если все, что на этой странице написано — "Это OpenID-страница Васи", то она слегка бесполезная и скучная. OpenID удобно делать из своего блога, из своего портфолио, из профиля на форуме, на котором человек проводит 32 часа в сутки или социальной сети, где человек — известный персонаж. Тогда на нее будет интересно пойти и узнать что-то о человеке.
- Спамеры не спят
-
OpenID — еще один способ идентифицировать участника сети. Причем более удобный для верификации, чем тот же EMail. А это тут же означает, что спамеры в состоянии генерить себе "виртуальных личностей" с той скоростью, с которой хотят. Это означает, что если вы не сможете эффективно отсекать регистрации спамеров на своем раскрученном OpenID-мегасервере, то скорее всего он очень быстро станет известен как спамерское гнездо и нормальные клиенты его забанят.
Другими словами, создание публичного OpenID-сервера это много работы и большая ответственность. Подумайте, надо ли оно лично вам.
Зато вот включение или написание OpenID-клиента для вашего форума или блога — задача одновременно и интересная, и куда более нужная. Потому что сейчас у человека может быть уже с десяток OpenID, но почти нет мест, где бы он мог с ними, эт-та... залогиниться, типа... Так что дерзайте лучше в эту сторону :-). Успехов!
Комментарии: 12
Раз уж речь зашла об OpenID как о технологии, Maxim Derkachev очень хорошо написал о её уязвимостях на своём блоге.
Раз уж речь зашла о форумах, стоит упомянуть готовящуюся к выходу реализацию для phpBB.
Иван. Как я понимаю тут речь идет именно о публичных серверах OpenID. А скажем не проще ли когда человек использует свой личный OpenID сервер для своей единственной (или не единственной) учетной записи?
А вот скажем вопрос возник у меня - на мой взгляд существует проблема сети, когда ваши учетные записи находятся в руках других людей. И вот OpenId, на мой взгляд, вполне способен эту проблему еще усилить.
Информационная составляющая такого способа аутентификации несомненно полезна, но ваша зависимость от провайдера услуг увеличивается. Например если я буду использовать учетку на moikrug.ru везде (предполагается, что OpenId поработит мир : ) ), то финансовые проблемы самого сервиса (к примеру вспыхнет эпидемия озабоченности приваси, сервис станет убыточен и яндекс его закроет), злая воля сотрудника (или просто весьма несвоевременная вспышка непрофессионализма), все это может привести к потере мной власти над моей виртуальной "личностью". В смысле не к потере шестизнака, например, и даже не к потере аккаунта на любимом форуме - это потеря буквально всего обжитого интернета. А я быть может даже и расстроюсь, и даже помяну словом недобрым создателей OpenId.
И возникает мысль - быть может каждому держать свой OpenId сервер? Это решит проблему возможности потери личности - личность пребудет с вами, пока за вами ваше dns имя, остается только вовремя его оплачивать. Но, собственно, это все таки деньги, а интернетчики таки привыкли к халяве.
А может вместо этого стоит повернуться лицом к pgp например? Просто как вариант, когда человек представляет сам себя, и сам себя идентифицирует при помощи пары ключей.
Очень и очень не хочется зависеть от доброй воли корпораций.
Ну во-первых, для этого в OpenId придумали делегирование. В качестве OpenId-URL'а можно использовать свою страницу, а провайдера, технически обслуживающего авторизацию, можно менять.
Однако если посмотреть шире, то OpenId не добавляет тут никакой проблемы. Сейчас пользователь уже завязывает свою информацию на волю других людей: провайдер доступа, провайдер веб-сервера, провайдер email'а. OpenId — это просто технически более удобный способ авторизации, но с точки зрения приватности и безопасности он ничего не меняет.
Если ваши учетные данные буквально ко всем сайтам зависят от чего то, то это не может не влиять.
Что то озаботила меня проблема электронной личности, и openid, даже и с делегированием, идет все по тому же пути - есть некий центр, который может определить вашу личность. То же что и в kerberos, и с сертификатами. Вид сбоку, если честно.
Никто не может вам гарантировать сохранность вашего доменного имени и уж, тем более, вашей странички. Все это находится не в ваших руках. Такая централизация вашей информации в дикой среде (ну и пусть много центров, все одно они вам неподвластны до конца) это зло.
Все более сколняюсь к мысли, что только электронный токен, который будет выдавать публичную часть (которую будет в свою очередь сохранять сервер), а потом расшифровывать информацию от сервера и тем самым подтверждать личность, является наиболее правильным вариантом.
Надеюсь, кому-нибудь будут полезны мои путевые заметки по ходу изучения openid
Общие фразы про то, что такое openid
Минитест пяти провайдеров и consumer-ов openid
По мере изучения темы публикции будут продолжаться.
Решил наконец-то поднять у себя персональный OpenID сервер (ну да, я параноик, не хочу чтобы кто-то ещё собирал информацию на каких сайтах я бываю). Причём хотелось чтобы он был написан на Perl. Поискал в сети - нету! Более того, невероятно, но на CPAN только два модуля для OpenID, один жутко раздутый и явно недописанный, а второй вроде бы неплохой (Net::OpenID::Server Фитцпатрика), но документации и примеров для него практически нет. :(
В общем, за 6 часов написал свой сервер: OpenIDsrv. Может пригодится другим параноикам или в качестве дополнения к документации на Net::OpenID::Server.
Чем его нормально тестировать я так и не нашёл. Просто авторизацию можно проверять через OpenID Checkup, но SRE так не проверишь. Для проверки SRE пришлось завести блог на первой попавшейся под руку площадке (blogger.com) и постить туда комменты.
Насколько я понял, единого или даже просто предпочтительного способа привязать имя/ник к OpenID нет. Используются и SRE, и hCard. В общем, пришлось и hCard себе прописывать, но чтобы найти способ протестировать правильно ли я его прописал пришлось как следует поискать сервис hCard Extract.
P.S. Это мой первый комментарий через OpenID здесь, поля Имя/EMail/Веб-сайт не заполняю, посмотрим что получится. :)
Сработало, судя по всему :-)
Я тоже себе свой сервер на этом сайте написал. Видимо даже соберусь оформить и выложить. А по поводу привязки информации, я думаю, что останутся оба способа. SRE проще, hCard более расширяемый.
вот простенькая реализация на php http://siege.org/projects/phpMyID/phpMyID-0.8.zip =)
зачитался вчера Ваши статьи по этой теме,спасибо.
В конце концов нашел,этот сервер ,и прикрутил к моей будущей страничке.
Идея великолепная.
Но думаю что открытых серверов нужно создавать по больше.
А для ДЛЕ есть что-нибудь?
Дмитрий, если Вы о сервере, то вышеуказанный phpMyID работает независимо от CMS, нужно будет просто подправить шаблон, указав в теги link. Если речь об авторизации по OpenID, то ничего достойного лично я не видел (не так давно сталкивался с такой же проблемой).
Amir Mirkus, в роли сервера на PHP довольно неплох SimpleID.