Я защищаю API с помощью промежуточного программного обеспечения IdentityServer, взаимодействующего с сервером идентификации.
В API у меня есть код, подобный:
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(
options =>
{
options.Authority = identityServerSettings.AuthorityUri;
options.ApiName = identityServerSettings.ApiName;
options.ApiSecret = secret;
}
);
Я хочу установить промежуточное ПО на ApiSecret
, но я хочу получить этот секрет из хранилища Хасикорпа.
Я хочу настроить промежуточное программное обеспечение так, чтобы оно получало значения и устанавливало ApiSecret для каждого запроса.
Что-то вроде:
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(
options =>
{
options.Authority = identityServerSettings.AuthorityUri;
options.ApiName = identityServerSettings.ApiName;
options.ApiSecret = () => GetSecret();
}
);
Цель этого - включить поворот ключа без перезапуска службы в хранилище hashicorp.
И этот API, и IdentityServer будут запрашивать секрет из хранилища, и это позволит вращать секреты без перезапуска служб API или IdentityServer.
Возможно ли это? Как можно это сделать?