【发布时间】:2020-06-04 16:54:56
【问题描述】:
我有 WEB API CORE 3.0 后端应用程序。其控制器受 Azure AD 保护。 为此,我使用 microsoft identity 网络库。
在源代码中我是这样配置的:
public void ConfigureServices(IServiceCollection services)
{
Trace.TraceInformation("Configuring services");
services.AddProtectedWebApi(Configuration, subscribeToJwtBearerMiddlewareDiagnosticsEvents: true)
.AddProtectedApiCallsWebApis(Configuration)
.AddInMemoryTokenCaches();
...
为了保护控制器,我使用 [Authorize]。
一切都很完美。
现在我想添加第二种方式来授权用户(连同 Azure AD)。 我希望用户能够使用 Azure AD 或 JWT 登录。
是否可以为同一个控制器实现它?
【问题讨论】:
-
身份验证是每个 web 应用程序,而不是控制器。您发布的代码会影响整个应用程序,而不仅仅是单个控制器。
Authorize,顾名思义,影响授权(是否允许已通过身份验证的用户做某事) -
@PanagiotisKanavos 是的,我知道。 [Authorize] 是让控制器方法只能被授权用户调用。是否可以更改现有的授权机制以允许非 AzureAD 用户使用控制器。我应该从哪里开始?
标签: c# jwt azure-active-directory asp.net-core-webapi