认证与数据签名技术全解析
1. 可插拔认证模块(PAM)概述
随着新存储方法和服务的出现,对登录流程进行改进以适应新认证方法变得十分必要,由此催生了可插拔认证模块(PAM)。PAM 的开发者通过将认证过程编写为后端使用一组可单独堆叠和配置的插件,为未来的认证管理提供了一种灵活的方式。现在,开发者可以链接 PAM 库,使应用程序以与操作系统相同的方式透明地对用户进行认证,无论是使用 /etc/passwd 文件、LDAP、NIS 还是其他方式。此外,还可以开发自定义的 PAM 模块,提供从自定义登录和注销功能到强制使用强密码等各种功能。目前,已经存在用于 LDAP、Oracle、MySQL 等的 PAM 模块,并且这些模块都在积极维护和开发中。
2. PAM 库的使用
使用 PAM 库创建使用 PAM 进行认证的应用程序相对简单。通过使应用程序支持 PAM,可以利用 PAM 的认证、会话管理和密码处理功能。结合 SSL 代码和 PAM 示例,可以创建一个能够使用 PAM 允许的任何方式(包括 LDAP)对客户端进行认证的服务器。
大多数 GNU/Linux 发行版默认包含 PAM。PAM 的配置相当简单,通常所有配置都保存在单个文件 /etc/pam.conf 中。虽然本文不详细讨论 PAM 的配置,但为了使示例能够正确编译和运行,必须安装并配置好 PAM。
3. 对话函数
在应用程序中使用 PAM 库与使用其他库略有不同,因为不仅要调用库中的函数,库还会调用应用程序代码中的一个函数,这个函数称为对话函数。PAM 使用该函数与应用程序进行通信,这样可以在
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



