모든 응용 프로그램의 사용자 세션을 삭제하려면 세션 관리을 사용해야 할 수 있습니다. 그것은 적절한 로그 아웃 을 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