Есть ли способ настроить Nimbus OIDC для приема JWT без претензий iat?
Наша команда проверяет токен доступа к 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, требование IAT может использоваться для отклонения токенов, выпущенных слишком далеко в прошлом. Это контрастирует с другими заголовками, которые должны присутствовать в соответствии со спецификацией.
Итак, есть ли способ настроить эту библиотеку для лечения iat
как необязательный? Или нам придется использовать модифицированную версию библиотеки, для которой не нужен этот заголовок?