使用对称密钥和JwtSecurityTokenHandler从网关解密JWE进行解码和解密的问题

时间:2020-07-23 09:26:57

标签: .net-core jwt jwe

我正在与一个网关开发人员合作,该开发人员将为我传递一个JWE,其中包含一些由对称密钥签名和加密的数据,并且我们无法让我的.net核心代码接受JWE。 我们不确定是令牌的产生是问题,还是下面的代码是问题。

当我们通过签名和加密的令牌时,我们得到:

IDX12723:无法将有效负载“ System.String”解码为Base64Url编码的字符串。 jwtEncodedString:''。

var signedAndEncryptedToken = "eyJ0eXAiOiJKV1QiLCJjdHkiOiJKV1QiLCJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..ZZInnxcaK6h354IgMGAAqg.ztKUt4jcuHgzPPy0WAjh2tTkQ9fabGBll5njEvzg5cWxXtV18GY1HESLpM6ySAlASo2ex6Qt4NNcXLbAhVPGvveOCYd2pMbROSQQ1DOmpjJTnuU-mFtC0YmGXHEKMRl5s_VJdQfGUVNu5pSjvc9qWFYWY0W4gMonEbOuRskldw9kUW2rfwipB2dOcnnlh8VD.513r19owZHe_wYM4OInkew";
            
var encryptionKey = "2t0Ff6on2UCRw6AA4SpL3qlX2LFNS8TW";

var key = new SymmetricSecurityKey(Encoding.Default.GetBytes(encryptionKey));
var handler2 = new JwtSecurityTokenHandler();

var validations2 = new TokenValidationParameters
{
   TokenDecryptionKey = key,
   ValidateIssuer = false,
   ValidateAudience = false,
   ValidateLifetime = false,
   RequireExpirationTime = false,
   ClockSkew = TimeSpan.Zero,
   ValidateIssuerSigningKey = true,
   IssuerSigningKey = key
};

var claims2 = handler2.ValidateToken(signedAndEncryptedToken, validations2, out var tokenSecure2);


0 个答案:

没有答案