Популярно об OpenID

Если коротко, то OpenID — это ваша цифровая подпись, которую можно использовать вместо логина и пароля на всех сайтах, поддерживающих эту систему. Если у вас есть аккаунт на LiveJournal или DeadJournal или любом другом сайте, который может выступать в качестве OpenID сервера, значит эта подпись у вас уже есть. Можете попробовать оставить комментарий к посту с ее помощью. Для этого, если вы пользователь LiveJournal или DeadJournal, выберите внизу этой страницы соответствующий пункт в меню и введите ваш ник, а если пользователь какого-нибудь другого сервиса, то выберите пункт Other OpenID и введите адрес вашего аккаунта. Должно получиться, если нет, дайте мне знать. На самом деле, для использования OpenID этой информации достаточно.
А теперь, когда почти все уже ушли, оставшимся бездельникам и прочим любопытствующим предлагаю вольный перевод описания системы с официального сайта.


Что это такое?

Это децентрализованая система идентификации. Такая, которая не развалится полностью, если какая-нибудь компания начнет себя плохо вести или просто выйдет из бизнеса.

OpenID идентификатор это просто URL. Вы можете иметь несколько идентификаторов, точно также как у вас может быть несколько URL. Все что делает OpenID это предоставляет способ доказать, что вы действительно являетесь владельцем данного URL (идентификатора). И делает это, не передавая никому вашего пароля, вашего email и всего того, что бы вы не хотели передавать. Вообще нет никакого обмена пользовательскими данными, ваши данные это только ваш URL-идентификатор, но получатели вашего идентификатора смогут затем узнать о вас больше из общедоступных документов, которые связанны с этим URL (FOAF, RSS, Atom, vCard и т.д.)

Любой сайт может использовать OpenID для аутентификации и любой сайт может быть OpenID сервером, и они взаимодействуют друг с другом, не заставляя никого проходить дополнительную регистрацию или читать “вступительные слова”. Владелец URL может выбирать какой OpenID сервер использовать.

Ничего в протоколе не требует использования JavaScript или современных браузеров, а схема аутентификации отлично работает в “AJAX” системах, и значит вы можете подтвердить ваш идентификатор не перескакивая со страницы на страницу.

Зачем?

  • Множество остальных распределенных систем идентификации на самом деле таковыми не являются. Частично они все-равно кем-то контролируются.
  • Вводить логин и пароль на дюжине сайтов в день это убого.
  • Сайты, которые заставляют вас вводить ваши имена, пароли, явки, email, а затем показывают их без вашего разрешения это убого.
  • У вас должна быть возможность иметь один (или несколько) идентификаторов, которые будут действительны независимо от того, какие сервисы все еще работают.

Как это работает?

Вот общая картина (если хотите подробно, читайте спецификацию на официальном сайте):

  • Вы ведете блог на каком-нибудь сайте, например LiveJournal (хотя это может быть любой другой), и обычно вы там авторизованы.
  • Вы собираетесь оставить комментарий на someblog.com (может это Movable Type, или Wordpress, или DeadJournal), но у вас нет там аккаунта и значит вы не сможете оставить авторизованный комментарий. Но если их система поддерживает OpenID, то вы увидите что-нибудь вроде этого (надеюсь, что это будет выглядеть получше):
    Login with your blog URL:
    For example: happygirl.bloghost.com
  • Вы набираете “brad.livejournal.com”, нажимаете login, и someblog.com сервер, не покидая страницы и не теряя комментарий, который вы набрали, делает следующее:
    • Он идет на ваш блог и находит там OpenID сервер. Вы можете вообще не знать, что такое OpenID, всю работу сделает программное обеспечение вашего блога.
    • Someblog.com сервер возвращается в ваш браузер и сообщает ему какой OpenID сервер он нашел.
  • Затем ваш браузер связывается с сервером идентификатора и происходит одно из двух…
    1. Если вы никогда раньше не сообщали вашему родному блогу (в данном случае LiveJournal), что вы разрешаете этому someblog.com идентифицировать вас, ваш домашний блог говорит это (не открывая ваших данных) и интерфейс меняется на что-нибудь вроде: (сайту, который хочет подтвердить OpenID оставляется возможность полностью сформировать интерфейс)

      Login with your blog URL:
      Внимание: вы должны быть авторизованы на LiveJournal и/или пометить этот сайт как надежный для аутентификации. Ваш домашний блог, LiveJournal, говорит, что вы можете сделать это здесь [открывает новое окно], после чего вы сможете продолжить.
    2. Если вы уже сказали вашему домашнему блогу, что доверяете этому сайту, то все взаимодействие просходит за сценой и вы, возможно, увидите:
      Hello, Brad! You’re now logged in to someblog.com as Brad from LiveJournal.
  • Вы заканчиваете ваш комментарий, отправляете его и someblog.com проверяет ваш идентификатор, уже вас не беспокоя. Если someblog.com играет по правилам, никто не сможет подделать вашу подпись. Разумеется, любой сайт может лгать, но что прикольного в том, что тысяча человек будет говорить, что они Билл Гейтс и писать от его имени в системах, которые позволяют это? Уважающие себя сайты (где вы, конечно, и обитаете) будут играть по правилам.

Почему не что-нибудь другое?

  • Microsoft Passport — централизованный реестр. Не все доверяют Microsoft контролировать свой идентификатор.
  • TypeKey — централизованный реестр. Не все доверяют SixApart контролировать свой идентификатор (хотя есть шанс, что будущие версии TypeKey будут OpenID серверами).
  • SAML — Мы используем часть этой системы, хотя полная спецификация нам не подходит. Одно из требований OpenID состоит в том, чтобы была AJAX версия, а это означает, что мы сильно ограничены в способах отправки данных от клиента к серверу (JavaScript или фреймы). Также SAML требует для работы SSL — безопасное соединение, что создаёт дополнительные трудности, потому что мы ограничены способами доступа к SAML серверу. Поэтому в случае, когда клиент не может использовать SSL, приходится, по-крайней мере, использовать обертку на JavaScript.
  • LID — Предполагает, что URL-идентификатор связан с динамическим документом, который может обрабатывать причудливые параметры, переданные ему через URL. В реальности это не всегда так, что, на самом деле, является подсказкой для адаптации. Также совмещает слишком много функциональности (аутентификация и обмен пользовательскими данными) в одной спецификации, что в свою очередь повышает число зависимостей для сайта, решившего поддерживать LID (XPath и т.п.). Я уверен, что обмен данными должен быть отдельной компонентой, надстройкой над аутентификацией, не связанной с ней (разработчики LID сейчас работают над тем, чтобы расцепить эти компоненты). Возможно, в будущем мы будем использовать LID как один из рекомендованных нами механизмов для обмена пользовательскими данными, но спецификация в целом была бы слишком тяжелой.

Что насчет доверия?

Система не предназначена для обеспечения доверия. Доверие требует в первую очередь доказательства подлинности.

А как же спам?

И снова, эта система не предназначена для обеспечения доверия. Некто может запустить свой собственный сервер, который будет говорить, что он spamer.example.com/000001 (и так далее до spamer.example.com/999999). Система не ставит себе целью запретить такие вещи. Это задача другого уровня, говорить, что идентификаторы с URL spamer.example.com/* спамеры, или что некоторый ID сервер спамер, или что некоторые идентификаторы спамеры.

Все что мы можем запретить — это использование кем-нибудь кроме спамера этого URL-идентификатора. И хотя кто-то другой может запустить свой сервер, который будет говорить, что он spamer.example.com/0000001/ URL, во-первых, непонятно зачем ему это нужно, во-вторых он не сможет изменить <link rel=…> тег, чтобы тот указывал на его бандитский ID сервер.

О подписывании коментариев

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

В конце концов, в наше время любой может сделать страничку, на которой будет утверждать, что кто-то что-то сказал. Ну и что, вы будете верить этому только потому, что прочитали?

Есть, однако, несколько довольно очевидных плюсов во включении в схему подписывание комментариев, и, похоже, следующая версия спецификации будет поддерживать это, давая возможность ID серверу вернуть ссылку/идентификатор комментарию так, чтобы его читатель мог потом перейти по ссылке и посмотреть оригинал.

Кто этим владеет?

OpenID никому не должен принадлежать. Никто не планирует зарабатывать на этом деньги. Я собираюсь выпускать компоненты системы под максимально свободными лицензиями. Таким образом за их использование не нужно будет платить. Система должна приносить пользу всему сообществу, если таковое вообще существует, а мы являемся его частью. Если похожая система уже есть, и я о ней не знаю, скажите мне об этом. Я не планирую изобретать велосипед, просто хочу сделать нечто, что каждый сможет легко использовать. Update: Cпасибо за помощь! Мы нашли по-крайней мере еще двух человек, занимающимися похожими проектами. Один из них сделал систему почти идентичную нашей (mIDm) и имеет похожую цель: сделать нечто, что будет просто работать, независимо от создателей. Таким образом он нам очень поможет.

Bookmark on del.icio.us

72 Comments

Pages: [5] 4 3 2 1 » (Show All)

Comment by korgh@livejournal

+1

Posted on 2007-01-09 at 12.38 am

 

Comment by korgh@livejournal

Замечательно

Posted on 2007-01-09 at 12.33 am

 

Comment by http://dorber.myopenid.com/

Подозрительная какая-то штука…

Posted on 2006-12-28 at 7.44 pm

 

Comment by http://dorber.myopenid.com/

Читал спецификацию на английском, тут читал. Но не понял отдает ли сервер openId данные о пользователе сайту, на который тот пришел? Иначе нет смысла во всем в этом…

Posted on 2006-12-28 at 7.17 pm

Comment by Snaky

Неа, не отдает.

Posted on 2006-12-28 at 7.47 pm

 
 

Comment by http://neveragainblog.com.ua

тестирование

Posted on 2006-12-27 at 4.28 pm

 

Comment by akahard@livejournal

:) boo

Posted on 2006-12-26 at 7.02 pm

 

Comment by flashpleer007@livejournal

работает ексель-моксель!

Posted on 2006-12-24 at 4.07 pm

 

Comment by flashpleer007@livejournal

реально пашет

Posted on 2006-12-24 at 4.07 pm

 

Comment by vovvka@livejournal

test

Posted on 2006-12-21 at 7.45 pm

 

Comment by theklark@livejournal

Хорошая статья

Posted on 2006-12-18 at 5.40 pm

 

RSS feed for comments on this post. TrackBack URI

Sorry, the comment form is closed at this time.