- •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
•Для решения проблемы распределённой авторизации в 2007-2010 годах был разработан протокол OAuth (RFC 5849)
•Протокол рассчитан на широкий класс программ – десктопные программы, браузеры, мобильные приложения
•Типичный пример – сервер адресных книг синхронизирующий контакты в телефоне, на GoogleMail, на mail.ru и т.д.
•Логика работы OAuth не привязана к HTTP, но в RFC описана только такая реализация
Терминология-1
• В процессе авторизации OAuth участвуют три (и более) стороны:
Пользователь – владелец ресурса; Сервер – поставщик услуги; Клиент – потребитель услуги
• Например: Фотохостинг – сервер;
Сервис печати фотографий – клиент; Владелец учётной записи на фотохостинге – пользователь
Терминология-2
•В процессе авторизации OAuth стороны представляются временными именами – токенами, достоверность которых подтверждается соответствующими секретами.
•Используются три вида токенов и соответствующих секретов:
Токен клиента – выдаётся при регистрации клиента на сервере (идентифицирует клиента, не даёт никаких прав);
Токен запроса – временный токен, который используется для идентификации сеанса пользователя при запросе доступа;
Токен доступа – подтверждает текущие права клиента на доступ к API сервера
•Как правило, токены и секреты – длинные случайные уникальные строки
Терминология
Consumer: потребитель; скрипт обработки формы импорта контактов в социальной сети.
Service Provider: поставщик данных; GMail, содержащий в себе данные адресной книги, интересные для Consumer-а.
User: пользователь, имеющий аккаунт как у Consumer-а, так и у Service Provider-а.
Protected Resource: личные данные; контакты из адресной книги на GMail (т.е. ресурсы Service Provider-а).
Provider API: API GMail, позволяющий любому скрипту получить контакты из адресной книги GMail.
Задача OAuth — сделать так, чтобы User имел возможность работать на сервисе Consumer (в соцсети) с защищенными данными Service Provider-а (GMail), вводя пароль к этим данным исключительно на Service Provider-e и оставаясь при этом на сайте Consumer-а. Не так уж и сложно, верно?
Наглядный пример
•Пример из руководства по OAuth c сайта http://hueniverse.com
•В примере участвуют :
Jane – девушка, вернувшаяся из турпоездки Faji – сервис хранения туристических фотографий
Beppa – сервис фотопечати
•Предполагается, что Beppa для интеграции Faji получила от последнего токен и секрет клиента
Jane имеет пароль на Faji
Jane имеет пароль на Beppa, Beppa имеет токен от Faji
Клиент в фоне получает от сервера временный токен
Браузер Jane направляют на Faji, добавив в параметры временный токен
