如何在 Azure 函数方法中使用 JWT 验证?
Posted
技术标签:
【中文标题】如何在 Azure 函数方法中使用 JWT 验证?【英文标题】:How to use JWT Validation within Azure Function Merthod? 【发布时间】:2021-09-15 13:51:02 【问题描述】:我从 API 移植了一些逻辑,我需要能够在 Azure 函数中使用这些逻辑
我需要对 JWT 令牌进行验证
我的函数将具有用户必须具有的特定角色才能从函数中获得响应
我在我的函数启动中得到了这个
var tokenOptions = configuration.GetSection("JwtIssuerOptions")
.Get<TokenConfiguration>();
var tokenValidationParameters = new TokenValidationParameters
// The signing key must match!
ValidateIssuerSigningKey = true,
IssuerSigningKey = tokenOptions.SecurityKey,
// Validate the JWT Issuer (iss) claim
ValidateIssuer = true,
ValidIssuer = tokenOptions.Issuer,
// Validate the JWT Audience (aud) claim
ValidateAudience = true,
ValidAudience = tokenOptions.Audience,
// Validate the token expiry
ValidateLifetime = true,
// If you want to allow a certain amount of clock drift, set that here:
ClockSkew = TimeSpan.Zero
;
services.Configure<IdentityConfiguration>(configuration.GetSection("IdentityConfiguration"));
services.AddScoped<CustomJwtBearerEvents>();
services
.AddAuthentication(o =>
o.DefaultForbidScheme = JwtBearerDefaults.AuthenticationScheme;
o.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
)
.AddJwtBearer(options =>
options.TokenValidationParameters = tokenValidationParameters;
options.EventsType = typeof(CustomJwtBearerEvents);
);
在 API 上下文中,我可以通过中间件包和 [Authorize(Roles="role1")] 来处理这个问题
但是,Azure 函数似乎不支持该功能
如何在 Azure 中实现相同的目标?
我有一个请求,上面已经有一个可供检查的令牌
保罗
【问题讨论】:
【参考方案1】:以下链接可能会有所帮助。 Azure 过滤器在 azure 中用作属性。
-
https://github.com/Azure/azure-webjobs-sdk/wiki/Function-Filters
https://markheath.net/post/secure-azure-functions-app-easy-auth-adb2c
【讨论】:
非常感谢我让它与函数属性一起工作以上是关于如何在 Azure 函数方法中使用 JWT 验证?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Azure API 管理中使用 validate-jwt 策略验证使用 RS256 算法签名的 JWT
如何在 Java 中验证 Azure B2C id 令牌的 JWT 签名?
如何在不使用库的情况下验证本机 Javascript 中的 Azure OAuth 访问 JWT 令牌?