IdentityServer4中的签名凭据是什么?

时间:2017-09-10 16:32:46

标签: asp.net-core asp.net-identity identity identityserver4

我们正在使用我们的.NET Core Web应用程序实现Identity Server 4。

我通过了Identity Server文档。配置身份服务器(使用DI)时,有一行:

.AddTemporarySigningCredential

我正在努力了解这个签名凭据是什么,但无法理解。因此,我不知道是否可以使用内置临时,或者我应该提供不同的临时。

我的问题是,什么是签名凭证以及我应该如何使用它?

在Identity Server文档中,这是定义:

  

添加提供指定密钥材料的签名密钥服务   各种令牌创建/验证服务。你也可以通过   X509Certificate2,SigningCredential或对a的引用   来自证书商店的证书。

所以看起来很重要:)

1 个答案:

答案 0 :(得分:21)

授权服务器将使用密钥签署令牌。资源服务器应使用密钥验证令牌的完整性。它们一起形成不对称(例如公共/私人)密钥对。默认情况下,IdentityServer将发布用于在/.well-known/openid-configuration端点上验证令牌的公钥。

对于开发方案,您通常希望跳过正确管理秘密的大惊小怪(例如 非常重要,以便在生产中正确执行!)。对于这些开发方案,您可以选择使用AddTemporarySigningCredential等adhoc解决方案,该解决方案用于 .NET Core 1.x

使用 .NET Core 2.x ,这将change,您将需要AddDeveloperSigningCredential()扩展方法。

这回答了它是什么的问题。关于如何使用它:您只需根据应用程序ConfigureServices(...)类的Startup方法中的.NET Core版本调用所需的方法。

除此之外,您不需要做任何特别的事情,当然除非您在生产中使用正确的密钥对。

另请参阅Cryptography, Keys and HTTPSthe bit on Configuring Services for Keys上的文档。从后一个文档中,这是生产案例的相关替代方案:

  
      
  • AddSigningCredential

         

    添加签名密钥服务,该服务为各种令牌创建/验证服务提供指定的密钥材料。您可以从证书存储中传入X509Certificate2SigningCredential或对证书的引用。

  •