2017-07-31 107 views
0

我面對這個例外在我的驗證的應用程序與identityserver4:無效的簽名密鑰IdentityServer4

SecurityTokenInvalidSignatureException:IDX10503:簽名驗證失敗。 Keys嘗試過:'Microsoft.IdentityModel.Tokens.RsaSecurityKey,KeyId: '。例外情況:''。 token:'{「alg」:「RS256」,「typ」:「JWT」}。{「nbf」:1501510053,「exp」:1501510353,「iss」:「http://localhost:5000」,「aud」:「clientId」 「現時」: 「636371068531446271.Nzc2YzRjZGMtN2M0Ny00MGZiLWI3NTQtN2Q2NWIxZGM5MWUyODY2MGE5NTgtYWMzNS00YWJmLWEyMDktNjcwMmJhYTlkYWJk」, 「IAT」:1501510053, 「c_hash」: 「teGUAAIvU0EY9L1WzjfI2Q」, 「SID」: 「c870b6184744290472b157ce5992f8e0」, 「子」: 「a3915666-8586-476b-9166-b5b183af609e」,「auth_time 「:1501508734,」 IDP 「:」 本地」, 「AMR」:[ 「PWD」]}」。

此時,我沒有證書用於在身份服務器中登錄憑據。所以我嘗試這個代碼,有時可以工作,但我確定這是錯誤的。有人有一步一步如何使用SignInCredentials沒有.pfx證書?

var signinkey = new RsaSecurityKey(RSA.Create()); 

     var signingCredentials = new SigningCredentials(signinkey, 
      SecurityAlgorithms.RsaSha256); 

     // Adds IdentityServer 
     services.AddIdentityServer() 
      .AddSigningCredential(signingCredentials) 
... 

回答

2

使用

services.AddIdentityServer().AddDeveloperSigningCredential()

這將創建你在第一次發射隨機RSA密鑰對,並將它緩存到磁盤上。

+0

好的,但如果我的應用程序重新啓動,我的令牌不會失效? –

+0

否 - 密鑰將被重新使用,直到您刪除密鑰文件。 – leastprivilege

+0

我可以指出存儲密鑰的路徑嗎? –