Azure 函数 2.x - 获取当前用户的声明

Azure Function 2.x - Get Current User's Claims

我有一个 Azure 函数 2.x(Asp.net 核心)并且正在使用 Azure AD 进行身份验证。我正在尝试在身份验证后访问登录用户的声明。以前使用 Azure Functions 1.x 我们将使用 ClaimsPrincipal.Current 获取声明,如下面的代码所示:

using System.Net;
using System.Collections.Generic;
using System.Security.Claims; 
using Microsoft.IdentityModel.Clients.ActiveDirectory; 

public static HttpResponseMessage Run(HttpRequestMessage req, out object document, TraceWriter log)
{
    string name = ClaimsPrincipal.Current.FindFirst("name").Value; 

    log.Info($"name is {name}");

    return req.CreateResponse(HttpStatusCode.OK, "Done");
}   

关于我们如何使用 .Net Core 访问 Azure Functions 2.x 中的声明的任何指南?

此功能在 Azure Functions 2.0 的 C# 中是 now supported。您现在可以将 ClaimsPrincipal 作为参数添加到 HttpTrigger 函数的签名中,或者您可以通过 req.HttpContext.UserHttpRequest 对象上访问它。

应该很快就会支持 JavaScript,最终所有语言都应该支持此功能。

让我在这里 post 一个代码示例,看看 ClaimsPrincipal 参数在哪里:

[FunctionName("MyFunctionName")]
public static HttpResponseMessage Run(
            [HttpTrigger(
                AuthorizationLevel.Anonymous,
                "get", "post",
                Route = "MyFunctionName")]HttpRequestMessage req, 
            ILogger log, 
            ClaimsPrincipal claimsPrincipal)
{
    // My function code here...
}