WSO2-为用户获取活动会话

时间:2018-10-24 17:56:52

标签: wso2 wso2is wso2-das

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

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

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

1 个答案:

答案 0 :(得分:5)

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

当用户通过WSO2 Identity Server进行身份验证时,将创建一个会话。这些会话根据WSO2实现中的commonAuthId cookie存储为会话上下文对象。这些会话对象中包含有关已登录用户的信息。因此,如果要获取特定用户的会话,则必须查询所有活动的会话,并逐一匹配用户以遍历所有活动的会话。

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

希望这会有所帮助。