可插拔認證模塊

可插拔認證模塊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). 

外部連結