我对加密和RSA令牌的使用还比较新,我正在尝试让IDentityServer4不使用开发人员签名,而是使用我的签名。到目前为止,我已经尝试了以下方法:
var keyInfo = new RSACryptoServiceProvider().ExportParameters(true);
var rsaSecurityKey = new RsaSecurityKey(new RSAParameters
{
D = keyInfo.D,
DP = keyInfo.DP,
DQ = keyInfo.DQ,
Exponent = keyInfo.Exponent,
InverseQ = keyInfo.InverseQ,
Modulus = keyInfo.Modulus,
P = keyInfo.P,
Q = keyInfo.Q
});
services.AddIdentityServer()
.AddSigningCredential(rsaSecurityKey)
.AddInMemoryPersistedGrants()
.AddInMemoryIdentityResources(Config.GetIdentityResources())
.AddInMemoryApiResources(Config.GetApiResources())
.AddInMemoryClients(Config.GetClients())
.AddAspNetIdentity<User>();
然而,当我运行Identity Server4并从另一个网站被重定向到登录页面时,我会收到以下错误:
IDX10630:用于签名的“[PII已隐藏]”不能小于“[PII已隐藏]”位。 KeySize:“[PII已隐藏]”。 参数名称:key.KeySize
我必须承认,我整个周末都在尝试弄清楚如何使用SigningCredentials,但我不确定自己上面做错了什么。