auth_pam_set_pam_env
指令 `auth_pam_set_pam_env` 允许在认证期间将 NGINX 变量导出到 PAM 环境。
PAM authentication dynamic module for NGINX
·
httpserverlocationlimit_except
语法auth_pam_set_pam_env on | off;
默认值off
上下文http, server, location, limit_except
参数flag
说明
在 NGINX 的 PAM 认证机制中,auth_pam_set_pam_env 指令用于指定是否在用户认证期间将 NGINX 的环境变量传递给 PAM 栈。当该指令设置为 'on' 时,模块会导出 HOST 和 REQUEST 变量,使 PAM 模块能够访问关于传入请求的信息。这对于需要请求上下文以做出认证决策的模块尤其有用,例如使用 pam_exec.so 执行自定义脚本,根据请求细节验证用户访问权限。
该指令的参数是一个布尔标志,可设置为 'on' 或 'off'。默认情况下,如果未显式设置,该标志为 off,这意味着 PAM 环境不会接收 NGINX 的变量。用户应考虑导出这些变量对安全性和性能的影响,因为向认证机制暴露更多信息可能会增加攻击面。该指令可以放在 http、server、location 或 limit_except 上下文中,根据组织的认证需求提供灵活的配置。
配置示例
location /pam_exec_protected {
auth_pam "Exec Zone";
auth_pam_service_name "nginx_exec";
auth_pam_set_pam_env on;
}⚠
请记得检查 PAM 模块的权限,因为它们必须在不具有 root 权限的情况下拥有正确的访问权限。
⚠
确保 environment variables 不会暴露敏感信息或造成安全漏洞。
⚠
如果不需要 PAM environment variables,建议为性能和安全原因将此指令设置为 'off'。