我正在探索一个虚拟样本的身份服务器,并且我正在努力进行加密令牌签名。
我首选的方法是从环境变量(或appsettings.json
所有重要的)中获取一些秘密字符串,我可以使用它们来签署令牌并稍后在 API 上验证签名。
我正在阅读我不能使用对称密钥,我需要一个非对称密钥对。
有没有关于如何为此目的使用字符串机密的示例?我对 .NET 中的密码学不是很熟悉
就像是
var rsaProvider = new RSACryptoServiceProvider(2048);
var key = new RsaSecurityKey(rsaProvider); // Can I use any custom string as private and public key or similar?
services
.AddIdentityServer(
options =>
{
options.EmitStaticAudienceClaim = true;
options.KeyManagement.Enabled = false;
})
.AddSigningCredential(new SigningCredentials(key, SecurityAlgorithms.RsaSha256))
// other identity server builder options
但是使用自定义值,我可以在设置或环境变量中硬编码或存储为字符串。