すべてのアプリケーションのユーザーセッションを破棄したい場合は、セッション管理を使用する必要があります。それは適切なログアウトを使用して、ADAL方法を使用することを意味します。アプリケーションがAzure ADによって発行されたアクセストークンに依存している場合、ログアウトイベントハンドラは呼び出す必要があります。
例(C#)
HttpContext.GetOwinContext().Authentication.SignOut(OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType)
またSession.Abandon()メソッドを呼び出すことによって、ユーザのセッションを破壊する必要があります。
[HttpPost]
[ValidateAntiForgeryToken]
public void LogOff()
{
string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
AuthenticationContext authContext = new AuthenticationContext(Authority + TenantId, new NaiveSessionCache(userObjectID));
authContext.TokenCache.Clear();
Session.Clear();
Session.Abandon();
Response.SetCookie(new HttpCookie("ASP.NET_SessionId", string.Empty));
HttpContext.GetOwinContext().Authentication.SignOut(
OpenIdConnectAuthenticationDefaults.AuthenticationType,
CookieAuthenticationDefaults.AuthenticationType);
}
がthis documentにSeesion管理の詳細については、こちらをご覧ください:以下の方法は、ユーザのログアウトの安全な実装を示しています。
詳細については、ADAL this documentをご覧ください。
destroryingセッションに到達するには、セッション管理が必要な場合があります。このドキュメントの詳細を参照してください:https://docs.microsoft.com/en-us/azure/security/azure-security-threat-modeling-tool-session-management –
これはAzure ADまたはAzure AD B2Cのためのものですか? – Saca
Azure ADの場合は、これを見てください:https://docs.microsoft.com/azure/active-directory/develop/active-directory-single-sign-out-protocol-reference – Saca