我正在使用一个新的开发堆栈,我打算使用Azure功能无服务器。
我认为我的应用程序应使用ASP.NET身份来存储用户凭据和其他详细信息。而且他应该使用JWT令牌在身份数据库中进行身份验证。
我正在尝试掌握一些示例,这些示例可能有助于查看如何在Azure函数中实现ASP.NET身份。谁能将我指向正确的方向?
我认为没有一个有效的方法可以做到这一点。因为Azure函数在整个应用程序中实际上没有启动或入口点,您可以在其中插入OAuth,通常在启动.cs或global.asax中的MVC或Web应用程序中完成。
因此,这必须从Web应用程序中的工作中有所不同。
也许这可以有所帮助
https://vincentlauzon.com/2017/12/04/azure-functions-http-authorization-levels/
我最近不得不做类似的事情,即针对第三方OAuth Server发出的JWT Access代币进行身份验证。没有方便的中间件可以让您这样做,因此您被手动实现所困扰。
我使用的方法是创建一个自定义输入绑定,使您可以验证令牌并向函数定义注入索赔。结果功能定义看起来像这样:
[FunctionName("ExampleHttpFunction")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "example")] HttpRequest req,
ILogger log,
[AccessToken] ClaimsPrincipal principal)
{
log.LogInformation($"Request received for {principal.Identity.Name}.");
return new OkResult();
}
这至少确实与函数定义单独的身份验证,并使事物更具测试。
您需要将六个不同的类连接在一起以使其正常工作,但是我在这里写了详细信息:用于Azure功能的自定义令牌身份验证。您可以在github上查看一些示例代码。
希望这会有所帮助...