RFC 7662 — Интроспекция токенов — Versola Docs
/docs
До 1.00.7.5versola.ioGitHub

RFC 7662 — Интроспекция токенов

Endpoint интроспекции токенов OAuth 2.0 — запрос, аутентификация и поля ответа.

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

Через интроспекцию resource server спрашивает authorization server о состоянии и метаданных access или refresh token.

Статус

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

Endpoint

  • Endpoint POST /introspect (раздел 2)
  • Тело запроса application/x-www-form-urlencoded

Типы токенов

  • Интроспекция access token (JWT)
  • Интроспекция refresh token (opaque)
  • Тип токена определяется по формату
  • token_type_hint принимается и игнорируется, что RFC допускает

Аутентификация клиента

  • Аутентификация клиента обязательна (раздел 2.1); отказ дает 401 invalid_client
  • client_secret_basic и client_secret_post
  • private_key_jwt (RFC 7523)
  • tls_client_auth и self_signed_tls_client_auth (RFC 8705)
  • Вызов, в котором предъявлен только client_id, отклоняется: идентификатор публичного клиента — не секрет

Авторизация вызывающей стороны

  • Вызывающий может проводить интроспекцию access token, только если его audience включает ресурс, доступный вызывающему; иначе ответ — {"active": false}
  • Refresh token, выданный другому клиенту, отклоняется с invalid_client

Поля ответа (раздел 2.2)

  • active
  • scope — scope через пробел
  • client_id
  • token_type — DPoP для токена с привязкой DPoP, иначе Bearer
  • exp и iat
  • sub, aud и iss
  • jti — для access token
  • cnf — подтверждение токена целиком: jkt для токена с привязкой DPoP и x5t#S256 для токена с привязкой к сертификату (RFC 9449, RFC 8705)
  • authorization_details, если токен их несет (RFC 9396)
  • username — никогда не возвращается
  • nbf — возвращается только для токена, который его несет; выпускаемые токены его не несут

Заголовки и состояния ответа

  • Cache-Control: no-store и Pragma: no-cache в ответах
  • {"active": false} для просроченных, некорректных, неизвестных или чужих токенов
  • active: false для отозванного access token — auth его не сообщает; отозванный access token проходит интроспекцию как активный до истечения (см. RFC 7009)

Примечания

  • Проверка отзыва access token живет в edge, который отклоняет отозванный токен до истечения.

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

Справочник OpenAPI содержит спецификацию интроспекции.