如何创建使用RsaSsaPssSha256签名的JWT

时间:2019-08-04 15:54:06

标签: c# jwt rsa-sha256

我正在尝试使用RsaSsaPssSha256和从密钥库读取的自签名X509证书2签署JWToken。

使用.net 4.61;

  1. 试图使用Microsoft的 System.IdentityModel.Tokens.Jwt
SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor
{
    Subject = ,
    SigningCredentials = new SigningCredentials(privateKey, SecurityAlgorithms.RsaSsaPssSha256Signature),  
    Expires = DateTime.UtcNow.AddMinutes(expirationMinutes),
};

并出现以下错误:

"IDX10634: Unable to create the SignatureProvider.\nAlgorithm: 'PS256', SecurityKey: 'Microsoft.IdentityModel.Tokens.X509SecurityKey, KeyId: 'xxxxxxxxxxxxxxxxxxxxxxxxxx', InternalId: 'xxxxx-xxxxxx-xxxx-xxxxxx'.'\n is not supported. The list of supported algorithms is available here: https://aka.ms/IdentityModel/supported-algorithms"

不必说SecurityAlgorithms.RsaSha256可以按预期工作。

2.尝试使用 Jose-JWT 模块,并出现以下错误:

"RsaUsingSha with PSS padding alg expects key to be of CngKey type."


我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

当使用RsaSsaPssSha256从.NET 4.60升级到4.61时,我删除了System.IdentityModel.Tokens.Jwt软件包并重新安装了它们(即使它是同一个dll文件)。 现在一切都按预期进行。