我们正在使用.NET Core Web应用程序实现身份服务器4。
我去了身份服务器文档。配置身份服务器(使用DI)时,有一行:
.AddTemporarySigningCredential
我试图了解该签名凭据是什么,但无法解决。因此,我不知道是否可以使用内置的内置,或者我是否应该提供不同的内置。
我的问题是,什么是签名证书,我应该如何使用它?
在身份服务器文档中,这是定义:
添加了一个签名密钥服务,该服务将指定的密钥材料提供给 各种代币创建/验证服务。你可以通过 x509certificate2,签名或对 证书商店的证书。
所以看来很重要:)
授权服务器将用密钥签名。资源服务器应验证令牌与密钥的完整性。它们共同形成一个(通常是不对称的,例如公共/私人)密钥(对)。默认情况下,IdentityServer将发布用于通过/.well-known/openid-configuration
端点验证令牌的公共密钥。
对于开发方案,您通常想跳过正确管理像Said Keys这样的秘密的大惊小怪(真的很重要,在生产中正确地做!)。对于这些开发方案,您可以选择使用 AddTemporarySigningCredential
(用于 .net core 1.x )的ADHOC解决方案。
使用 .net core 2.x 这将改变,您将需要AddDeveloperSigningCredential()
扩展方法。
回答的问题是什么。关于如何使用它:您只需调用所需的方法,具体取决于您应用程序Startup
类的ConfigureServices(...)
方法中的.NET核心版本。
除此之外,您不需要做任何特别的事情,除了要注意您在生产中使用适当的钥匙对。
另请参见密码,密钥和HTTP的文档以及为密钥配置服务的位。从后一个文件中,这是生产案例的相关替代方法:
AddSigningCredential
添加了一个签名密钥服务,该服务为各种令牌创建/验证服务提供指定的密钥材料。您可以通过
X509Certificate2
,SigningCredential
或对证书存储的证书的引用。