我有一个ASP .NET Core应用程序,当前正在为JWT使用身份验证架构,在该应用程序中,它以JWT的形式检查Bearer令牌的“授权”标头,然后从中建立身份。这是我们要在此服务上使用的主要身份验证架构,但是我想使用基本身份验证来代替一个MVC Controller端点。该端点将受到我们无法控制的客户端的WebHook的攻击。该第三方客户端使用基本身份验证作为唯一的身份验证方法,因此我们不得不使用它。
经过一番谷歌搜索后,看来ASP.NET Core本身不支持“基本身份验证”,因为它存在漏洞,但是我们需要使用它,因为这是我们第三方webhook客户端支持的所有功能。
在阅读了有关MSDN上的身份验证和授权的文档后,我对如何轻松配置它感到困惑。看起来似乎很简单,但是这里有很多我以前从未使用过的概念,例如AuthorizationHandlers
,Policies
,AuthenticationMiddleware
等。另一方面,我不是确定如何做到这一点,因此这是唯一使用此身份验证架构的路由。
有人可以指出我应该使用哪种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();
}
我不确定从哪里开始