У меня есть настройка IdentityServer4 в службе API aspnetcore (запущенной в Service Fabric в качестве службы без сохранения состояния), которая использует сертификат подписи, созданный и хранящийся в хранилище ключей Azure. В классе Startup я использую метод AddSigningCredential
для установки начального сертификата подписи, но я не уверен в том, какие шаги необходимы для использования нового сертификата подписи, когда истекает срок действия первоначального сертификата.
У меня в Key Vault настроено создание нового сертификата до истечения срока действия предыдущего, и в моем сервисе запущен фоновый процесс для периодического получения сертификата из Key Vault и проверки, отличается ли он от того, который в настоящее время используется IdentityServer.
Чего я не знаю, так это установить новый сертификат для использования IdentityServer. Насколько я могу судить, я не могу снова использовать метод AddSigningCredential
, поскольку DI-контейнер не позволяет регистрировать новые зависимости после запуска. Кроме того, DefaultSigningCredentialsStore
, зарегистрированный для зависимости ISigningCredentialStore
, не позволяет обновлять SigningCredentials
после построения.
Должен ли я написать свою собственную версию ISigningCredentialStore
и IValidationKeysStore
, чтобы можно было обновлять SigningCredentials
? Похоже, что это будет обычное использование и должно быть в самом продукте, или я что-то упустил?