IdentityServer4中的AddTemporarySigningCredential与AddSigningCredential

时间:2017-01-10 15:53:23

标签: identityserver4

根据文档,IdentityServer使用非对称密钥对来签署和验证JWT。 可以在配置中使用AddTemporarySigningCredential(),每次启动时创建一个新的RSA,或者使用带有RSA密钥或证书的AddSigningCredential(..)

该文档提到临时版本对于开发情况很有用,但它并没有说明在生产环境中使用它时的缺点。

我有一个aspnetcore web api,其中客户端使用IdentityServer4进行身份验证。该系统目前在temporarysigningcredential工作正常,但我想知道使用其他变体是否有任何好处。

谢谢,

2 个答案:

答案 0 :(得分:16)

而不是AddTemporarySigningCredential考虑使用 AddDeveloperSigningCredential

来自http://docs.identityserver.io/en/release/topics/startup.html#refstartupkeymaterial

<强> AddDeveloperSigningCredential

  

与临时签名凭证的目的相同。但是这个版本   将密钥保留在文件系统中,以便在服务器之间保持稳定   重新启动。这解决了客户端/ api元数据缓存时的问题   在开发过程中失去同步。

警告: AddDeveloperSigningCredential 只有在IdentityServer主机在 SINGLE 计算机上运行时才能使用,对于生产服务器场,您需要使用 AddSigningCredential

答案 1 :(得分:15)

缺点是,每次重新启动IdentityServer时,密钥材料都会更改 - 或者IOW - 所有使用以前密钥材料签名的令牌都将无法验证。

“临时”实际上仅适用于您没有其他关键材料的情况。