2017-06-19 18 views
1

Google oAuth2 JWTトークン検証プロセスに関するドキュメントを探しています。私のユースケースでは、クライアントからJWTトークンを送信する予定であり、サーバーコードはJWTトークンの検証を担当しています。私のバックエンドは仕様に従ってoAuth2 JWTトークンの検証を担当しますので、ライブラリを使用する代わりにJWTトークンを検証するために必要な作業について正式なプロセスが必要です。oAuth2 JWTトークン検証プロセス

私はそれを行うために春のライブラリを使用していますが、証明書を取得し、検証のためにGoogle APIを呼び出す場合にそれらを使用する方法などの情報を探しています。

私がクライアントの場合、必要なのは単にclient_idとApiKeyだけです。しかしここで私は証明書を提供する必要があることも分かります。もし私が間違っていたら教えてください。

+0

私は主に、ローカルでキーストアファイルのプライベート証明書をインポートする方法を知りたいと考えています。 – Irfan

答えて

0

署名付きJWTを検証するには、そのヘッダー部分とプロパティalg(署名の作成に使用されるアルゴリズム)とkid(署名暗号化キーID)を確認する必要があります。 Google OAuth 2の検出JSONドキュメント https://accounts.google.com/.well-known/openid-configurationを読み込み、そのjwks_uriプロパティ(暗号化キーを使用したURL)を読んでください。そのURLのキー(JSONドキュメント)を読み、use="sig"(署名に使用)のキーを探し、algkidの値を一致させます。次に、JWT署名を復号化してJWTハッシュ値を取得し、計算したハッシュ値と比較することができます。

キーストアにキーをインポートする必要はありません。キーをキャッシュできますが、キャッシュに含まれていないkidの値が得られたら、JWKSドキュメントを再度読み取る必要があります。 Googleが時間の経過とともにいくつかのキーを削除する可能性もあります。

+0

ありがとうございました。これは役に立ちました。私はまた、このブログが非常に有益であることを発見したhttps://ncona.com/2015/02/consuming-a-google-id-token-from-a-server/ – Irfan

関連する問題