Спецификация: 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 содержит спецификацию интроспекции.