我可以使用Google令牌调用/.auth/login/google端点,并取回简单的auth令牌。
然后我可以调用/.auth/me端点并获取我的个人资料信息。
但是在我的代码中,Thread.CurrentPrincipal.Identity为null。我似乎找不到任何解决方案。我已验证我的请求已将x-zumo-auth头设置为从登录端点检索到的简单身份验证令牌。当然,该功能设置为匿名。
我希望我缺少一些简单的东西。感谢您的帮助。
答案 0 :(得分:2)
自2018年11月28日起,此功能现已预览。此功能仅对Functions 2.x运行时可用。目前,它也仅适用于.NET语言。
ClaimsPrincipal可作为请求上下文的一部分提供,例如 如以下示例所示:
using System.Net; using Microsoft.AspNetCore.Mvc; using System.Security.Claims; public static IActionResult Run(HttpRequest req, ILogger log) { ClaimsPrincipal identities = req.HttpContext.User; // ... return new OkResult(); }
或者,ClaimsPrincipal可以简单地作为 函数签名中的附加参数:
using System.Net; using Microsoft.AspNetCore.Mvc; using System.Security.Claims; using Newtonsoft.Json.Linq; public static void Run(JObject input, ClaimsPrincipal principal, ILogger log) { // ... return; }
答案 1 :(得分:1)
找到了答案,但仍然令我感到惊讶的是
https://docs.microsoft.com/en-us/azure/app-service/app-service-authentication-overview
对于Azure Functions,对于.NET代码而言,ClaimsPrincipal.Current没有被合并,但是您仍然可以在请求标头中找到用户声明。
但是,我看到了无数的示例,人们看到了在Azure函数中引用它们的方式,好像应该将其水化一样。
我确实可以在标题中找到所需的声明,并且可以使用该声明,但是我感觉仍然缺少某些东西...