验证从 cloudfoundry cf 客户端获取的 jwt
verify jwt obtained from cloudfoundry cf client
我想更好地了解 uaa 客户端令牌验证如何与 cloud foundry 一起工作。
使用cloud foundry cf工具登录后,我使用
获得了签名令牌
cf oauth-token
据我了解,此令牌已由 cf 客户端签名,并包含我登录后从 uaa 收到的原始访问令牌。
现在我可以使用任何在线 jwt 解析器解码此令牌(令牌不是敏感信息,因为 cf 工具仅针对我本地的 bosh-lite 安装)。然而,我如何验证令牌是否正确?这通常是云控制器随后会执行的任务,对吗?
我尝试使用 JJWT java 库如下:
Jwts.parser().setSigningKey("").parseClaimsJws(token).getBody();
但它抱怨签名密钥为空。 cf 客户端使用的签名密钥是什么?客户端密钥是否已在 UAA 注册?
非常感谢任何澄清。
您只需要验证密钥(假设您确实想要验证令牌签名)
事情是这样的
1. 您可以在没有任何密钥的情况下解析 JWT 令牌,没有密钥它不应该验证签名
2. 如果您希望验证签名,请提供验证密钥
在uaa下找到验证码./token_keys
我目前的理解是CF CLI只是保存了UAA生成的编码和签名的token。此token是用UAA私钥签名的,只能用对应UAA的public验证秘钥进行验证。
为了验证该令牌,您有两种选择:
1) 使用 UAA 端点 (/check_token) 为您验证给定的令牌,在这种方法中您不需要 UAA 的验证密钥。
2) 获取UAA public 验证密钥(/token_key),并编写一些代码来验证jwt 签名。
见
https://github.com/cloudfoundry-incubator/routing-api/blob/master/authentication/token_validator.go
根据你所采用的方法,你可以使用JS模仿相应的实现。
希望对您有所帮助。
我想更好地了解 uaa 客户端令牌验证如何与 cloud foundry 一起工作。
使用cloud foundry cf工具登录后,我使用
获得了签名令牌cf oauth-token
据我了解,此令牌已由 cf 客户端签名,并包含我登录后从 uaa 收到的原始访问令牌。
现在我可以使用任何在线 jwt 解析器解码此令牌(令牌不是敏感信息,因为 cf 工具仅针对我本地的 bosh-lite 安装)。然而,我如何验证令牌是否正确?这通常是云控制器随后会执行的任务,对吗?
我尝试使用 JJWT java 库如下:
Jwts.parser().setSigningKey("").parseClaimsJws(token).getBody();
但它抱怨签名密钥为空。 cf 客户端使用的签名密钥是什么?客户端密钥是否已在 UAA 注册?
非常感谢任何澄清。
您只需要验证密钥(假设您确实想要验证令牌签名)
事情是这样的 1. 您可以在没有任何密钥的情况下解析 JWT 令牌,没有密钥它不应该验证签名 2. 如果您希望验证签名,请提供验证密钥
在uaa下找到验证码./token_keys
我目前的理解是CF CLI只是保存了UAA生成的编码和签名的token。此token是用UAA私钥签名的,只能用对应UAA的public验证秘钥进行验证。
为了验证该令牌,您有两种选择:
1) 使用 UAA 端点 (/check_token) 为您验证给定的令牌,在这种方法中您不需要 UAA 的验证密钥。
2) 获取UAA public 验证密钥(/token_key),并编写一些代码来验证jwt 签名。
见 https://github.com/cloudfoundry-incubator/routing-api/blob/master/authentication/token_validator.go
根据你所采用的方法,你可以使用JS模仿相应的实现。
希望对您有所帮助。