用于特定路由的ASP .NET Core自定义身份验证中间件

时间:2019-09-18 22:22:27

标签: c# asp.net

我有一个ASP .NET Core应用程序,当前正在为JWT使用身份验证架构,在该应用程序中,它以JWT的形式检查Bearer令牌的“授权”标头,然后从中建立身份。这是我们要在此服务上使用的主要身份验证架构,但是我想使用基本身份验证来代替一个MVC Controller端点。该端点将受到我们无法控制的客户端的WebHook的攻击。该第三方客户端使用基本身份验证作为唯一的身份验证方法,因此我们不得不使用它。

经过一番谷歌搜索后,看来ASP.NET Core本身不支持“基本身份验证”,因为它存在漏洞,但是我们需要使用它,因为这是我们第三方webhook客户端支持的所有功能。

在阅读了有关MSDN上的身份验证和授权的文档后,我对如何轻松配置它感到困惑。看起来似乎很简单,但是这里有很多我以前从未使用过的概念,例如AuthorizationHandlersPoliciesAuthenticationMiddleware等。另一方面,我不是确定如何做到这一点,因此这是唯一使用此身份验证架构的路由。

有人可以指出我应该使用哪种ASP.NET构造正确的方向来在单个路由上实施Basic Auth。最好是我可以在route方法上使用Attribute来指示它应使用Basic Auth,如下所示:

[HttpGet]
[BasicAuthentication]
public async Task<IActionResult> Test([FromBody] string foo)
{
     return new OkResult();
}

OR

[HttpGet]
[Authorize("Basic")]
public async Task<IActionResult> Test([FromBody] string foo)
{
     return new OkResult();
}

我不确定从哪里开始

0 个答案:

没有答案