auth_pam
auth_pam 指令为 NGINX 中指定的 HTTP 上下文配置 PAM(可插拔身份验证模块)身份验证。
PAM authentication dynamic module for NGINX
·
httpserverlocationlimit_except
语法auth_pam "realm";
默认值none
上下文http, server, location, limit_except
参数1
说明
auth_pam 指令是 NGINX 的 PAM 身份验证动态模块的一部分,允许管理员使用 PAM 实现身份验证机制,以保护由 NGINX 提供服务的网站的某些区域。通过在 http、server、location 或 limit_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 所需的文件具有适当的访问权限。
⚠
如果身份验证失败,用户可能会收到令人困惑的错误消息,因此请考虑实现对用户友好的错误处理。
⚠
避免在没有适当访问控制的情况下暴露敏感区域,尤其是在生产环境中。