原文地址:http://blog.hsdn.net/1266.html
我的公司使用AD進行使用者驗證,因此在使用者操作的便利性考量前提下.如何讓使用者不需要重覆輸入帳號與密碼,而直接抓取使用者已經登入AD的帳號資訊,已經變成系統開發必須要考量的項目之一 (至少我自己是這樣認為啦 @@)
.NET整合AD的資訊已經有大大實做成功並且實際運用於目前的系統上.由於都是微軟家族的產品,因此整合上比較容易.
但是目前公司存在有Apache+PHP+MySQL
on Windows的架構,因此如何讓這樣的架構也可以快速的抓取使用者AD資訊是我今天要介紹的項目.
[版本需求]
1. Apache 2.x 以上
2. PHP和MySQL都沒有特殊的版本要求,不過我還是建議安裝PHP
5.x和MySQL 4.1.x以上的版本
[安裝過程]
1. 將mod_auth_sspi.so (下載位址)放到path_to_apache/modules這個目錄下面
2.
在httpd.conf裡面加上下面兩段
(1) LoadModule sspi_auth_module
modules/mod_auth_sspi.so
(2)在需要進行驗證的目錄設定加上下面的內容,並且將AllowOverride開啟
AuthName "A Protected Place"
AuthType
SSPI
SSPIDomain
tpe.compalcomm.com
SSPIAuth
On
SSPIAuthoritative
On
SSPIOfferBasic
On
require
valid-user
修改後應該會像這樣
<Directory
"D:/Develop/htdocs">
Options Indexes
FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
AuthName "A Protected
Place"
AuthType
SSPI
SSPIDomain
tpe.compalcomm.com
SSPIAuth
On
SSPIAuthoritative
On
SSPIOfferBasic
On
require valid-user
</Directory>
3. 重新啟動Apache
[如何抓取使用者登入AD的帳號]
程式只有一行,真的只有一行.
$_SERVER["REMOTE_USER"]
就只需要這行就可以抓到使用者登入AD的帳號.
後面要怎麼達成one single
signon,我相信各位程式高手都知道該怎麼做了,我就不獻醜了.
[如何抓取使用者在AD中的其他資訊]
我之前有找到一個adLDAP.php的class,只需要確定ldap_binding正常,
然後將剛剛抓到的使用者AD帳號傳進去,AD裡面所有的資訊全部都可以抓出來.
adLDAP
http://adldap.sourceforge.net/
Apache 整合 Acitve Directory 達成 one single signon,布布扣,bubuko.com
Apache 整合 Acitve Directory 達成 one single signon
原文地址:http://www.cnblogs.com/eastson/p/3722104.html