RFC 9396 — Rich Authorization Requests — Versola Docs
VersolaVersola/docs
0.6.2versola.kzGitHub

RFC 9396 — Rich Authorization Requests

OAuth 2.0 Rich Authorization Requests (authorization_details)

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

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

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

Статус

  • Реализовано