Как улучшить аутентификацию, чтобы отправлять запросы на согласие администратора только арендаторам из белого списка в AC#

Место общения программистов C#
Anonymous
Как улучшить аутентификацию, чтобы отправлять запросы на согласие администратора только арендаторам из белого списка в A

Сообщение Anonymous »

В моем приложении ASP.NET Core MVC я реализовал аутентификацию, чтобы гарантировать, что пользователи аутентифицируются только в том случае, если их идентификатор клиента внесен в белый список. Ниже приведен фрагмент кода, который я использую:

Код: Выделить всё

services.Configure(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.Events.OnTokenValidated = async context =>
{
string tenantId = context.SecurityToken.Claims.FirstOrDefault(x => x.Type == "tid" || x.Type == "http://schemas.microsoft.com/identity/claims/tenantid")?.Value;

if (string.IsNullOrWhiteSpace(tenantId))
throw new UnauthorizedAccessException("Unable to get tenantId from token.");

var dbContext = context.HttpContext.RequestServices.GetRequiredService();

var authorizedTenant = await dbContext.AuthorizedTenants.FirstOrDefaultAsync(t => t.TenantId == tenantId);

if (authorizedTenant == null)
throw new UnauthorizedTenantException("This tenant is not authorized");

};
options.Events.OnAuthenticationFailed = (context) =>
{
if (context.Exception != null && context.Exception is UnauthorizedTenantException)
{
context.Response.Redirect("/Home/UnauthorizedTenant");
context.HandleResponse(); // Suppress the exception
}

return Task.FromResult(0);
};
});
Это работает так, как ожидалось. Однако когда пользователь из арендаторов из белого и не из белого списка пытается войти в систему, приложение отправляет запрос согласия администратора соответствующему арендатору. Я хочу отправлять запросы на согласие администратора только арендаторам из белого списка. Я не хочу никакого взаимодействия с арендаторами, не внесенными в белый список, включая отправку запросов на согласие администратора.
Как я могу улучшить свой процесс аутентификации, чтобы гарантировать, что запросы на согласие администратора отправляются только арендаторам, включенным в белый список, и любой арендатор, не внесенный в белый список, полностью заблокирован от дальнейшего взаимодействия?

Подробнее здесь: https://stackoverflow.com/questions/790 ... hitelisted

Вернуться в «C#»