Azure 函数自定义身份验证

Vij*_*han 4 azure azure-web-app-service azure-functions

我一直在寻找 azure 函数自定义身份验证的方法。我可以看到许多开箱即用的身份验证,包括功能键、AD 身份验证和其他身份提供者。我的方案是仅对使用自定义用户名和密码登录到 Web 应用程序的用户进行身份验证,我已将这些信息存储在数据库中。是否有开箱即用的实现?任何帮助将非常感激

小智 7

我遇到了类似的问题,因为我想使用由外部 OAuth 服务器发布的 JWT 访问令牌对请求进行身份验证。没有方便的中间件可以让您执行此操作,但是您可以创建自定义输入绑定,让您将ClaimsPrincipal 之类的内容注入函数定义中,例如

[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();
}
Run Code Online (Sandbox Code Playgroud)

这将身份验证与函数本身分开,使其更易于测试,但您仍需要添加授权检查并明确返回 40x 状态代码。

绑定 SDK 没有很好的文档记录,您需要将六个不同的类连接在一起才能使其工作,但我已经在此处编写了详细信息:使用绑定在 Azure 函数中进行自定义令牌身份验证。代码本身发布在GitHub 上——只需将 IValueProvider 实现中的代码替换为您自己的身份验证方法。

我希望这有帮助。我猜,另一种方法是编写一些样板代码,并将其添加到每个函数中?