0

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

curl \ --request POST \ --header "X-OpenAM-Username: demo" \ --header "X-OpenAM-Password: changeit" \ --header "Content-Type: application/json" \ --data " {}" \ https://openam-server.com:8443/openam/json/authenticate "

它返回一个 tokeId 作为输出

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

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

4

2 回答 2

1

我签入 openam 12.0.0 提供了新的会话信息休息 api

这可以根据 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 api

于 2015-02-19T11:04:17.310 回答
0

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)

于 2014-10-08T15:20:03.743 回答