auth_jwt_validate_sub
`auth_jwt_validate_sub` 指令在授权检查期间验证 JWT 中的 `sub` 声明。
Secure your NGINX locations with JWT
·
httpserverlocation
语法auth_jwt_validate_sub on | off;
默认值off
上下文http, server, location
参数flag
说明
auth_jwt_validate_sub 指令用于 NGINX 配置中,以强制验证 JSON Web Token (JWT) 中的 sub(主体)声明。sub 声明通常标识 JWT 的主体(principal),例如用户 ID。可以将该指令设置为 on,以确保 sub 声明的值与预期值匹配,从而在防止未授权访问方面增加一层安全性。启用后,该指令会确保 JWT 内的声明与服务器定义的授权策略一致,从而增强访问控制的完整性。
在配置此指令时,其存在会影响验证成功和失败的处理场景。如果执行检查但该声明未能通过验证,则可以指示 NGINX 采取特定的响应操作,例如在与由像 auth_jwt_redirect 这样的指令定义的其他认证机制集成时重定向到登录页面。验证的处理封装在处理 JWT 的 NGINX 模块中,因此理解相关的 JWT 设置以确保功能的无缝衔接至关重要。
http、server 和 location 等上下文均可应用此指令,这为在整个服务器配置中的使用提供了灵活性。将 auth_jwt_validate_sub 设置为 off 或根本不定义它,表示不会对 sub 声明进行验证,如果不适当管理,可能导致未授权访问的风险。
配置示例
location /protected {
auth_jwt_enabled on;
auth_jwt_validate_sub on;
auth_jwt_key my_jwt_secret;
auth_jwt_loginurl /login;
}⚠
确保正在验证的 JWTs 实际包含 sub 声明;缺少该声明可能导致身份验证失败。
⚠
将指令设置为 on 而不进行适当的声明检查,如果未正确配置,可能会无意中授予不必要的访问权限。