WSO2-为用户获取活动会话

mag*_*omj 2 wso2 wso2is wso2-das

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

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

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

小智 5

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

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

或者,您可以编写一个自定义数据发布器模块,该模块将针对每个用户的会话数据持久化,然后可以使用这些数据来防止并发登录。我有一篇针对该确切用例的博客文章

希望这可以帮助。