可插拔认证模块

可插拔认证模块PAM)是一种将多个低级认证方案集成到高级应用程序编程接口(API)中的机制, 可以让依赖于身份验证的程序独立于底层的身份验证方案编写。PAM 最初由太阳微系统在1995年10月的开放软件基金会请求意见稿 (RFC)86.0中提出。它被用作通用桌面环境的身份验证框架。作为独立的开源基础结构,PAM 于1996年8月在 Linux PAM 项目中首次出现在 Red Hat Linux 3.0.4中。 当前, AIX操作系统DragonFly BSD[1]FreeBSDHP-UXLinuxmacOSNetBSDSolaris 均支持PAM。

由于不存在规范 PAM 行为的中心标准,后来有人尝试将 PAM 标准化为 X/Open UNIX 标准化过程的一部分,从而产生了X/Open Single Sign-onXSSO)标准。 该标准尚未获得批准,但是其草案可供后来的PAM实现(例如OpenPAM)参考。

批评 编辑

由于大多数 PAM 实现本身都不与远程客户端交互,PAM 本身无法实现 Kerberos(Unix环境中最常见的SSO类型)。这导致SSO被合并为可能的XSSO标准的“主要认证”部分,并且出现了诸如SPNEGO和 SASL 之类的技术。 这种功能上的缺乏也是 SSH 自己实现身份验证机制协商的原因。

在大多数PAM实现中,pam_krb5 只能获取票据授权票据(TGT),这涉及到提示用户输入凭据,并且仅用于SSO环境中的初始登录。如要在不提示用户再次输入凭据的前提下,获取特定应用程序的服务票证,则必须对该应用程序进行特定的编码以支持 Kerberos,这是因为 pam_krb5 本身无法获取服务票证(尽管有些 PAM-KRB5 版本正试图解决该问题)。[2]

参见 编辑

参考文献 编辑

  1. ^ PAM manual page of DragonFly BSD. [2021-07-16]. (原始内容存档于2021-07-19). 
  2. ^ PAM-KRB5. [2021-07-16]. (原始内容存档于2021-04-15). 

外部链接 编辑