使用OpenAM openid连接代理,我创建了一个名为的OAuth 2.0/ OpenID连接客户端,其作用域为OpenID。
我的OpenAM实例部署在Tomcat 7上,我调整了/etc/host文件,将localhost显示为openam.example.com。
使用默认凭据,我可以使用以下方法检索OpenID连接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"我的问题是:
发布于 2017-04-14 07:13:08
我没有使用Open的经验,但是要验证ID令牌,您需要获得OpenID连接提供程序的正确公钥(如果密钥是由非对称密码签名的)。要获得它,您应该阅读它的发现文档,该文档应该位于/.well-known/openid-configuration。在返回的JSON文档中,找到一个jwks_uri值并加载该URL。您将获得另一个带有服务器所有公钥的JSON文档。然后,您需要从ID令牌中找到一个具有kid (键ID)值的匹配kid的值。
如果令牌被签名为对称密码,则没有标准化的分配方法。
有关更多信息,请参见:
https://stackoverflow.com/questions/43095590
复制相似问题