该框架为与验证相关的活动提供了统一的执行方式。采用该方式,应用程序开发者不必了解验证策略的语义即可使用 PAM 服务。借助 PAM,管理员可以根据特定系统的需要调整验证过程,而不必更改任何应用程序。管理员只需调整 PAM 配置即可。
下图说明了 PAM 体系结构。
图 1-1 PAM 体系结构
该体系结构的工作原理如下:
应用程序通过 PAM 应用编程接口 (Application Programming Interface, API) 与 PAM 框架进行通信。
有关使用 API 的信息,请参见 pam(3PAM) 手册页和面向开发者的 Oracle Solaris 11 安全性指南 中的第 3 章 编写 PAM 应用程序和服务。
PAM 服务模块通过 PAM 服务提供者接口 (Service Provider Interface, SPI) 与 PAM 框架进行通信。有关更多信息,请参见 pam_sm(3PAM) 手册页。
有关所选服务模块的简要说明,请参见PAM 服务模块以及 pam.conf(4) 和 pam_user_policy(5) 手册页。
管理员可以配置一个或多个模块系列来管理站点要求。该模块系列称为 PAM 栈。该栈将按顺序进行评估。如果应用程序需要多个 PAM 栈,应用程序开发者必须创建多个服务名称。例如,sshd 守护进程提供了几个用于 PAM 的服务名称,这些服务名称是 PAM 必需的。有关 sshd 守护进程的 PAM 服务名称的列表,请在 sshd(1M) 手册页中搜索单词 PAM。有关 PAM 栈的详细信息,请参见PAM 栈。PAM 栈示例中逐步介绍了 PAM 验证栈。