Asp.net-Core

IdentityServer4 中的簽名憑證是什麼?

  • September 10, 2017

我們正在使用我們的 .NET Core Web 應用程序實現 Identity Server 4。

我瀏覽了 Identity Server 文件。配置身份伺服器(使用 DI)時,有一行:

.AddTemporarySigningCredential

我試圖了解此簽名憑據是什麼,但無法弄清楚。因此,我不知道是否可以使用內置的臨時工具,或者我是否應該提供不同的臨時工具。

我的問題是,什麼是簽名證書,我應該如何使用它?

在身份伺服器文件中,這是定義:

添加一個簽名密鑰服務,為各種令牌創建/驗證服務提供指定的密鑰材料。您可以傳入 X509Certificate2、SigningCredential 或對證書儲存中的證書的引用。

所以這似乎很重要:)

授權伺服器將使用密鑰對令牌進行簽名。資源伺服器應使用密鑰驗證令牌的完整性。它們一起形成一個(通常是非對稱的,例如公鑰/私鑰)密鑰(對)。/.well-known/openid-configuration預設情況下,IdentityServer 將通過端點發布用於驗證令牌的公鑰。

對於開發場景,您通常希望跳過正確管理密鑰之類的秘密(這對於在生產中正確執行非常重要!)。對於這些開發方案,您可以選擇使用 .NET Core 1.x 等臨時AddTemporarySigningCredential解決方案

使用**.NET Core 2.x** ,這將發生變化,您將需要AddDeveloperSigningCredential()擴展方法。

這就回答了它是什麼的問題。ConfigureServices(...)關於如何使用它:您只需在應用程序類的方法中呼叫您需要的方法,具體取決於您的 .NET Core 版本Startup

除此之外,您不需要做任何特別的事情,當然要注意在生產中使用正確的密鑰對。

另請參閱有關Cryptography、Keys 和 HTTPS的文件以及有關為密鑰配置服務的位。從後一個文件中,這是生產案例的相關替代方案:

  • AddSigningCredential

添加一個簽名密鑰服務,為各種令牌創建/驗證服務提供指定的密鑰材料。您可以從證書儲存中傳入對證書的X509Certificate2、 a或對證書的引用。SigningCredential

引用自:https://stackoverflow.com/questions/46142991