我们的团队正在验证组织内部安全组织授予的API访问令牌,但我们对此没有监督。
访问令牌以JWT的形式出现,并用x.509证书签名。我们正在使用com.nimbusds/oauth2-oidc-sdk
来验证令牌。
下面描述的rsaKey
变量是this example中构造的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。
根据the OpenID Connect spec,IAT声明 可用于拒绝过去发行的令牌过多。这与其他标头不同,其他标头必须根据规范存在。
因此,有没有一种方法可以配置此库以将iat
视为可选库?还是我们必须使用不需要此标头的库的修改版本?