У нас есть одно веб-приложение .net Core MVC, которое будет использоваться несколькими клиентами.У каждого клиента будет несколько пользователей.
Мы намерены использовать AWS Cognito для аутентификации пользователей, и, читая об этом, я вижу, что пул пользователей для каждого клиента является одним из рекомендуемых маршрутов.Это хорошо работает для нашего варианта использования, так как клиент A может захотеть пользователя с именем пользователя «Bob», а клиент B может захотеть другого пользователя с именем пользователя «Bob».
Все, что я прочитал, предполагает, что это возможноно вот проблема:
В ядре .net я должен указать некоторые детали, относящиеся к конкретному пулу приложений при запуске:
.AddOpenIdConnect(async options =>
{
options.ResponseType = OpenIdConnectResponseType.Code;
options.ConfigurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(
services.BuildServiceProvider().GetService<IOpenIdDiscovery>().OpenIdConfigurationUrl(),
new OpenIdConnectConfigurationRetriever(),
services.BuildServiceProvider().GetService<System.Net.Http.HttpClient>());
options.Authority = Configuration["OpenIdAuthority"];
options.ClientId = Configuration["AuthCodeClientId"];
options.ClientSecret = Configuration["AuthCodeClientSecret"];
Как мне получить приложениеиспользовать многопользовательские пулы?
Чтобы уточнить вышеизложенное, я полагаю, что идеальным решением было бы:
1) Мы направляем пользователя на определенный URL-адрес для входа в пул пользователей.2) После входа пользователь перенаправляется на центральный сайт.3) Мы каким-то образом определяем, в каком пользовательском пуле они проходили аутентификацию, и соответственно устанавливаем ClientId и ClientSecret для сеанса.