验证使用hmac-sh256签名的JWT

时间:2014-11-07 19:10:05

标签: hmac sha256 jwt

我正在开发一个项目,使用Katana OpenID Connect中间件与第三方(OpenAM)提供商进行身份验证。提供商正在使用hmac-sh256签署JWT。当OpenID中间件通过调用ValidateToken验证JWT时,它抛出以下异常:

{“IDX10503:签名验证失败。密钥尝试:'System.IdentityModel.Tokens.X509AsymmetricSecurityKey \ r \ n'。\ n捕获的异常:\ n'System.InvalidOperationException:IDX10618:AsymmetricSecurityKey.GetHashAlgorithmForSignature(...)thrrew一个例外。\ n \ nNasymmetricSecurityKey:'System.IdentityModel.Tokens.X509AsymmetricSecurityKey'\ nSignatureAlgorithm:... hmac-sha256',检查以确保支持SignatureAlgorithm。\ n例外:'System.NotSupportedException:Crypto algorithm'{{3}在这个上下文中不支持。\ r \ n在System.IdentityModel.Tokens.X509AsymmetricSecurityKey.GetHashAlgorithmForSignature(String algorithm)\ r \ n at ......

我缺少什么,或者默认的SecurityTokenHandler是否真的不支持该算法?

谢谢,

戈登

1 个答案:

答案 0 :(得分:0)

我不熟悉Katana,但对我来说,它似乎触发了错误的代码路径:异常会抱怨不对称的安全密钥,但hmac-sha256算法基于对称密钥(即客户端密钥)< / p>

另请注意,您需要一个相对较新版本的OpenAM,因为它之前包含与HMAC相关的错误:https://bugster.forgerock.org/jira/browse/CAF-112;至少比OpenAM-12.0.0-SNAPSHOT_20140417

更新的东西