OpenID Connect ID トークン (id_token) とアクセス トークン (access_token) の 2 つの JWT を受け取ります。OpenID の状況は多かれ少なかれ明確です。JWKS エンドポイントを使用して検証できます: https://smth.com/JWKS。
例のように ( https://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples ):
HttpsJwks httpsJkws = new HttpsJwks("https://smth.com/JWKS");
HttpsJwksVerificationKeyResolver httpsJwksKeyResolver = new HttpsJwksVerificationKeyResolver(httpsJkws);
jwtConsumer = new JwtConsumerBuilder()
.setVerificationKeyResolver(httpsJwksKeyResolver)
.setExpectedAudience(...)
.setExpectedIssuer(...)
.build();
問題は、アクセス トークンをどのように処理するかです。そこから userId と userDetails を抽出できますが、それを検証する必要もあると思いますか?
ID トークンと同じようにアクセス トークンを検証しようとすると、次のエラーが発生します。
UnresolvableKeyException: ヘッダー {"alg" : "RS256", "kid":"1"} を持つ JWS の適切な検証キーが見つかりません
実際、 のキーはありません"kid" : "1"
。また、この値"1"
はちょっと奇妙に思えますか?
私は何か完全に間違っていますか?