【问题标题】:Adal JS - Logout of just one AD siteAdal JS - 仅注销一个 AD 站点
【发布时间】:2019-05-21 05:57:38
【问题描述】:

我正在开发一个使用 ADAL JS 的 SPA。调用 adalService.logOut() 后,用户被正确地重定向到 microsoft oauth 注销 URL,并且注销发生得很好。但是,用户已从所有 Microsoft 365 站点和所有其他使用 ADAL 的站点注销。

有没有办法只让用户退出这个站点?

【问题讨论】:

    标签: azure single-page-application adal adal.js


    【解决方案1】:

    不幸的是,ADAL JS 库的工作方式与您描述的一样。调用注销功能时,它会清除整个缓存。根据维基: https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Login-methods#logout

    退出 调用 logout 方法时,库会清除 应用程序缓存在浏览器存储中并发送注销请求到 Azure AD 实例的注销终结点。

    authContext.logOut();默认行为是将用户重定向到 注销后的 window.location.href。如果 postLogoutRedirectUri 值为 在配置时设置,用户将被重定向到该 URI。

    手动注销的唯一其他方式。也就是说,自己查看缓存,然后删除您有兴趣删除的信息。这会以某种方式“注销”用户,因为您已经删除了对令牌的访问权限。

    根据 wiki 的配置 Auth Context https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Config-authentication-context:

    cacheLocation - ADAL 在浏览器存储中缓存令牌 默认为“会话存储”。您可以将其设置为 'localStorage' 或 'sessionStorage'。

    window.config = {
        clientId: 'g075edef-0efa-453b-997b-de1337c29185',
        cacheLocation: 'localStorage' // Default is sessionStorage
    }; Tokens are accessible from JavaScript since ADAL.JS is using HTML5 browser storage. It is recommended to prompt users to login
    

    再次用于您应用中的重要操作。你也应该保护 您的 XSS 网站。请在此处查看文章: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

    您可以阅读有关其他可配置选项的更多详细信息 在这里。

    有关访问本地存储的更多信息,您可以在此处阅读:https://blog.logrocket.com/the-complete-guide-to-using-localstorage-in-javascript-apps-ba44edb53a36

    关于存储的 MDN Web 文档可以在这里找到:https://developer.mozilla.org/en-US/docs/Web/API/Storage

    【讨论】:

    • 正在发生注销但在注销后,用户被重定向回 URL 并仍然登录的任何帮助?
    猜你喜欢
    • 2017-09-21
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    相关资源
    最近更新 更多