openAM 令牌自检始终返回 active 为 false



我已经部署了OpenAM - AccessManagement (6.0.0.4(版本。我正在使用 Rest API 通过密码流获取访问令牌。并试图内省令牌。

1) get access token 
$ curl  
--request POST  
--user "clientid:clientsecret"  
--data "grant_type=password&username=user&password=welcome&scope=openid"  
http://openam.mydomain.com:8080/openam/oauth2/access_token 
2) get header token (to be used for authorization header while token 
introspection in step 3)
$ curl  
--request POST  
--user "clientid:clientsecret"  
--data "grant_type=client_credentials&scope=openid"  
http://openam.mydomain.com:8080/openam/oauth2/access_token 

3) introspect token
$ curl  
--request POST  
--header "Authorization: Basic ZGVtbzpjaGFuZ2VpdA=="  
--data "token=f9063e26-3a29-41ec-86de-1d0d68aa85e9" 
"https://openam.mydomain.com:8080/openam/oauth2/introspect"

令牌内省始终返回为 {"active" : false }。我想我缺少一些OpenAM配置。有什么想法吗?

更新

正如@BernhardThalmayr所建议的那样,当我将令牌作为查询参数时,它正在工作。 这里有 3 个问题:

1(我需要将授权标头作为编码的客户端 ID:客户端秘密。我不能使用步骤 2 中生成的持有者令牌作为授权标头。

使用 gluu 作为 IDP,持有者令牌被接受为令牌自省的身份验证标头。但是有了openAm,它给了 { "error_description": "无效授权", "错误":"invalid_client" }

我可以在 openam 微服务的文档中看到,令牌验证持有者令牌被用作身份验证标头。 https://backstage.forgerock.com/docs/platform/6/mservices-guide/#sec-validate-am-sso-token。没有微服务怎么做?

2(范围列表为空:我在客户端配置中添加了范围为openid,introspect,mail,cn,profile。仍然令牌自检将作用域数组返回为空

3( OpenAM/OAuth2/userinfo 端点仅返回 { "子": "管理员" }

恕我直言,AM 不符合规范,因为它要求将令牌的值作为查询参数发送 [backstage.forgerock.com/docs/am/6/oauth2-guide/...与 [tools.ietf.org/html/rfc7662] 中的定义相反。您是否尝试过提供 AM 文档中记录的令牌?

最新更新