Приложения и доступ к API

OAuth 2.0

Определение

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

Также ищут: OAuth · протокол делегирования доступа · модель авторизации OAuth

Зачем это знать

Разделение ролей помогает назначить проверки правильной стороне. Список старых способов выдачи не заменяет выбранный профиль безопасности, а успешный вызов с токеном не подтверждает вход конкретного человека.

Доказательная часть

Что подтверждено

  1. OAuth 2.0 позволяет клиенту получить ограниченный доступ к ресурсу HTTP от имени владельца ресурса либо от собственного имени.

    Граница применимости: Модель делегирования доступа OAuth 2.0.

  2. OAuth определяет делегирование доступа, но не сообщает стандартным способом, как был проверен пользователь; этот слой добавляет OpenID Connect.

    Граница применимости: Граница между авторизацией OAuth и проверкой личности в OpenID Connect.

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

    Граница применимости: Четыре роли RFC 6749, раздел 1.1. Роль протокола не отождествляется с отдельной физической машиной или обязательным человеком.

  4. Наличие способа выдачи в исходном RFC 6749 не делает его рекомендуемым для нового решения. RFC 9700 отдельно запрещает выдачу по паролю владельца ресурса; список исторических способов и выбранная политика безопасности проверяются раздельно.

    Граница применимости: Сопоставление RFC 6749 с RFC 9700, раздел 2.4. Запрет относится к передаче пароля владельца ресурса клиенту для этого способа выдачи.

  5. Служба может получить токен от собственного имени без делегирования конкретного пользователя. Поэтому один успешный вызов API с токеном OAuth не сообщает стандартный результат проверки личности человека.

    Граница применимости: Редакторское применение различия OAuth и OIDC к машинному клиенту; наличие пользователя или его идентификатора в произвольном токене не предполагается.

Граница терминов

Не путать

OAuth 2.0 OpenID Connect

OAuth делегирует доступ к ресурсу, OIDC стандартизирует результат проверки пользователя. Получение токена доступа не заменяет проверенный ID Token для клиента.

OAuth 2.0 Клиент OAuth

OAuth задаёт взаимодействие участников, клиент — одна из его ролей. Приложение может просить доступ от имени владельца или от своего имени.

Перед спецификацией

Что проверить

  1. Определите владельца ресурса.
  2. Укажите клиентское приложение.
  3. Найдите сервер авторизации.
  4. Укажите ресурсный сервер API.
  5. Выберите способ выдачи и применимый профиль RFC.
  6. Разделите служебный доступ и вход пользователя.
  7. Не выводите личность человека из одного токена доступа.
Открытые основания

Первоисточники

  • Стандарт3
  • Первичная спецификация
    The OAuth 2.0 Authorization Framework Internet Engineering Task Force · RFC 6749, October 2012 · проверено

    Определяет роли OAuth, authorization grants, access и refresh tokens, client types и основные grant flows.

    Утверждения: 01 · 02 · 03 · 04 · 05

  • Первичная спецификация
    OpenID Connect Core 1.0 incorporating errata set 2 OpenID Foundation · OpenID Connect Core 1.0, Final · проверено

    Определяет identity layer поверх OAuth 2.0, openid scope, ID Token и правила его validation.

    Утверждения: 02 · 05

  • Первичная спецификация
    Best Current Practice for OAuth 2.0 Security Internet Engineering Task Force · RFC 9700, January 2025 · проверено

    Актуализирует OAuth security: exact redirect matching, PKCE, sender-constrained tokens и безопасный refresh-token lifecycle.

    Утверждения: 04

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие