Перейти к основному содержимому
рисунок фиолетового шестиугольника

Что такое токены OAuth?

Токены OAuth предоставляют пользователю доступ к ресурсам. Другими словами, они не служат для аутентификации пользователей, а используются поставщиком услуг для авторизации доступа к другим ресурсам от имени пользователя.

Транзакция OAuth происходит, когда пользователь запрашивает разрешение у другого ресурса, используя его идентификатор поставщика услуг. Ресурс запрашивает у поставщика услуг разрешение, которое предоставляется в виде токена запроса и секретного ключа. Далее ресурс перенаправляет пользователя к поставщику услуг для аутентификации запроса. На этом этапе ресурс обменивает токен запроса на токен доступа и секретный ключ. Если два токена имеют один и тот же секретный ключ, процесс OAuth завершен, и пользователь успешно делегировал поставщику услуг доступ к ресурсу.

Процесс OAuth

Шаг 1

Запрос доступа

Анна отправляет на YouTube (ресурс) запрос на размещение видео непосредственно в ленте Twitter (поставщик услуг). Затем YouTube запрашивает у Twitter разрешение на доступ.

рисунок женщины, сидящей за столом

Шаг 2

Обмен токена запроса и секретного ключа

Twitter предоставляет YouTube токен запроса и секретный ключ.

рисунок ключа и веб-браузеров

Шаг 3

Аутентификация

YouTube перенаправляет Анну для входа в систему Twitter. Анна предоставляет Twitter свои учетные данные и подтверждает, что запрос от YouTube был инициирован пользователем.

Рисунок человека, пользующегося ноутбуком

Шаг 4

Обмен токенами доступа

После того как пользователь проверит подлинность запроса, сервис YouTube обратится к сервису Twitter для обмена токена запроса и секретного ключа на токен доступа. Если секретные ключи, связанные с токенами, совпадают, Twitter предоставит YouTube токен доступа и откроет доступ к YouTube.

рисунок ключа и веб-браузеров

Шаг 5

Доступ предоставлен

Теперь Анна может безопасно использовать YouTube для размещения видео непосредственно в своей ленте Twitter.

рисунок женщины, сидящей за столом

Приведенный выше пример иллюстрирует общий процесс OAuth. Протокол OAuth также обеспечивает более детальный контроль и управление разрешениями, в том числе право пользователя отзывать токены по желанию и определение разных уровней доступа к поставщикам услуг для разных ресурсов.

OAuth 1.0 и OAuth 2.0

В 2012 году был представлен протокол OAuth 2.0 в качестве существенно переработанного протокола OAuth 1.0. Изменения, внесенные в эту версию OAuth, были насколько значительными, что версии 2.0 и 1.0 оказались несовместимыми. Протокол OAuth 2.0 был разработан для устранения уязвимости в процедуре авторизации OAuth, связанной с фиксацией сеанса.

Хотя эта проблема решена в OAuth 2.0, в новой версии преднамеренно не определяется и не поддерживается шифрование, подпись, проверка клиента или привязка канала, а вместо этого требуется, чтобы специалисты по внедрению использовали для этой цели другой протокол безопасности, например HTTPS/TLS.

Ниже приводятся различия между OAuth 1.0 и 2.0.

Таблица сравнения OAuth 1.0 и OAuth 2.0

OAuth и SAML: в чем разница?

SAML — это вариант языка XML, который описывает концепцию, позволяющую одному устройству выполнять как аутентификацию, так и авторизацию от имени одного или нескольких устройств.

С появлением простых форматов кодирования данных, таких как JSON, протокол OAuth стал использоваться и для мобильных устройств. Хотя Oauth — относительно новый протокол, возникший в результате необходимости замены SAML, оба протокола крайне важны для безопасного единого входа (SSO).

Другими словами, OAuth не является альтернативой SAML, поскольку оба протокола могут дополнять друг друга. Например, в среде единого входа протокол SAML может отвечать за аутентификацию (аутентификацию пользователя и предоставление ему доступа), а OAuth — за авторизацию (предоставление доступа к определенным защищенным ресурсам).