首页 > 解决方案 > 从公共 Microsoft.IdentityModel.Tokens.JsonWebKey.JsonWebKey 转换为 RSAParameters(公共密钥)

问题描述

本质上,我希望将 Public Microsoft.IdentityModel.Tokens.JsonWebKey.JsonWebKey 转换为 RSAParameters,然后在 RSA 实例中使用。在此之后,我正在创建一个 Azure KeyVault JsonWebKey,以便我可以将此密钥导入我的保管库。我目前尝试过这个,但是还没有让它工作。有什么建议/捷径吗?

var jwk = new JsonWebKey(someStr); // IdentityModel.Tokens...

var rsaParams = new RSAParameters
{
    Modulus = WebEncoders.Base64UrlDecode(jwk.N),
    Exponent = WebEncoders.Base64UrlDecode(jwk.E)
};

var rsa = RSA.Create(rsaParams);
var key = new JsonWebKey(rsa); // Azure.Security.KeyVault.Keys
....
var kvKey = keyClient.ImportKey(keyName, key); // keyClient = KeyClient class

我从此请求收到的错误是:

RSA key is not valid - cannot instantiate crypto service

标签: c#asp.net-corersa.net-5jwk

解决方案


推荐阅读