Azure函数身份验证具有ASP.NET身份和JWT令牌



我正在使用一个新的开发堆栈,我打算使用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上查看一些示例代码。

希望这会有所帮助...

最新更新