Токен доступа несёт разрешение, aud ограничивает предполагаемого получателя. Попадание в этот набор не отменяет остальные условия токена.
Получатель токена
Определение
Получатель токена — идентификатор стороны или ресурсного сервера, для которого токен предназначен и который вправе его обрабатывать.
Также ищут: Token audience · поле aud · аудитория токена
Зачем это знать
Приём токена зависит от ожидаемого получателя, а не только от известной подписи. Проверка aud также не отменяет срок и другие ограничения профиля.
Карта понятия
Что подтверждено
Поле aud в JWT обозначает предполагаемых получателей, и обработчик должен отвергнуть токен, если не находит среди них себя.
Граница применимости: Поле получателя по RFC 7519.
Ресурсный сервер обязан проверить, что поле aud токена доступа JWT содержит ожидаемый идентификатор этого сервера.
Граница применимости: Проверка токена доступа JWT по RFC 9068.
Один издатель может выпускать токены для нескольких API. Если в получателях токена отсутствует текущий ресурсный сервер, известный издатель и правильная подпись не делают токен подходящим этому API.
Граница применимости: Редакторское применение поля aud из RFC 7519 и профиля токена доступа JWT RFC 9068; ожидаемый идентификатор сервера задаётся конфигурацией.
В JWT aud может быть одной строкой для одного получателя или массивом строк для нескольких. Обработчик, который должен проверять это поле, ищет свой ожидаемый идентификатор среди получателей, а не сравнивает весь массив с одной строкой.
Граница применимости: Представление aud по RFC 7519, раздел 4.1.3; приём нескольких получателей дополнительно ограничивается применимым профилем.
В закрытом примере JWT предназначен этому API, но его срок действия уже истёк за пределами допустимого расхождения часов. Правильный aud не позволяет принять такой токен по профилю RFC 9068.
Граница применимости: Редакторское разделение обязательных проверок; значение допустимого расхождения часов задаётся проверяющей стороной отдельно.
Не путать
Получатель ID Token включает клиент OIDC; получатель токена доступа указывает API. Одновременно выданные токены могут иметь разные aud.
Что проверить
- Укажите ожидаемый идентификатор API.
- Прочитайте aud применимого профиля.
- Обработайте допустимую строку или массив.
- Сверьте точного получателя.
- Проверьте издателя независимо.
- Сохраните проверки срока и полномочий.
- Не принимайте токен соседнего API по общей подписи.
Первоисточники
- JSON Web Token
Определяет compact JWT format и registered claims issuer, subject, audience, expiration, not-before, issued-at и JWT ID.
- JSON Web Token Profile for OAuth 2.0 Access Tokens
Профилирует JWT access token: at+jwt type, required iss/exp/aud и resource-server validation, отличая его от ID Token.
- OpenID Connect Core 1.0 incorporating errata set 2
Определяет identity layer поверх OAuth 2.0, openid scope, ID Token и правила его validation.