RFC 9396 — Rich Authorization Requests — Versola Docs
/docs
До 1.00.7.5versola.ioGitHub

RFC 9396 — Rich Authorization Requests

OAuth 2.0 Rich Authorization Requests (authorization_details)

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

Через Rich Authorization Requests (RAR) клиент указывает детализированные требования к авторизации в параметре authorization_details, не ограничиваясь простыми scopes.

Статус

Реализован. Отмечено пунктов: 10 из 10.

Authorization Request

  • Параметр authorization_details — JSON-массив деталей авторизации, проверяется на /authorize
  • Кастомные типы авторизации — регистрируются на уровне тенанта вместе с JSON Schema, которой должен соответствовать каждый объект
  • authorization_details через pushed authorization request — переносятся из /par в токен
  • Ошибка invalid_authorization_details — на незарегистрированный тип, нарушение схемы или неизвестный location

Структура Authorization Details

Каждый объект authorization detail содержит:

  • type — тип авторизации; должен соответствовать типу, зарегистрированному для тенанта
  • locations — целевые resource servers, разрешаются через реестр ресурсов так же, как параметр resource из RFC 8707
  • actions — разрешенные действия
  • Кастомные поля для каждого типа авторизации

Сам auth интерпретирует только type и locations. Все остальное, включая actions, проверяется по зарегистрированной JSON Schema типа и сохраняется дословно: сервер авторизации обязан вернуть выданные детали без изменений и сравнивать их с последующим запросом ровно в том виде, в каком они были выданы.

Token Request

  • authorization_details в refresh token grant
  • authorization_details в client credentials grant
  • Сужение прав по §6.1 — деталь, не покрытая исходным grant, отклоняется; порядок полей сам по себе не делает два одинаковых объекта разными

Token Response

  • authorization_details в token response — выданные авторизации в неизменном виде
  • Access token содержит выданные authorization details

Метаданные сервера

  • authorization_details_types_supported — обновляется при регистрации и удалении типов

Сценарии использования

Rich Authorization Requests дают:

  • Авторизация платежей с указанием сумм и получателей
  • Доступ к документам с конкретными правами (read/write/delete)
  • Детализированный API доступ за пределами простых scopes

Куда смотреть

Справочник OpenAPI содержит спецификации authorize, token и introspect, которые передают authorization_details.