Есть ли способ настроить Nimbus OID C на прием JWT без заявления iat? - PullRequest
0 голосов
/ 21 января 2020

Наша команда проверяет токен доступа 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 как необязательной? Или нам придется использовать модифицированную версию библиотеки, которая не требует этого заголовка?

...