Обновите ключи проверки во время выполнения в IdentityServer - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь реализовать переключение клавиш в IdentityServer , но кажется, что ключи настраиваются только во время запуска.

Crypto Docs говорят, что я должен использовать AddValidationKeys. Я могу узнать, как использовать их во время запуска в загрузочных документах , и это прекрасно работает.

Можно ли использовать AddValidationKeys во время выполнения для обработки переключения клавиш, поэтому мне не нужно перезапускать службу для пролонгации ключей?

1 Ответ

1 голос
/ 23 апреля 2019

Это должно быть возможно, но не из коробки. Identity Server 4 чрезвычайно расширяем и в отношении ключей подписи использует ISigningCredentialStore для получения настроенных ключей подписи токена. По умолчанию это выглядит так, как будто он просто внедряет и возвращает все, что вы настроили в Startup.

Вам нужно будет создать собственную реализацию ISigningCredentialStore и добавить ее в DI. Identity Server 4 должен затем использовать хранилище для динамического извлечения ключей во время выполнения на основе вашей бизнес-логики.

public class CustomSigningCredentialsStore : ISigningCredentialStore
{
    public Task<SigningCredentials> GetSigningCredentialsAsync()
    {
        // Your business logic to retrieve signing keys at runtime
    }
}
...