Forgerock - OpenAM - 检索特定用户的所有有效会话

时间:2016-01-06 16:48:51

标签: openam opendj openidm

如何检索特定用户的所有有效会话?例如,如果用户从多个设备登录并决定更改密码,或重置密码。我需要能够使所有活动会话到期并将用户从所有设备中注销。如果用户怀疑他/她的帐户已被盗用并需要更改密码,这一点尤为重要。目前我可以检索RME而不是会话。我知道这可以通过UI实现,但我需要将此功能放在SDK或API中。是否有卷曲命令可以轻松实现这一目标?

1 个答案:

答案 0 :(得分:2)

萨拉,

目前没有端点可以让你使所有用户会话无效。你需要每个会话的会话令牌,然后多次调用/ json / sessions /?_ action = logout REST端点(每个会话一次)。 / p>

话虽如此,您可以使用以下类来获取特定用户的会话列表:

com.iplanet.dpro.session.service.SessionCount

您可以阅读javadoc here

虽然使用此方法存在一些限制。必须启用会话配额。您可以转到Configuration - >在管理控制台上启用会话配额。全球 - >会话页面和:

  • 设置"活动用户会话"
  • 的数量
  • 启用"启用配额约束"

总而言之,您可以创建自己的自定义端点,该端点将获取用户ID并调用SessionCount.getAllSessionsByUUID(uuid)以获取活动会话列表。之后,您可以遍历会话列表并逐个使它们失效。

希望这能回答你的问题。