Наша команда проверяет токен доступа API, предоставленный организацией безопасности внутри организации, но над которым у нас нет контроля.
Маркер доступа поставляется в виде JWT, подписанного знаком x. 509 сертификат. Мы используем com.nimbusds/oauth2-oidc-sdk
для проверки токена.
Переменная rsaKey
, описанная ниже, представляет собой com.nimbusds.jose.jwk.RSAKey
, построенную как в , этот пример .
public IDTokenClaimsSet validate(String completeJwt) throws Exception {
IDTokenValidator validator = new IDTokenValidator(
new Issuer("Issuer"), new ClientID("OurClientId"), JWSAlgorithm.RS256, new JWKSet(rsaKey));
JWT idToken = JWTParser.parse(completeJwt);
return validator.validate(idToken, null);
}
Возвращенный токен не имеет заголовка iat
в полезной нагрузке. Это заставляет IDTokenValidator
бросить BadJWTException
. IDTokenClaimsSet
также требует наличия этого заголовка для синтаксического анализа JWT.
Согласно спецификация OpenID Connect c, заявка IAT может используется для отклонения токенов, выпущенных слишком далеко в прошлом. Это отличается от других заголовков, которые должны присутствовать согласно спецификации c.
Итак, есть ли способ настроить эту библиотеку для обработки iat
как необязательной? Или нам придется использовать модифицированную версию библиотеки, которая не требует этого заголовка?