Я новичок в аутентификации с помощью asp.Net, и хотя последние пару дней я искал в Интернете, мне хочется бегать по кругу, и я до сих пор не могу найти точку зрения. начать с.
Проблема:
У нас есть веб-приложение (Vue3/Typescript) который получает свои данные из веб-API (asp.net ядро). Веб-приложение и веб-API размещаются через IIS на одном сервере, поэтому мы внедрили политики CORS. Когда пользователи открывают веб-приложение в браузере, мы хотим аутентифицировать пользователя в локальном AD с использованием единого входа (SSO) через веб-API. AD существует в той же сети. Мы не хотим сохранять какую-либо информацию о пользователе в веб-API дольше, чем существует сеанс. Так что нет никаких таблиц для сохранения пользователей, ролей или чего-то еще. Роли должны быть настроены в AD, чтобы указать, кто имеет доступ к веб-API и может вызывать определенные конечные точки.
Я уже читал статьи в Microsoft Docs, но не до конца все понял. Прочитав статьи, я до сих пор не могу ответить на следующие вопросы:
[*]Всегда ли мне нужна личность?
[*]Где нужно ли мне реализовать информацию об AD, в которой я хочу аутентифицировать пользователя?
[*]В чем разница между реализацией Azure AD (AAD) и локальным AD, когда дело доходит до настройки приложение?
[*]Какую роль играет OpenId Connect (OIDC) и OAuth: необходимы или необязательны?
[*]Получаю ли я веб-токен JSON (JWT) из локального AD?
Я добавил промежуточное программное обеспечение для аутентификации в Startup.cs, но это все, что мне удалось.
Код: Выделить всё
public void ConfigureServices(IServiceCollection services)
{
services.Configure(options =>
{
options.AutomaticAuthentication = false;
});
services.AddDbContext();
services.AddSingleton();
services.AddAuthentication();
services.AddCors();
services.AddControllers();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors();
app.UseSession();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints();
}
На следующем рисунке показана цель, которую мы пытаемся достичь, но мы не уверены, удастся ли это сделать и как это сделать. возможно, поскольку мы не хотим хранить какую-либо пользовательскую информацию в базе данных приложения.
[img]https://i.sstatic. net/PqU29.png[/img]
Подробнее здесь: https://stackoverflow.com/questions/676 ... re-web-api
Мобильная версия