Je suis assez novice dans l'utilisation du cryptage et des jetons rsa et j'essaie d'obtenir que IDentityServer4 n'utilise pas la signature de développeur, mais la mienne. Voici ce que j'ai essayé jusqu'à présent:
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>();
Cependant, lorsque j'exécute Identity Server4 et que je suis redirigé vers la page de connexion à partir d'un autre site Web, j'obtiens l'erreur suivante:
IDX10630: Les bits "[PII est masqué]" pour la signature ne peuvent pas être inférieurs aux bits "[PII est masqué]". KeySize: '[PII est masqué]'. Nom du paramètre: key.KeySize
Je dois admettre que j'ai participé à tout ce week-end, essayant de comprendre comment utiliser SigningCredentials et je ne suis pas vraiment sûr de ce que j'ai fait de mal ci-dessus.
Vous pouvez voir plus de détails en développement en ajoutant ce qui suit à Configure () dans la classe de démarrage:
if (env.IsDevelopment())
{
IdentityModelEventSource.ShowPII = true;
}