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

Публичный клиент OAuth

Определение

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

Также ищут: Public OAuth client · встроенное приложение OAuth · браузерный клиент OAuth

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

Классификация клиента зависит от защиты учётных данных в месте исполнения. Одно название продукта не позволяет смешать публичную браузерную часть с защищённым сервером.

Связи из словаря

Карта понятия

Публичный клиент OAuth
Доказательная часть

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

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

    Граница применимости: Типы клиентов OAuth 2.0.

  2. PKCE защищает каждый обмен кода авторизации новым случайным значением, но не превращает встроенный общий секрет в защищённые учётные данные.

    Граница применимости: Защита выдачи по коду для публичного клиента.

  3. Если одинаковый секрет встроен во все распространяемые экземпляры приложения, его наличие не превращает их в конфиденциального клиента. PKCE использует новое значение для обмена, но не делает встроенный общий секрет недоступным владельцу устройства.

    Граница применимости: Редакторский пример публичного размещения клиента; защищённая серверная часть того же продукта может иметь другую классификацию.

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

    Граница применимости: Идентификатор клиента по RFC 6749, раздел 2.2; это свойство не означает анонимность всех последующих запросов.

  5. У одного продукта браузерная часть может быть публичным клиентом, а защищённая серверная часть — конфиденциальным. Классификацию проводят по месту исполнения и защите учётных данных, а не по названию продукта.

    Граница применимости: Редакторский пример распределённого приложения по типам RFC 6749. PKCE отдельно привязывает конкретный обмен к экземпляру клиента.

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

Не путать

Публичный клиент OAuth Конфиденциальный клиент OAuth

Публичный клиент не может надёжно защитить общие учётные данные, конфиденциальный может. Это не отменяет необходимость защиты конкретного обмена.

Публичный клиент OAuth PKCE

Тип клиента описывает защиту учётных данных, PKCE — привязку кода к исходному значению. Использование PKCE не меняет место исполнения клиента.

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

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

  1. Укажите место исполнения каждого компонента.
  2. Определите доступ владельца устройства к коду.
  3. Не считайте общий встроенный секрет защищённым.
  4. Отделите идентификатор клиента от аутентификации.
  5. Проверьте PKCE для обмена кода.
  6. Классифицируйте серверную часть отдельно.
  7. Не выводите тип клиента из названия продукта.
Открытые основания

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

  • Стандарт2
  • Первичная спецификация
    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

  • Первичная спецификация
    Proof Key for Code Exchange by OAuth Public Clients Internet Engineering Task Force · RFC 7636, September 2015 · проверено

    Определяет code verifier и derived code challenge для привязки authorization code к начавшему flow client instance.

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

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