Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4-1 Електрона комерція / OAuth - безопасный протокол кросс-авторизации веб-сайтов_0.ppt
Скачиваний:
75
Добавлен:
02.02.2021
Размер:
1.25 Mб
Скачать

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 сервера

В децентрализованной среде классическая авторизация затруднена

Клиентом может выступать сервис- посредник

Пароли (и имена) пользователя на клиенте и сервере могут отличаться

Проблемы доверия

Пользователь должен уметь делегировать свои полномочия на одном сервисе другому сервису (например, сервер приложений должен получить доступ к серверу данных)

При этом, пользователь хочет контролировать объём делегируемых полномочий и не хочет сообщать серверу приложений свой пароль на сервере данных

Соседние файлы в папке 4-1 Електрона комерція