连接到 Azure AD v2.0 端点我无法验证 jwt.io 和 jwt.ms 声明为有效的令牌
公共令牌没问题:
IDTokenValidator validator = new IDTokenValidator(issuer, clientId, JWSAlgorithm.RS256, jwkSetUrl);
IDTokenClaimsSet validatedClaimsSet;
try {
validatedClaimsSet = validator.validate(jwt, null);
} catch (BadJOSEException | JOSEException e) {
LOGGER.error(e.getMessage());
return;
}
但是验证来自机密客户端的令牌会引发异常
Signed JWT rejected: Another algorithm expected, or no matching key(s) found
使用以下代码
IDTokenValidator validator = new IDTokenValidator(issuer, clientId, JWSAlgorithm.RS256, new Secret(authMethod.getSecret()));
找不到匹配的键,因为 (JWKMatcher.java:1258)
- 密钥类型不匹配:OCT 而不是 RSA
- 使用为空
- 操作为空
似乎从 ImmutableSecret.java:47 中的秘密创建了一个不充分的 JWKSet,但我似乎对秘密如何包含在 Azure 的 jwks_uri 中找到的必要数据缺乏了解
任何意见,将不胜感激