auth_pam

auth_pam 指令为 NGINX 中指定的 HTTP 上下文配置 PAM(可插拔身份验证模块)身份验证。

语法auth_pam "realm";
默认值none
上下文http, server, location, limit_except
参数1

说明

auth_pam 指令是 NGINX 的 PAM 身份验证动态模块的一部分,允许管理员使用 PAM 实现身份验证机制,以保护由 NGINX 提供服务的网站的某些区域。通过在 httpserverlocationlimit_except 上下文中设置此指令,当用户尝试访问受保护资源时,会向其展示指定的身份验证域。它与 auth_pam_service_name 指令配合使用,后者指定了用于身份验证流程的 PAM 服务。

当用户访问受保护资源时,NGINX 会根据 auth_pam_service_name 定义的服务名称向 PAM 系统查询用户凭据;如果未显式设置,该服务名称默认为 "nginx"。该机制需要正确配置 PAM 以连接到所需的身份验证后端,例如 Unix 密码数据库或外部 LDAP 服务。还可以使用 auth_pam_set_pam_env 指令为身份验证会话设置与 PAM 相关的环境变量,从而增强动态 Web 应用中身份验证场景的灵活性。

使用 auth_pam 时,一个重要的注意事项是:如果使用标准的 Unix 身份验证方法,运行 NGINX 服务的用户必须具有访问必要文件(例如 /etc/shadow)的适当权限。这可能带来安全问题,需要仔细考虑用户权限和文件访问限制。

配置示例

location /secure {
    auth_pam              "Secure Zone";
    auth_pam_service_name "nginx";
}

确保 Web 服务器用户对 PAM 所需的文件具有适当的访问权限。

如果身份验证失败,用户可能会收到令人困惑的错误消息,因此请考虑实现对用户友好的错误处理。

避免在没有适当访问控制的情况下暴露敏感区域,尤其是在生产环境中。

← 返回所有指令