私のチームは、クライアントのモバイル アプリの B2C ログインの実装または構成に取り組んでいます。ユーザーがアプリに 1 回ログインでき、トークンが MSAL にキャッシュされるポイントまで構成をセットアップしました。次回以降、ユーザーは自分の資格情報を入力せずに直接ログインできます。ここで説明されているパターンに従っています
コードは最初に を使用してトークンを取得しようとしAcquireTokenSilent
、トークンが MSAL キャッシュに存在しない場合は、 を使用して取得しAcquireTokenInteractive
ます。
IDとアクセストークンがどのように更新され、MS docs here about tokensで見つかるかを理解しようとしていました。
更新トークンは、OAuth 2.0 フローで新しい ID トークンとアクセス トークンを取得するために使用されます。それらは、ユーザーとの対話を必要とせずに、ユーザーに代わってリソースへの長期アクセスをアプリケーションに提供します...
これは、リフレッシュ トークンを引き換えて新しい ID とアクセス トークンを取得すると、以前のリフレッシュ トークンを置き換える新しいリフレッシュ トークンも取得することにも言及しています。
ログアウトしてから 1 時間以上経ってから再度モバイル アプリにログインしようとしましたが、それでもログインできました。クレームを調べたところ、ID とアクセス トークンの有効期限は次の 1 時間のログインに更新されていました。
ここでの私の質問は次のとおりです。
- ID トークンとアクセス トークンのデフォルトの有効期限は 1 時間なので、1 時間以上ログアウトしていたにもかかわらず、トークンが更新され、ユーザー資格情報を入力せずにログインできたのはなぜですか。
- これは、リフレッシュ トークンが有効期限に近づくと ID トークンとアクセス トークンを自動的にリフレッシュするためである場合、このプロセスはリフレッシュ トークン自体の有効期限が切れるまで続きます。
- MS のドキュメントでは、有効期限が切れた後に ID トークンとアクセス トークンが再生成されると、新しい更新トークンも取得されると述べています。この場合、新しいトークンには常に新しい有効期限があるため、リフレッシュ トークンが期限切れになることはありません。
- ID トークンとアクセス トークンをいつ更新するかを制御できるように、更新トークンを制御する方法はありますか。
何か見落としがあれば申し訳ありませんが、リフレッシュ トークンがどのように機能するかについて少し混乱しており、トークンをリフレッシュするタイミングとそうでないタイミングを制御する方法はありますか。
前もって感謝します。