auth_jwt_require

在 NGINX 配置中,'auth_jwt_require' 指令指定了额外的 JWT 验证标准。

语法auth_jwt_require value ... [error=401 | 403];
默认值none
上下文http, server, location
参数1+

说明

'auth_jwt_require' 指令用于定义在认证过程中某个 JSON Web Token (JWT) 被视为有效时必须满足的具体要求。该指令接受一个或多个参数,用于指定 JWT 必须具备的 claim 才会被接受。该指令还可以在 JWT 不满足指定条件时设置要返回的特定错误代码,从而增强对授权响应的控制。\n\n参数可以包括后跟期望值的 claim 名称,该指令可以与 'auth_jwt' 指令结合使用,以在这些附加检查的同时要求进行 JWT 验证。如果提交的 JWT 未满足 'auth_jwt_require' 中列出的要求,服务器将以配置的错误代码响应(通常为 401 或 403)。此功能允许基于 JWT 内容(例如角色、scopes 或保护特定资源所需的其他 claims)实施细粒度的认证策略。\n\n在实践中,该指令在 locations、server 或 http contexts 中使用,通过在允许访问前强制满足特定条件,可以大幅增强安全模型。例如,如果用户的 JWT claim 中没有分配正确的角色,它可以拒绝访问,从而有效管理受保护资源的访问控制。正确配置该指令非常重要,以避免意外的访问拒绝或安全漏洞,因为如果处理不当,JWT 内容很容易被篡改。

配置示例

location /api/secure {
    auth_jwt on;
    auth_jwt_require "role:admin" error=403;
}

确保在 'auth_jwt_require' 中指定的声明与 JWT 的格式和数据完全匹配,因为不匹配可能导致访问被拒绝。

在选择错误代码时要谨慎;如果用户角色可能影响可访问性,使用 '401' 来表示未授权用户可能并不总是合适。

配置的顺序很重要;确保 'auth_jwt_require' 被正确放置在适当的上下文中,以便应用于正确的位置。

← 返回所有指令