2016-06-30 15 views
1

Googleでログインしているウェブサイトを開発しています。ユーザーがサインインしたら、Google js apiからIDトークンを取得し、サーバーに送信して確認します。Google OAuth JWT Verification locally

私はGoogleトークン情報エンドポイントで簡単にプロセスを確認して実行できますが、ユーザーがGoogleにログインするたびにHTTPSリクエストをGoogleに送信するため、多くのHTTPSリクエストが発生します。

そのため、JWT(IDトークン)をサーバーでローカルに検証していますが、問題なくJWTを正常に認証しました。私が直面している問題は、プログラムの中にGoogleの公開JWKsをキャッシュしなければならないということです。

私は、対応するJWT "子供"の正しいJWKを見つけることができないたびに、JWKを更新することを考えています。対応する「子供」が見つからないJWKが見つかるたびに、GoogleにHTTPSリクエストを送信します。

これは脆弱性ですか? Googleの公開JWKを更新する必要がある静的な期間はありますか?

誰かがこれを手伝ってくれますか?私は

おかげ

答えて

1

TLSに公開鍵を持っていることのポイントは、エンドポイントは、あなたがそれらを高速で回転させることができるということです保護され何も悪いことをやっている場合は、右方向に私を指します。 Googleはそれを行います。以前にキャッシュされていなかったkidでトークンが来るたびに、新しいキーを取得する必要があります。 GoogleがJWKエンドポイントで提示するTLSサーバー証明書を確認したことを確認しても脆弱性はありません。おそらく、Googleが使用する静的なローテーション間隔がありますが、これを使用しようとするとダウンロード数が増加するだけです(「ジャストインタイム」に加算されます)、Googleは任意に間隔を変更する可能性があります。

+0

したがって、Apache HTTPクライアントを使用してエンドポイントへの通常のHTTPS要求で妥当性を確認する必要がありますか? –