【发布时间】:2020-09-23 03:56:38
【问题描述】:
我正在构建一个基于 .Net Core 3.1 + Angular 模板的应用程序。 应用程序正在使用 Azure AD 对用户进行身份验证。
后端配置如下:
services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
.AddAzureADBearer(options => Configuration.Bind("AzureActiveDirectory", options));
前端使用@azure/msal-angular 在第一次未经身份验证的调用时将用户重定向到 Api。 这很好用。
现在我想进一步保护应用程序。我希望在用户未通过身份验证时下载角度文件或任何静态文件不。
我该如何做到这一点?如果用户未通过身份验证,如何保护根文件夹上的应用程序并将用户重定向到 Azure AD 登录页面?
【问题讨论】:
-
当您在令牌上收到 401 错误时,您显然会重定向到登录提示,对吗?
-
对,但这是在做这项工作的 javascript,这意味着 javascript 代码已经下载。如果用户未通过身份验证,我希望根本不下载该应用程序。 javascript 由后端在 ClientApp 文件夹中提供服务,它在后端使用 app.UseSpa 进行配置。
-
但是要查找用户是否经过身份验证,必须从客户端发生一些请求,这意味着需要在那里运行一些代码,这些代码显然会提供给浏览器。
-
在第一个 GET "/" 上,后端应该能够测试上下文是否经过身份验证并重定向到 AzureAd 登录页面。客户端有请求,但是如果javascript可以重定向,后端也可以。
标签: angular asp.net-core azure-active-directory asp.net-core-webapi msal