Azure AD B2C从所有应用程序注销

时间:2017-09-22 07:05:56

标签: azure single-sign-on azure-ad-b2c

我已经使用Azure AD为wordpress和Jira设置了2个saml应用程序。我要求设置应用程序以遵循此流程: 1.用户从WordPress网站注销 2.用户从Azure AD注销 3.销毁与活动用户会话单点登录相关的所有其他应用程序的会话(在我们的例子中,它可能是JIRA和其他应用程序)。

我已经取得了前两个步骤但是与第三个步骤挣扎。 Azure技术支持团队表示,他们提供了在注销时销毁所有应用程序会话的功能,但我找不到有关如何设置它的任何文档。

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分: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 Management的更多详细信息。

this document中查看有关ADAL的更多详情。