首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NGINX JWT身份验证验证特定的JWT索赔(iss、aud等)

NGINX JWT身份验证验证特定的JWT索赔(iss、aud等)
EN

Stack Overflow用户
提问于 2021-01-14 04:43:25
回答 1查看 581关注 0票数 2

希望NGINX基于OAuth2令牌对传入的请求进行身份验证,包括验证特定的令牌声明,例如"aud“受众声明、"iss”发行者声明等。

ngx_http_auth_jwt_module (module.html)只对令牌进行验证,以确保它由预期的当事方和有效期进行签名。

问题是,如果您使用的是云IdP (例如Azure ),上面的验证是不够的,因为用于签名令牌的密钥在不同的客户租约之间共享。因此,令牌中的索赔需要进一步验证,包括发行者、受众等。

怎样才能用NGINX完成这件事呢?但是,下面的模块支持索赔验证:https://github.com/auth0/nginx-jwt

EN

回答 1

Stack Overflow用户

发布于 2022-04-12 20:38:52

ngx_http_auth_jwt_module公开包含从JWT有效负载解码的声明的变量,包括audiss,它们将相应地出现在变量$jwt_claim_aud$jwt_claim_iss中。您可以在文档下的嵌入式变量部分中阅读更多内容。

有了这些变量,您可以结合使用它们和auth_jwt_require指令在访问阶段验证声明:

auth_jwt_require定义了用于JWT验证的附加条件。该值可以包含文本、变量及其组合。只有当所有值都不是空值且不等于“0”时,身份验证才会成功。 地图$jwt_claim_iss $valid_jwt_iss {“好”1;}.auth_jwt_require $valid_jwt_iss;

还有一件事,虽然ngx_http_auth_jwt_module是商业发行版的一部分(如果已经有Nginx,您肯定应该充分利用它),还有社区为Nginx编写的相当多免费JWT模块。其中一些还支持变量和索赔验证。

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

https://stackoverflow.com/questions/65713529

复制
相关文章

相似问题

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