|
|
|
||||||||||||||||||||||
|
||||||||||||||||||||||||
<< назад к списку статей
WebMoney OpenID: входим Кипером на сторонние сайты© Никита Сенченко ![]() Есть у WebMoney такой домен - wmkeeper.com. Там расположен сервис под названием WebMoney OpenID. На странице размещен короткий текст: WebMoney OpenID позволяет вам авторизоваться с использованием технологии OpenID, используя свой WebMoney Keeper. Что же это за OpenID такой? Если вы ещё не в курсе, то данная статья поможет вам разобраться. Часто бывает так, что на каком-нибудь сайте, куда вы случайно попали и где хотите сделать что-нибудь малозначительное и сиюминутное (например, скачать песню, прокомментировать статью или запись в блоге и т.д.), - вас заставляют для этого зарегистрироваться. Процедура регистрации - это всегда утомительно. К тому же, все логины и пароли нужно где-то хранить или как-то помнить. Особенно это раздражает в тех случаях, когда вы точно знаете, что аккаунт на данном сайте вам больше никогда не понадобится. OpenID как раз и решает эту проблему - позволяет входить на сайты по единому логину, не заводя учётные записи на каждом новом веб-ресурсе. OpenID придумал Бред Фицпатрик, один из основателей LiveJournal. Сначала система задумывалась как единый способ авторизации в блогах и форумах, но позже технологию подхватили другие сайты, и сегодня её используют даже интернет-магазины и платные сервисы. Как это работает? В системе принимают участие два типа сайтов: OpenID-провайдеры (далее для простоты "Провайдеры") и OpenID-потребители (далее для простоты "Потребители"). Провайдер держит у себя учетную запись пользователя, а Потребитель запрашивает у Провайдера сведения о пользователе, чтобы авторизовать его на своём сайте. Таким образом, пользователю достаточно иметь логин в одном сервисе, чтобы входить им на сторонние сайты. Юзер должен сначала пройти регистрацию у Провайдера и получить OpenID - URL вида vasya.provider.ru. Таким образом, по OpenID видно, кто Провайдер (provider.ru) и какой логин имеет пользователь у этого Провайдера (vasya). Каждый OpenID уникален, другого такого нет в интернете, так как provider.ru - уникальный URL, а vasya - уникальный аккаунт в рамках этого провайдера. Регистрацию нужно пройти всего один раз, хотя ничто не мешает иметь регистрации у нескольких Провайдеров одновременно. Вот здесь перечислены самые известные OpenID-провайдеры. Среди них Google, Yahoo, LiveJournal, VeriSign и другие. Теперь, когда OpenID у пользователя есть, он может авторизоваться им на сайте Потребителя. Для этого он указывает там, что хочет войти по OpenID, вводит его (vasya.provider.ru для нашего примера) - и Потребитель перенаправляет юзера на сайт Провайдера. Там юзер проходит авторизацию традиционным способом, который принят у этого Провайдера (по паролю, по сертификату и т.д.), после чего Провайдер подтверждает Потребителю валилность логина и одновременно отправляет пользователя обратно на сайт Потребителя. Попав туда, юзер уже авторизован и находится внутри своего личного кабинета (аккаунта), несмотря на то, что никакой регистрации у самого Потребителя он не проходил. Продемонстрируем на конкретном примере. Пусть, я хочу оставить комментарий к событию на livents.ru. Для этого мне нужно там зарегистрироваться, но я вижу, что сайт поддерживает авторизацию по OpenID, т.е. может выступить Потребителем. Между тем, у меня есть аккаунт в LiveJournal - niksen.livejournal.com (можете туда не ходить - мой блог всё равно пустой :-) Одновременно это и мой OpenID, так как LiveJournal является OpenID-провайдером. Так вот, на livents.ru я выбираю, что хочу войти по OpenID, ввожу в поле niksen.livejournal.com:
Меня отправляют на LiveJournal, где я вхожу в свой аккаунт, как это принято у Живого Журнала - по логину и паролю:
Меня просят подтвердить, что я действительно не против того, чтобы сторонний сайт http://livents.ru узнал мой OpenID и проверил его. Я не возражаю, жму на кнопку "Да, всегда":
Я отправляюсь обратно на livents.ru, где могу теперь добавлять рецензии под своим OpenID niksen.livejournal.com:
Иногда Потребителю требуется расширенная информация о пользователе (имя, email и т.д.). В этом случае Потребитель может запросить её у Провайдера, а тот спрашивает у пользователя разрешения передать такую информацию Потребителю. Таким образом, полная схема выглядит так:
Итак, OpenID - система децентрализованная. У неё нет единого сервера или центра (в отличие от Microsoft Passport или TypeKey), а есть множество OpenID-провайдеров и множество OpenID-потребителей. Поэтому система всегда будет работать. Понятное дело, технология OpenID не обеспечивает высокого доверия между сторонами. Она позволяет лишь убедиться, что некому юзеру действительно принадлежит его OpenID-идентификатор vasya.provider.ru, иными словами, что его URL vasya.provider.ru действительно ему подконтролен. Но авторизация лежит целиком на совести Провайдера (не говоря уже о том, что если у вас есть свой сайт, то вы можете легко стать сами для себя OpenID-провайдером, скачав и настроив готовые скрипты на PHP и других языках буквально за полчаса). И если юзер хочет обмануть Потребителя, либо если Провайдер халатно относится к авторизации юзеров на своей стороне, то Потребитель будет-таки обманут и получит о пользователе недостоверные данные. Поэтому, как правило, Потребители дают очень ограниченные права для того пользователя, который авторизовался по OpenID (скажем, на livents.ru из нашего примера под OpenID можно оставлять рецензии к событиям, но нельзя добавлять новые события), либо используют OpenID-авторизацию лишь для того, чтобы помочь юзеру быстро заполнить поля регистрационной формы на сайте самого Потребителя, получив необходимые данные о юзере от его Провайдера. Тем не менее, OpenID удобен. Уже сейчас есть огромное количество Потребителей, которые используют эту технологию. Больше всего их среди западных сайтов. В рунете их значительно меньше, но они тоже есть: softkey.ru, webplanet.ru, bobrdobr.ru, afisha.ru и др. Кроме того, авторизация по OpenID встроена в ряд популярных форумов и CMS: Drupal, WordPress, phpBB. Однако, вернёмся к WebMoney. Как вы уже поняли, WMT является OpenID-провайдером. Каждый пользователь при регистрации в системе автоматически получает свой OpenID вида {WMID}.wmkeeper.com. Продемонстрируем, как это работает. Авторизуемся, например, на сайте news2.ru с помощью вебманевского OpenID. Указываем его в форме входа:
Примечание. Кстати, быстро скопировать свой WebMoney OpenID в буфер обмена пользователи Keeper Classic могут следующим образом: правый клик на муравье возле часов -> Копировать в буфер -> OpenID ![]() Нас перебрасывают на wmkeeper.com, а оттуда без промедлений - на WebMoney Login для прохождения авторизации. Конечно, WebMoney авторизует нас традиционным способом - с помощью Кипера или ENUMа:
Очутившись снова на wmkeeper.com, мы указываем, какие сведения о себе мы разрешаем передать Потребителю, то бишь сайту news2.ru (тот почему-то захотел их узнать). Сведения берутся из аттестата:
Нажав на кнопку, мы возвращаемся на news2.ru уже авторизованными:
Итак, OpenID от WebMoney - это возможность входить на сторонние сайты с помощью своего Кипера, без необходимости регистрироваться на этих сайтах и запоминать\сохранять множество логинов и паролей. Но почему в качестве OpenID-провайдера мы рекомендуем именно WebMoney? Ведь Провайдеров масса... На то есть 3 причины. И говоря об этих причинах, прийдется снова вспоминать о недостатках технологии OpenID в целом. Во-первых, OpenID таит ещё одну неприятнось: юзер полностью зависит от своего Провайдера. Если Провайдер "прикажет долго жить", то юзер потеряет свой OpenID - а заодно и аккаунты на всех сайтах, на которых он с этим OpenID регистрировался. Поэтому нужно выбирать только надежных Провайдеров. Таких, как WebMoney :-) Во-вторых, часто для авторизации у Потребителя требуется передать ему дополнительную информацию о себе, такую как email, имя или дата рождения. Не каждый OpenID-провайдер обладает такой информацией о своем пользователе. А у WebMoney она всегда имеется благодаря вашему аттестату (достаточно даже аттестата псевдонима). Чтобы понять третью причину, нужно сказать, что при использовании OpenID злоупотребление возможно не только со стороны Провайдера, но и со стороны Потребителя. Если вам не повезёт, однажды вы попадёте на сайт, созданный для того, чтобы похищать OpenID. Внешне он будет вполне адекватным и красочным, но отправит вас авторизовываться по OpenID не на страницу вашего OpenID-провайдера, а на "подставную" страницу, очень на неё похожую. Вы не заметите обмана (вы ведь не всегда смотрите на адресную строку, верно?) и, будучи уверенным, что вводите логин и пароль на сайте Провайдера, сами отдадите их в руки злоумышленнику. Это называется фишингом. В случае же с WebMoney OpenID от вас требуется особая авторизация Кипером Classic (подписывание пакета данных ключом), Keeper Light (предоставление информации из сертификата) или вообще мобильным телефоном с помощью enum.ru. "Зафишить" такую информацию можно, но она ничего полезного хакеру не даст: получить доступ к вашему Киперу он не сможет. А ещё WebMoney OpenID поддерживает делегирование. Это такая интересная функция, которая позволит ассоциировать ваш собственный сайт (если, конечно, он у вас есть) с адресом {ваш WMID}.wmkeeper.com. Тогда при OpenID-авторизации можно указать вместо {WMID}.wmkeeper.com URL вашего "хомяка". Для этого на титульной странице сайта между тегами <HEAD> и </HEAD> нужно вставить такие строчки: Вот, к примеру, я вошел через WebMoney OpenID в Живой Журнал, указав при этом адрес своего сайта owebmoney.ru:
Красиво, согласитесь. 24.12.2009 Внимание! Все права на данный материал принадлежат сайту owebmoney.ru. Копирование материала разрешено с обязательным указанием гиперссылки на http://owebmoney.ru. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||