シナリオ:OAuth 2.0の
- コントローラプロセスがトークン短命JWTのアクセスを取得し、リフレッシュトークンハンドルを使用して、クライアントの資格情報を付与します。
- コントローラは、1つまたは複数の隔離されたワーカーノードを生成し、そのノードにアクセスおよび更新トークンを渡します。
- 子ノードは、アクセストークンが期限切れになり、リフレッシュが発生する必要がある長期実行タスクを続行することがあります。
- 有効期限が切れるバックグラウンドスレッドでは、エージェントがトークンをリフレッシュし、アクセストークンが再生成されます。短期間のアクセス・トークンとリフレッシュ・ライフサイクルの必要性は、一時的なJWTクレーム(ウイリスのような時間推移の主張)を再生成することです。
- 子は親に対して応答を返すことがあります。親と子の両方は、他のメンバーを無効にすることなく、独立したセッション検証ライフサイクルを維持する必要があります。
前提条件: 各プロセスは、独立した状態のアトミック作業単位であると仮定します。アクセストークンはコントローラによって一度認証され、そのリフレッシュトークンと共にN + 1またはN * Nワーカーノードに渡されます。
任意のNプロセスは、リフレッシュトークンをそのアクセストークンにプロアクティブに再生成して、そのリフレッシュトークンに渡して、その存続期間を延長し、有効期限を防ぐことができます。
このプロセスは、HTTPS & SSLを介して信頼できる(プライベート)環境または信頼できない(パブリック)環境で実行される場合があります。
1つの認証サーバーと1つのAPIリソースサーバーがあります。
問題:エージェントはアクセストークンとリフレッシュトークンの両方の有効期間を検証して、セキュリティ攻撃ベクトルを公開したり、プール内の別のエージェントを無効にすることなく、子プロセスまたは親プロセスがそのセッションをリフレッシュできることをどのように確認しますか?