22 Марта 16:33
Чем больше времени человек проводит в сети, тем больше аккаунтов у него становится, тем больше паролей ему нужно помнить и тем больше времени приходится тратить на все это. Каждый пользователь, столкнувшись с этой проблемой, начинает оптимизировать свое пребывание в интернете: использовать RSS-агрегаторы или даже агрегаторы сервисов вроде FriendFeed. Создаются специальные инициативы например DataPortability.org, которые пытаются сделать это на основе открытых стандартов. В этом посте мы рассмотрим открытые протоколы авторизации.Многие пользователи интернета сталкивались с OpenID, а в свете «популярности» твиттера на слуху другой протокол — OAuth. Оба эти протокола позволяют авторизироваться «без пароля» на сторонних сайтах, которые их поддерживают. Но если присмотреться внимательнее, то становится заметно, что они совсем не конкуренты, как многие думают. В этом обзоре я постараюсь простым языком описать эти протоколы и расскажу как легко добавить OpenID к своей домашней странице.

OpenID
Концепция OpenID состоит в создании одного уникального идентификатора для пользователя, который можно было бы использовать во всем интернете. Согласитесь, регистрация на новом сайте часто утомляет, особенно когда приходится заполнять десяток полей с подтверждениями. А делать это для того чтобы оставить коммент в блоге, часто бывает совсем лень :)Как же можно получить OpenID?
Если вы регистрировались в Google, Яндекс, LiveJournal, diary.ru, Yahoo, то у вас уже есть OpenID! Вторым вариантом является регистрация на специальном сайте-провайдере, популярном английском или даже русском. А третий вариант — это установка собственного OpenID сервера.Есть ещё один, более простой способ добавить OpenID к своему сайту не поднимая собственный сервер — это делегация. Мы можем указать какой провайдер обслуживает ту или иную страницу. Для этого нам нужно добавить несколько строчек HTML кода, они отличаются от провайдера к провайдеру, но в общем виде это выглядит так:
<link rel="openid.server" href="http://myprovider.com/server" />
<link rel="openid.delegate" href="http://youraccount.myprovider.com/" />
<link rel="openid2.local_id" href="http://youraccount.myprovider.com" />
<link rel="openid2.provider" href="http://www.myprovider.com/server" />
<meta http-equiv="X-XRDS-Location" content="http://www.myprovider.com/xrds?username=youraccount.myprovider.com" />
в таком случае не нужно запоминать URL вашего OpenID провайдера, нужно помнить только адрес своего сайта :)Как им пользоваться?
Для начала, сайт на котором вы планируете авторизироваться должен поддерживать OpenID. Часто об этом сообщают небольшой иконкой
или, как придумали хорошие юзабилисты, текстом: «Логин в Google/Яндекс/LiveJournal...». В это поле нужно ввести URL который выдал вам ваш провайдер. Например Яндекс выдает http://openid.yandex.ru/%username%/, а Google — http://openid-provider.appspot.com/%username% и т.д.После заполнения формы и нажатия кнопки «отправить» вас переадресуют на страницу провайдера, где после авторизации расскажут какой сайт и какую информацию хотят получить и предложат варианты действий: разрешать всегда, разрешить единожды или отказать. Затем данные попадут на сайт который их запрашивал.

OAuth
Данный протокол позволяет третьей стороне получать доступ к вашим данным на другом сервисе без предоставления пароля от этого сервиса. Представьте себе ситуацию — вы зарегистрировались на сайте конференции и сайт предлагает добавить событие в ваш Google Calendar. C помощью OAuth это можно сделать не сообщая сайту конференции ваш пароль от Google аккаута. Причем OAuth позволяет выдать разрешение только на изменение календаря, а так же на единичное обращение или постоянный доступ, чтобы вы всегда были вкурсе предстоящих конференций.Как же можно получить OAuth?
OAuth должен поддерживать сервис, доступ к которому вы предоставляете. Самые известные сервисы: Google, Yahoo и Twitter. Сам протокол интересен авторам сервисов и всевозможных клиентов для этих сервисов. Но нам, как пользователям, интересно как же работает эта магия ;)
639 просмотров
3 комментария