Azure ADを使用するネイティブアプリケーションを構築しています。アプリケーションにはいくつかのアクセス許可が必要です(ユーザープロファイルの読み取り、Azure Service Management APIの実行など)。Azure Active Directoryの同意はキャッシュされていますか?
ユーザーが最初にアプリケーションを使用すると、サインインが求められ、サインインすると同意画面が表示されます(アプリケーションに同意する)。ユーザーが同意を得たら、Azure ADでアプリケーションを見ることができます(「アプリケーション」タブの下にあります)。ここまでは順調ですね。
このユーザーの現在の状況は、Azure ADからアプリケーションを手動で削除します(再び「アプリケーション」タブに移動します)。同意モデルの理解に基づいて、ユーザーがアプリケーションへの同意を削除したことを意味します。
このユーザーがアプリケーションにログインすると、最初のようにユーザーに再び同意画面が表示されることが予想されます。しかし、実際の動作では、ユーザーにそのような画面は表示されず、ユーザーは単にアプリケーションにサインインされます。さらに、ユーザーがAzure ADに戻ると、同意したアプリケーションのリストにそのアプリケーションが表示されません。
だから私の質問は以下のとおりです。
- のAzure ADは、何らかの形で同意をキャッシュしていますか?
- 同意がキャッシュされている場合、この同意がキャッシュされる期間は?
- 同意がキャッシュされている場合は、この同意をプログラムによって、または別の方法でクリアする手段がありますか?
なぜこのようなことが起こったのかについての洞察は高く評価されます。
同意は、oauth2PermissionGrantオブジェクトのセットで与えられます。このオブジェクトは、oauth2Permission(アプリケーションで定義されています)をcustomerディレクトリのサービスプリンシパルに接続します。もちろん、同意したユーザーID (または管理者の同意があった場合はすべて)。あなたは、グラフエクスプローラでこれらのグラントの存在を確認し、ユーザーがアプリを削除した後に何が起こるかを見ることができます。 – juunas
グラフエクスプローラの同意の確認に関する素晴らしい提案。ありがとう!同じことを行い、それに応じて質問を更新します。 –