2017-09-22 3 views
0

J'ai configuré 2 applications saml pour wordpress et Jira avec Azure AD. Je suis invité à configurer les applications pour suivre ce flux: 1. L'utilisateur se déconnecte du site WordPress 2. L'utilisateur est déconnecté d'Azure AD 3. Détruire la session pour toutes les autres applications associées à la connexion unique avec session utilisateur active (dans notre cas, il peut s'agir de JIRA et d'autres applications).Déconnexion Azure AD B2C depuis toutes les applications

J'ai franchi les deux premières étapes, mais j'ai eu du mal avec la troisième. L'équipe de support technique Azure indique qu'elle fournit la fonctionnalité permettant de détruire les sessions de toutes les applications lors de la déconnexion, mais je ne trouve aucune documentation sur la façon de la configurer.

Toute aide serait appréciée. Merci.

+0

Pour atteindre les sessions de destruction, vous pouvez avoir besoin de la gestion de session. Voir plus de détails dans ce document: https: //docs.microsoft.com/en-us/azure/security/azure-security-threat-modeling-tool-session-management –

+0

Est-ce pour Azure AD ou Azure AD B2C? – Saca

+0

Si Azure AD, avez-vous vu ceci: https://docs.microsoft.com/azure/active-directory/develop/active-directory-single-sign-out-protocol-reference – Saca

Répondre

0

Si vous souhaitez détruire la session utilisateur de toutes les applications, vous devrez peut-être utiliser Gestion de session. Cela implique une déconnexion correcte en utilisant les méthodes ADAL. Si l'application repose sur un jeton d'accès émis par Azure AD, le gestionnaire d'événements de déconnexion doit appeler.

Exemple (C#)

HttpContext.GetOwinContext().Authentication.SignOut(OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType) 

Il devrait également détruire la session de l'utilisateur en appelant la méthode Session.Abandon(). méthode suivante montre implémentation sécurisée de l'utilisateur fermeture de session:

[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); 
} 

Voir plus de détails sur la gestion seesion dans this document.

Voir plus de détails sur ADAL dans this document.