IdentityServer4中的AddTemporarySigningCredential与AddSigningCredential

cel*_*lik 12 identityserver4

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

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

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

谢谢,

MiF*_*vil 18

而不是AddTemporarySigningCredential考虑使用AddDeveloperSigningCredential

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

AddDeveloperSigningCredential

与临时签名凭证的目的相同.但是这个版本持久存在文件系统的密钥,因此它在服务器重启之间保持稳定.这解决了客户端/ api元数据缓存在开发期间不同步时的问题.

警告:AddDeveloperSigningCredential只能当IdentityServer主机是运行使用机器,生产农场,你需要使用AddSigningCredential.

  • AddTemporary似乎在最新的预览支持.net核心中缺失? (2认同)
  • @RasmusChristensen,正确,请参阅https://github.com/IdentityServer/IdentityServer4/issues/1139 (2认同)

lea*_*ege 16

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

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