VersolaVersola/docs
versola.kzGitHub

RFC 6749

OAuth 2.0 Authorization Framework

Спецификация: RFC 6749

OAuth 2.0 — индустриальный стандарт протокола авторизации. Позволяет приложениям получать ограниченный доступ к учётным записям пользователей на HTTP-сервисах.

Grant Types

  • Authorization Code Grant (с обязательным PKCE согласно OAuth 2.1)
  • Client Credentials Grant
  • Refresh Token Grant
  • Device Authorization Grant (RFC 8628) — пока не реализовано

Удалены по дизайну (намеренно не поддерживаются согласно OAuth 2.1):

  • Implicit Grant — удалён в OAuth 2.1
  • Resource Owner Password Credentials Grant — удалён в OAuth 2.1

PKCE (Proof Key for Code Exchange)

  • code_challenge обязателен для каждого authorization запроса
  • code_verifier обязателен для каждого обмена токенами
  • Поддерживается метод S256
  • Поддерживается метод plain (не рекомендуется, разрешено спецификацией)

Refresh Tokens

  • Ротация refresh-токенов — новый токен выдаётся при каждом использовании
  • Старый refresh-токен немедленно инвалидируется
  • Полная отмена сессии при повторном использовании токена (обнаружение replay-атак)

Использование Bearer Token

  • Access-токены принимаются только через заголовок Authorization: Bearer
  • Передача токенов в URL query-параметрах отклоняется
  • Короткоживущие access-токены (настраиваемый TTL)

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

  • client_secret_basic — заголовок Authorization: Basic
  • client_secret_post — credentials в теле запроса
  • private_key_jwt — пока не реализовано
  • client_secret_jwt — пока не реализовано

Endpoints

  • POST /authorize — Authorization endpoint
  • POST /token — Token endpoint
  • POST /revoke — Token Revocation (RFC 7009)
  • POST /introspect — Token Introspection (RFC 7662)
  • GET /.well-known/oauth-authorization-server — Server Metadata (RFC 8414) — пока не реализовано

Связанные спецификации