【问题标题】:WSO2 - Get active sessions for userWSO2 - 为用户获取活动会话
【发布时间】:2018-10-25 19:36:38
【问题描述】:

我们正在使用 WSO2 进行身份验证 (SAML/SSO)。

我不知道如何判断用户是否已经登录(以防止同时登录)。其他 SO 问题表明,无论是否使用 WSO2 IS Analytics,都可以知道这一点。我宁愿不必也运行 WSO2 IS Analytics(这暗示了 here,但从未澄清过。此外,我可以看到 IDN_AUTH_SESSION_STORE 表在登录期间被填充和引用,但这是使用 SESSION_ID(即由 commonAuth cookie 传递)。

所以我正在寻找这个问题的直接答案:在身份验证流程中,我们如何判断给定用户是否已经登录?

【问题讨论】:

    标签: wso2 wso2is wso2-das


    【解决方案1】:

    如果不使用分析,WSO2 Identity Server 不支持开箱即用地查询用户登录的用户会话。让我解释一下原因。

    当用户通过 WSO2 身份服务器进行身份验证时,会创建一个会话。这些会话存储为会话上下文对象,针对 WSO2 实现中的 commonAuthId cookie。有关登录用户的信息位于这些会话对象中。因此,如果我们想获取特定用户的会话,我们必须查询所有活动会话并一一匹配该用户。

    作为替代方案,您可以编写一个自定义数据发布者模块,该模块针对每个用户保留会话数据,然后您可以使用这些数据来防止并发登录。我为这个确切的用例写了一个blog post

    希望这会有所帮助。

    【讨论】:

    • 我确实注意到会话数据不是完全可查询的(如您所述)。您的方法正是我一直在寻找的(我不想支持分析产品)。如果我需要任何澄清,将跟进。谢谢!
    • 很高兴我能帮上忙!
    猜你喜欢
    • 2019-08-26
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    相关资源
    最近更新 更多