需求
公司内部有各种各样的系统,每个系统都要用户登录密码,能否只采用一个用户名和密码来访问所有系统?
我的方案
1. 所有的用户都采用公司邮箱和邮箱密码来登录系统,一旦用户离职后,删除邮箱后保证用户不能再登录到各个系统。
2. 基于 Linux PAM 机制
3. 所有的应用都在Nginx 后面,Nginx 负责与PAM系统的交互。
4. 各个系统的应用程序应该不关心用户认证,可以通过HTTP Header获得当前登录的用户。
具体步骤
1. 根据认证应用系统编写认证的URL请求
比如 http://xxxxx/login.jsp?user=xxxx&password=xxxx
认证成功返回 0,不成功返回 -1
2. 采用PAM_SCRIPT 来整合这个URL认证
注意:不要用 yum install pam_script
1) 下载并编译 PAM_SCRIPT 模块
下载地址:https://github.com/jeroennijhof/pam_script
2) 编译步骤