- •OAuth - безопасный протокол кросс-авторизации веб-сайтов
- •Веб-сервисы - 1 этап
- •Веб-сервисы - 2 этап
- •URL – как способ передачи параметров
- •Веб-сервисы - 3 этап
- •Современная ситуация
- •Чем OAuth отличается от OpenID?
- •Аутентификация
- •Авторизация
- •Проблемы доверия
- •OAuth
- •Терминология-1
- •Терминология-2
- •Терминология
- •Наглядный пример
- •Jane имеет пароль на Faji
- •Jane имеет пароль на Beppa, Beppa имеет токен от Faji
- •Клиент в фоне получает от сервера временный токен
- •Браузер Jane направляют на Faji, добавив в параметры временный токен
- •На основе данных токена Jane информируют, кому и какие права она временно передаёт
- •Jane с её временным токеном возвращают на Beppa
- •Beppa в фоне обращается к Faji и, если
- •Страница Jane обновляется, на ней отображаются доступные для печати снимки
- •Криптография
- •Другие проблемы с безопасностью
- •Заключение
- •Основные сведения о маркерах OAuth
- •Этапы процесса аутентификации
- •Настройка аутентификации OAuth
- •Использование OAuth
- •Параметр
- •Предусмотрены три способа задания этих параметров.
- •В примере запрашивается маркер, необходимый для доступа к аккаунтам Календаря и Picasa пользователя.
- •Об ответе
- •Шаг 2. Авторизация маркера запроса
- •Об ответе
- •Шаг 3. Обмен маркера запроса на маркер доступа
- •Параметр Описание
- •Пример запроса
- •Подписание запросов, использующих аутентификацию OAuth
- •Схема процесса
- •На этом рисунке показаны следующие шаги.
- •Ссылки
OAuth - безопасный протокол кросс-авторизации веб-сайтов
Протокол OAuth предоставляет стандартный способ доступа к защищенным данным на различных веб-сайтах. Методы AuthSub и ClientLogin разработаны специально для Google, а протокол OAuth является открытым и может применяться на других веб-сайтах. Так же как AuthSub, аутентификация OAuth полезна, если создается веб-приложение, позволяющее пользователям связывать видео, комментарии, рейтинги, контакты и другую информацию со своими аккаунтами YouTube. OAuth может стать особенно привлекательным, если ваше приложение интегрируется с другими API помимо API YouTube и эти API поддерживают протокол OAuth.
Веб-сервисы - 1 этап
•Доступ к документам (возможно , создаваемым динамически)
HTTP, HTML
Веб-сервисы - 2 этап
•HTML+JS – стандарт для разработки пользовательского интерфейса
•HTTP – способ вызова удалённых процедур
HTTP, HTML,
JavaScript
URL – как способ передачи параметров
http://parallel.uran.ru/news/2011/08/?user=u&p=1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сервис |
Позиционные |
|
|||
|
|
параметры |
|
|
|
|
|
Именованные |
|||
|
Имя |
|
|
||
|
процедуры |
параметры |
SESSION
Переменнные
состояния
COOKIE
Веб-сервисы - 3 этап
•XML, JSON – формализация форматов данных
•SOAP, OpenID, OAuth – протоколы для распределённых приложений
HTTP, XML
Современная ситуация
Редирект
Аутентификация |
Авторизация |
|
OpenID |
||
OAuth |
||
|
Сервер аутенификации |
Сервер приложений |
Сервер данных |
|
www.auth.com |
|||
www.company.com |
www.data.com |
||
|
Чем OAuth отличается от OpenID?
OAuth часто называют «протоколом для роботов», в отличие от OpenID - «протокола для пользователей». Не путайте их!
OpenID — протокол для ускоренной регистрации. OpenID позволяет пользователю без ввода пароля получить аккаунт на каком-либо сервисе, если он уже зарегистрирован где- то еще в интернете. (И потом можно без ввода пароля входить на сервис, будучи авторизованным "где-то".) Например, если у вас есть аккаунт на Яндексе, вы сможете "входить" с его помощью на любой сервис, поддерживающий OpenID-авторизацию.
OAuth — протокол для авторизованного доступа к стороннему API. OAuth позволяет скрипту Consumer-а получить ограниченный API-доступ к данным стороннего Service Provider-а, если User дает добро. Т.е. это средство для доступа к API.
Милицейская аналогия
Представьте, что вы — сотрудник Уголовного розыска, ищущий концы в деле о краже WebMoney за 1973-й год. Договоримся о терминах:
OAuth Consumer: Уголовный розыск.
User: сотрудник Уголовного розыска.
Service Provider: Картотека архива преступлений.
1.OpenID: сотрудник Уголовного розыска (User) приходит в Картотеку (Service Provider), предъявляет на входе ксиву (Authorization) и на месте перебирает карточки в поисках информации.
2.OAuth: сотрудник Уголовного розыска (User) прямо с работы (Consumer) звонит в Картотеку (Service Provider). Он докладывает свою фамилию; если его узнают (Authorization), он просит предоставить список всех преступлений за 1973-й год (API call).
Как видите, OpenID и OAuth — разные вещи. OpenID позволяет вам прямо на месте получить доступ к некоторым ресурсам. OAuth обеспечивает получение части информации с удаленного сервиса через API.
Аутентификация
•Целью аутентификации является присвоение пользователю некоего уникального имени
•Классическая схема – запрос данных в локальной базе или каталоге AD
•Современная схема – протокол OpenID, позволяющий пользователю на любом сервисе использовать имя (URI), зарегистрированное на любом другом сервисе
Авторизация
•Целью авторизации является ограничение доступа к API сервера
•В децентрализованной среде классическая авторизация затруднена
•Клиентом может выступать сервис- посредник
•Пароли (и имена) пользователя на клиенте и сервере могут отличаться
Проблемы доверия
•Пользователь должен уметь делегировать свои полномочия на одном сервисе другому сервису (например, сервер приложений должен получить доступ к серверу данных)
•При этом, пользователь хочет контролировать объём делегируемых полномочий и не хочет сообщать серверу приложений свой пароль на сервере данных