首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在azure函数中获取AccessToken和claims

如何在azure函数中获取AccessToken和claims
EN

Stack Overflow用户
提问于 2020-04-28 02:39:24
回答 2查看 1.5K关注 0票数 1

我正在尝试从一个azure函数的请求中获取access_token和它的声明。

在header中设置了承载令牌,但我无法获得使用函数的FunctionsStartup的声明。

可以在azure函数中获取声明吗?如果是,请谁能提供一个例子?

我试了一整天,也在寻找,但我找不到一个明确的例子。

提前感谢!

编辑:

当我在函数的FunctionsStartup中添加授权时,出现下一个错误。builder.Services.AddAuthorization()

我已经通过services.AddAuthentication("Bearer").AddJwtBearer((Action):JwtBearer配置了身份验证

EN

回答 2

Stack Overflow用户

发布于 2020-04-28 03:10:48

您可以通过使用Azure函数的声明原则绑定来做到这一点。

代码语言:javascript
复制
using System.Net;
using Microsoft.AspNetCore.Mvc;
using System.Security.Claims;

public static IActionResult Run(HttpRequest req, ClaimsPrincipal principal, ILogger log)
{
     // ...
     return new OkResult();
}

请参阅:http://sadomovalex.blogspot.com/2018/12/get-current-users-principal-in-azure.html

票数 1
EN

Stack Overflow用户

发布于 2020-07-06 08:44:43

从我的Azure函数获取声明时,我也遇到了一些问题。我最终从HttpRequestMessage对象本身获得了它们,如下所示:

代码语言:javascript
复制
var principal = req.GetRequestContext().Principal as ClaimsPrincipal;
var roles = principal.Claims.Where(e => e.Type == "roles").Select(e => e.Value);            log.Info(string.Join(",", roles));

请注意,我使用的是Microsoft.NET.Sdk.Functions版本1.0.37,不确定这是否适用于您的场景,但您可以尝试一下。

微软已声明不应使用ClaimsPrincipal.Current,因此该选项可能不适用于您的https://docs.microsoft.com/en-us/aspnet/core/migration/claimsprincipal-current?view=aspnetcore-2.1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61466012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档