【问题标题】:Forgerock - OpenAM - retrieving all valid sessions for a specific userForgerock - OpenAM - 检索特定用户的所有有效会话
【发布时间】:2016-01-06 16:48:51
【问题描述】:

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

【问题讨论】:

    标签: openam opendj openidm


    【解决方案1】:

    莎拉,

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

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

    com.iplanet.dpro.session.service.SessionCount
    

    您可以阅读 javadoc here

    不过,使用这种方法有一些限制。必须启用会话配额。您可以通过转到配置 -> 全局 -> 会话页面并在管理控制台上启用会话配额:

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

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

    希望这能回答你的问题。

    【讨论】:

      猜你喜欢
      • 2022-07-06
      • 2017-11-13
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 2016-09-29
      相关资源
      最近更新 更多