1
最近、サーバー間の呼び出しの一環としてユーザーのリソースにアクセスし、Azure ADのOAuthでMicrosoftの仕事用アカウントを使用してユーザーを認証するソリューションを開発しました2.0アプローチ。 Microsoft.IdentityModel.Clients.ActiveDirectoryバージョン2.24を使用してOAuth 2.0認証を実装し、市場にリリースしました。デフォルトでは最新のActiveDirectoryバージョン2.24およびバージョン3.10への更新トークン
- 、AzureのADリフレッシュトークンは、次のとおりです。約2日バック、我々は 調査した後 を「リフレッシュトークンが14日間非アクティブのため、有効期限が切れた」、私たちは以下のあるいくつかのユーザーのために、次のエラーを取得し始めました約14日間有効です。
- アクセストークンは、最大90日間のみリフレッシュすることができます(リフレッシュトークンをリフレッシュする場合)
- アクセストークンとリフレッシュトークンの最初の発行から90日後に、エンドユーザーは署名する必要がありますこれらの設定は、Azure AD では設定できません。問題を解決するために、最近リリースされたMicrosoft.IdentityModel.Clients.ActiveDirectoryバージョン3.10に移行しようとしていました。ライブラリのバージョン2.24から3.10へのアップグレード中に、バージョン2.xを使用してシリアライズした後に保持していたRefreshTokenを使用できませんでした。バージョン3.xでデシリアライズしている間にエラーが発生しました(クラスTokenCacheに変更が加えられています) 。
だから、私は次のような質問があります。
- 問題のリフレッシュトークンが14日の期間中に定期的にアクセストークンを取得するために慣れてきたが、以来、私たちは定義とは何か」undertandしたいと思いますリフレッシュトークンの「非アクティブ」の意味は?」アクセストークンの取得のみが含まれている場合、リフレッシュトークンが最初に期限切れになったのはなぜですか?アクセストークンを取得するために使用していた呼び出しは、AuthenticationContext.AcquireTokenByRefreshTokenでした。それが問題だろうか?私たちはバージョン3.xに移動して取得するために呼び出しにAuthenticationContext.AcquireTokenSilentAsyncを使用することを考えるとADAL 3 didn’t return refresh tokens for ~5 months…
- どのように私は、ライブラリのバージョン3.xで持続シリアライズされた2.xのトークンキャッシュを使用することができますか?
- へ(リンクアクセストークンを定期的に取得しても、上記の問題は90日間はもう一度実行されません。
- ユーザーがパスワードを変更すると、更新トークンが無効になるかどうかを確認します。