PHP 集成 AD 域认证
来源:互联网 发布:怎么取消淘宝网店 编辑:程序博客网 时间:2024/05/11 13:08
PHP 集成 AD 域认证
Apache Server 本身没有集成 Windows AD 的 Module,必须要载入协力厂商的 Module 才可以实现此功能,这个协力厂商的 Module 名称是 mod_auth_ssip.so 可以从着名的开源软体网站 sourceforge.net 上取得,最新版本是 1.0.4。安装及配置的步骤如下:
1)从 http://sourceforge.net/projects/mod-auth-sspi 下载解压
2) Copy mod_auth_ssip.so 到 $APACHE_HOME/modules/ ( $APACHE_HOME 是 apache 安装的根目录)
3)打开 $APACHE_HOME/conf/httpd.conf, 在大约 Line 69
LoadModule asis_module modules/mod_asis.so
的下面加上如下代码
LoadModule sspi_auth_module modules/mod_auth_sspi.so
4) Restart Apache Server.
Client Side Configure
在需要验证的目录下新建一个 .htaccess 的 file. File 内容如下:
AuthName "eHR System"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
require valid-user
ErrorDocument 401 "<script>alert('Your Account or Password is Error. \r\nClick [OK] button System will redirect to eHR login screen automaticlly.');</script> <meta http-equiv='refresh' content='0;url= ../ess/'/>"
这是要调用 mod_auth_ssip.so 必须的几项设定,更多的选项请参考上面解压目录裡的 /doc INSTALL.
这个档裡的内容也可以放在上面的 httpd.conf 档中,根据你个人的喜好,如果不想改 Server 的配置,或是你没有许可权更新 Server 的 Config 档的时候可以採用上面的方式。
PHP 代码
// index.php<?php
if (isset ( $_SERVER ['REMOTE_USER'] ) && ! empty ( $_SERVER ['REMOTE_USER'] )) {
session_start ();
header ( 'Location: ../ess/includes/login.php?remote_user=' . urlencode ( $_SERVER ['REMOTE_USER'] ) . '&sessid=' . session_id () );
exit ();
} else {
header ( 'Location: ../ess/' );
exit ();
} // end if
?>
注意事项:
1.使用 .htaccess 方式时,PHP的 curl 模组一定要打开,在 php.ini 中寻找
;extension=php_curl.dll
把前面的分号去掉。
2.选择合适的 apache 和 mod_auth_sspi.so 版本。
已知的 Issue mod_auth_sspi.so 1.0.4 + Apache2.x 时,在Server 是 windows XP 或 Windows Server 2003 平台,IE 下面会无法提交 Post 变数。也就是说通过 mod_auth_sspi 来认证后的其它页无法进行POST,在 PHP 程式裡无法得到 POST 的变数,所以在使用之前请改在 Get 方式。
3.访问请用主机名称称或是功能变数名称,不要用 IP 来访问,否则系统每次都 Popup 出输入 AD 帐号和密码的 Dialog Window.
4.打开IE 的Automatic logon with current user and password,Internet Options->Security->Customer Level->User Authentication如下图:
勾选后就第一次会提示输入 AD Account 和 Password,像 SSO 一样,之后就会自动 Login .
- PHP 集成 AD 域认证
- vmware esx集成AD域认证
- JAVA中如何集成AD域用户认证
- Java利用jcifs集成AD域用户认证
- Java通过jcifs集成AD域用户实现认证
- AD 域 实现 MSCHAPV2 认证
- redmine与AD集成实现账号统一认证
- php集成动态口令认证
- C#实现AD域认证用户源代码
- C#实现AD域认证用户源代码
- Java实现AD域登录认证
- cas在windows下集成AD域
- Java 中AD认证
- openvpn部署之部署基于AD域认证
- filenet设置双ad域、多ad域、域集群认证
- 应用系统AD-及AD认证
- peoplesoft AD集成配置
- PHP操作AD域入门(一)
- IOS开发网络篇之──ASIHTTPRequest详解
- 算法为啥子那么难呢???俺为啥子要学算法慎??
- STL — — map
- 如果我们分手了:伤感日志
- 猜想1
- PHP 集成 AD 域认证
- 字符加密
- [小e分享]之张烈-Oracle 10g数据库讲义电子书(附pdf下载)
- MyEclipse使用
- Android Ndk(Beginner ‘s guide)(1.3)
- 10月的笔试面试
- 设计模式之七 ------Adapter(适配器)
- 梳理shell编程遗忘的知识点笔记(一)
- 一个字的伤感网名又是一个伤感的故事