.NET 6, Identity Server 5, управление клиентами

В шаблонах используютсяappsettings.jsonфайл для настройки клиента. AddClients()метод внутриAddApiAuthorization()регистрирует, а затем переходит к добавлению клиентов из файла appsettings.

      builder.AddInMemoryClients(Enumerable.Empty<Client>());

Можно ли изменитьEnumerable.Empty<Client>кConcurrentBag<Client>и добавлять клиентов во время выполнения?

Наверное, я не совсем правильно обо всём этом думаю.

1 ответ

Я нашел правильный способ добавления клиентов в код, созданный шаблоном dotnet.

вводитьIOptions<ApiAuthorizationOptions>и используйте_options.Value.Clientsобъект для добавления клиента.

Следующий пример должен помочь вам встать на правильный путь.

      var props = new Dictionary<string, string>();
props.Add("Profile", "IdentityServerSPA");

clients.Add(new Client
{
    ClientId = "Template",

    AllowedGrantTypes = GrantTypes.Code,
    RequireClientSecret = false,

    RedirectUris = { "/authentication/login-callback" },
    PostLogoutRedirectUris = { "/authentication/logout-callback" },

    AllowedScopes = { "openid", "profile", "TemplateAPI" },

    Properties = props
});

Надеюсь, это сэкономит вам немного времени.

Другие вопросы по тегам