Как использовать динамический ApiSecret для защиты API с помощью промежуточного программного обеспечения IdentityServer - PullRequest
0 голосов
/ 15 ноября 2018

Я защищаю 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.

Возможно ли это? Как можно это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...