【问题标题】:openam token expiration timeoutopenam 令牌过期超时
【发布时间】:2015-02-19 19:04:17
【问题描述】:

我在 web 应用程序中使用 openam 进行身份验证,使用 rest API 调用, 使用这个

卷曲\ --请求发布\ --header "X-OpenAM-用户名:演示" \ --header "X-OpenAM-Password: changeit" \ --header“内容类型:应用程序/json”\ - 数据 ”{}” \ https://openam-server.com:8443/openam/json/authenticate"

返回一个 tokeId 作为输出

{ "tokenId": "AQIC5w...NTcy*", "successUrl": "/openam/console"

我知道有一个令牌 api isTokenValid 来检查令牌是否有效,但我需要获取令牌过期时间,是否可以在不使用 oAuth 客户端的情况下获取 tokenId 过期时间,

【问题讨论】:

    标签: passport.js openam passport-local


    【解决方案1】:

    我已经签入 openam 12.0.0 提供了新的会话信息休息 apis

    这可以根据 tokenId 确定会话是否处于活动状态

    来自 openam 12 指南:

    对于这些 REST 端点,指定两个 SSO 令牌。为当前经过身份验证的用户提供 SSO 令牌作为标题的值,该标题的名称是 SSO 令牌 cookie 的名称,默认为 iPlanetDirectoryPro。将您想要了解的 SSO 令牌指定为 REST URL 的 tokenId 查询字符串参数。

    /openam/json/sessions/?_action=isActive&tokenId
    

    检查会话的最大剩余时间(以秒为单位)

    /openam/json/sessions/?_action=getMaxTime&tokenId
    

    检查会话空闲的时间量(以秒为单位)

    /openam/json/sessions/?_action=getIdle&tokenId 
    

    为了检查令牌信息,我可以使用这个 rest apis

    【讨论】:

      【解决方案2】:

      json/authenticate 端点返回的是 OpenAM SSO 令牌,而不是 OAuth2 访问令牌。这就是你想要的吗?

      如果您需要访问令牌或 JWT,请使用 oauth2 端点:

         curl --request POST --data "grant_type=client_credentials&username=demo&password=password&client_id=test&client_secret=password&scope=cn%20mail%20profile%20openid" \
       http://openam.example.com:28080/openam/oauth2/access_token
      

      上面获得了一个 OIDC JWT 令牌,但如果您想要一个普通访问令牌,只需删除配置文件和 openid 范围并请求其他内容(邮件、cn)

      【讨论】:

      • 好的,我对这个 openAM 概念很陌生,我使用 OpenAM SSOtoken 仅使用 openam 的 rest api 返回我的令牌 ID,我想知道我们如何检查令牌是否过期,如果openAm 令牌过期了,我应该每次检查 tokenid 是否有效。
      • 您可以检查docs.forgerock.org/en/openam/11.0.0/dev-guide/… 代理将注册一个令牌侦听器,以便在令牌过期时收到通知……使用 REST 您必须决定何时检查有效性。
      • 感谢@Bernhard 的回复和指导。
      猜你喜欢
      • 1970-01-01
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 2015-07-13
      • 2012-04-17
      • 2016-05-06
      • 2019-02-02
      相关资源
      最近更新 更多