我在使用identityserver4的经过身份验证的应用程序中遇到此异常:
SecurityTokenInvalidSignatureException:IDX10503:签名验证失败。密钥尝试:' Microsoft.IdentityModel.Tokens.RsaSecurityKey,KeyId: &#39 ;.例外情况发生了:''。令牌:' {" alg":" RS256"," typ":" JWT"}。{" nbf& #34;:1501510053,"&EXP#34;:1501510353," ISS":" http://localhost:5000"" AUD":& #34;的clientId""随机数":" 636371068531446271.Nzc2YzRjZGMtN2M0Ny00MGZiLWI3NTQtN2Q2NWIxZGM5MWUyODY2MGE5NTgtYWMzNS00YWJmLWEyMDktNjcwMmJhYTlkYWJk"" IAT":1501510053," c_hash":&# 34; teGUAAIvU0EY9L1WzjfI2Q"" SID":" c870b6184744290472b157ce5992f8e0""子":" a3915666-8586-476b-9166-b5b183af609e" " auth_time":1501508734," IDP":"本地"" AMR":[" PWD"]} '
此时,我没有在身份服务器中使用登录凭据的证书。所以我尝试这个代码,有时可行,但我确定这是错误的。有人一步一步地如何在没有.pfx证书的情况下使用SignInCredentials?
var signinkey = new RsaSecurityKey(RSA.Create());
var signingCredentials = new SigningCredentials(signinkey,
SecurityAlgorithms.RsaSha256);
// Adds IdentityServer
services.AddIdentityServer()
.AddSigningCredential(signingCredentials)
...
答案 0 :(得分:2)
使用
services.AddIdentityServer().AddDeveloperSigningCredential()
这将在首次启动时为您创建一个随机RSA密钥对,并将其缓存在磁盘上。