auth_pam_set_pam_env

指令 `auth_pam_set_pam_env` 允许在认证期间将 NGINX 变量导出到 PAM 环境。

语法auth_pam_set_pam_env on | off;
默认值off
上下文http, server, location, limit_except
参数flag

说明

在 NGINX 的 PAM 认证机制中,auth_pam_set_pam_env 指令用于指定是否在用户认证期间将 NGINX 的环境变量传递给 PAM 栈。当该指令设置为 'on' 时,模块会导出 HOSTREQUEST 变量,使 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'。

← 返回所有指令