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

Forgerock - OpenAM - retrieving all valid sessions for a specific user

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

莎拉,

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

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

com.iplanet.dpro.session.service.SessionCount

您可以阅读 javadoc here

虽然使用此方法有一些限制。必须启用会话配额。您可以在管理控制台上启用会话配额,方法是转到配置 -> 全局 -> 会话页面,然后:

  • 设置人数"Active User Sessions"
  • 开启"Enable Quota Constraints"

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

希望这能回答您的问题。