.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
});
Надеюсь, это сэкономит вам немного времени.