2017-09-22 2 views
0

나는 Azure AD와 함께 wordpress와 Jira에 2 개의 saml 앱을 설치했습니다. 이 흐름을 따르도록 앱을 설치하라는 메시지가 표시됩니다. 1. WordPress 사이트에서 사용자가 비밀번호를 바꿉니다. 2. 사용자가 Azure AD 에서 로그 아웃합니다. 3. 활성 사용자 세션을 사용하여 단일 로그온과 관련된 모든 다른 애플리케이션에 대한 세션 삭제 (우리의 경우 JIRA 및 기타 응용 프로그램 일 수 있습니다).모든 앱에서 Azure 광고 B2C 로그 아웃

나는 처음 두 단계를 달성했지만 세 번째 단계에서는 어려움을 겪었습니다. Azure 기술 지원팀은 로그 아웃 할 때 모든 응용 프로그램의 세션을 파괴하는 기능을 제공하지만 설치 방법에 대한 설명서는 찾을 수 없다고 말합니다.

도움을 주시면 감사하겠습니다. 감사.

+0

destrorying 세션에 도달하려면 세션 관리가 필요할 수 있습니다. 이 문서에서 자세한 내용을 참조하십시오. https : //docs.microsoft.com/en-us/azure/security/azure-security-threat-modeling-tool-session-management –

+0

Azure AD 또는 Azure AD B2C에 해당합니까? – Saca

+0

Azure AD의 경우 다음을 확인하십시오. https://docs.microsoft.com/azure/active-directory/develop/active-directory-single-sign-out-protocol-reference – Saca

답변

0

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

관련 문제