Спецификация: 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 8707actions— разрешенные действия- Кастомные поля для каждого типа авторизации
Сам 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.