OpenAM OpenID连接令牌验证

时间:2017-03-29 13:54:55

标签: openid-connect openam

使用OpenAM OpenID连接代理,我创建了一个名为Test-Client的OAuth 2.0 / OpenID连接客户端,其范围为openid。

我的OpenAM实例部署在Tomcat 7上,我调整了/ etc / hosts文件,将localhost显示为openam.example.com。

使用默认凭据,我可以使用以下命令检索OpenID Connect ID令牌:

curl -k -u Test-Client:password -d "grant_type=password&username=demo&password=changeit&scope=openid" -H "Content-Type: application/x-www-form-urlencoded" "http://openam.example.com:8080/openam/oauth2/access_token"

如果我的不记名令牌仍然有效,我可以检索OpenID用户信息(上述命令返回访问令牌):

curl POST -H "Authorization: Bearer {{access_token}}" -k -v "http://openam.example.com:8080/openam/oauth2/userinfo"

我的问题:

  • 如何找到用于签署id_token JWT的秘密?

1 个答案:

答案 0 :(得分:3)

我没有使用Open AM的经验,但要验证ID令牌,您需要获取OpenID Connect提供程序的正确公钥(如果密钥是由非对称密码签名的)。要获得它,您应该阅读其发现文档,该文档应位于/.well-known/openid-configuration。在返回的JSON文档中,找到jwks_uri值并加载该URL。您将获得另一个包含服务器所有公钥的JSON文档。然后,您需要从ID令牌中找到kid(密钥ID)值与kid匹配的值。

如果令牌是对称密码,则没有标准化的分发方式。

有关详细信息,请参阅: