【发布时间】:2023-03-05 04:33:01
【问题描述】:
免责声明:
我在使用 asp.Net 进行身份验证方面非常陌生,尽管过去几天在网上搜索过,但我感觉就像在兜圈子,但仍然找不到起点。
问题:
我们有一个 Web 应用程序 (Vue3/Typescript),它从 Web API (asp.net core) 获取数据。 Web 应用程序和 Web API 通过 IIS 托管在同一台服务器上,因此我们实施了 CORS 策略。当用户在浏览器中打开 Web 应用程序时,我们希望通过 Web API 针对使用单点登录 (SSO) 的本地 AD 对用户进行身份验证。 AD存在于同一网络中。我们不希望在 Web API 中保存有关用户的任何信息超过会话存在的时间。因此没有用于保存用户、角色或其他任何内容的表格。应在 AD 中配置角色以指定谁有权访问 Web API 并可以调用某些端点。
我已经阅读了有关 Microsoft Docs 的文章,但并未完全理解所有内容。阅读文章后,我仍然难以回答以下问题:
- 我总是需要身份吗?
- 我在哪里实施有关我要对用户进行身份验证的 AD 的信息?
- 在配置应用程序时,实施 Azure AD (AAD) 和本地 AD 有什么区别?
- 哪些角色扮演 OpenId Connect (OIDC) 和 OAuth,是必要的还是可选的?
- 我是否从本地 AD 获得 JSON Web 令牌 (JWT)?
我在 Startup.cs 中添加了身份验证中间件,但仅此而已。
public void ConfigureServices(IServiceCollection services)
{
services.Configure<IISServerOptions>(options =>
{
options.AutomaticAuthentication = false;
});
services.AddDbContext<MyDbContext>();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
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();
}
感谢您对正确方向的任何提示
下图显示了我们尝试实现的目标,但我们不确定是否/如何实现,因为我们不想在应用程序数据库中存储任何用户信息。
【问题讨论】:
标签: c# asp.net-core active-directory