【发布时间】:2018-04-25 09:56:27
【问题描述】:
我在 aspnetcore API 服务(作为无状态服务在 Service Fabric 中运行)中设置了 IdentityServer4,该服务使用生成并保存在 Azure Key Vault 中的签名证书。在 Startup 类中,我使用 AddSigningCredential 方法设置初始签名证书,但我不确定在初始签名证书过期时使用新签名证书所需的步骤。
我已将 Key Vault 配置为在前一个证书过期之前生成一个新证书,并在我的服务中运行一个后台进程以定期从 Key Vault 检索证书并检查它是否与 IdentityServer 当前使用的证书不同。
我不知道如何设置新证书以供 IdentityServer 使用。据我所知,我不能再次使用 AddSigningCredential 方法,因为 DI 容器不允许在启动后注册新的依赖项。此外,为 ISigningCredentialStore 依赖项注册的 DefaultSigningCredentialsStore 不允许在构造后更新 SigningCredentials。
我是否必须编写自己的ISigningCredentialStore 和IValidationKeysStore 版本才能更新SigningCredentials?这似乎是一种常见用法,应该在产品本身中,还是我遗漏了什么?
【问题讨论】: