OAuth
OAuth — метод авторизации через третье лицо, который сделан видимо для централизованного контроля над людьми. При традиционной авторизации создаётся учётная запись на каждом сайте, при OAuth может использоваться удалённый аккаунт. Официально же предназначается для большей защиты, когда для входа применяется защищённая запись из проекта типа Google.
Описание[править]
Суть OAuth заключается в выдаче токенов доступа, которые клиент использует для обращения к защищённым ресурсам от имени пользователя. Это позволяет, например, приложению читать электронную почту пользователя в Gmail или публиковать посты в социальных сетях без знания пароля. Появилась система во времена, когда в API надо было прямо всирать логин и пароль, что в целом небезопасно.
OAuth 1.0 был опубликован в апреле 2010 года как RFC 5849. Протокол использовал криптографические подписи на основе HMAC-SHA1 для защиты запросов. Он был сложен в реализации и использовался на ограниченном количестве сайтов.
OAuth 2.0 выпущен в октябре 2012 года как RFC 6749. Его создали полностью с нуля, не используя первую версию в принципе. Тут появились токены-носители и стал де-факто стандартом, так как оказался крайне гибким.
На этом всё и закончилось. Вариант протокола 2.1 был предложен к разработке, но в нём просто нет нужды.
Смысл[править]
В OAuth определены четыре основные роли.
- Resource Owner — пользователь, владеющий защищёнными данными.
- Client — приложение, запрашивающее доступ к ресурсам от имени пользователя.
- Authorization Server — сервис, подтверждающий пользователя и выдающий токены доступа.
- Resource Server — API, хранящее защищённые данные и принимающее токены доступа.
За счёт этого для доступа в API не надо всирать пароль и логин в каждом запросе, достаточно только токена, который довольно быстро скурвляется и становится негодным, так что его перехват не несёт смысла.