当前位置首页 > Apache知识

Apache整合AcitveDirectory達成onesinglesignon

阅读次数:285 次  来源:admin  发布时间:

原文地址: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 O

SSPIAuthoritative O

SSPIOfferBasic O

require valid-user

修改後應該會像這樣

lt;Directory "D:/Develop/htdocs">

Options Indexes FollowSymLink

AllowOverride All

Order allow,deny

Allow from all

AuthName "A Protected Place"

AuthType SSPI

SSPIDomain tpe.compalcomm.com

SSPIAuth O

SSPIAuthoritative O

SSPIOfferBasic O

require valid-user

lt;/Directory>

3. 重新啟動Apache

[如何抓取使用者登入AD的帳號]

程式只有一行,真的只有一行.

$_SERVER["REMOTE_USER"] 就只需要這行就可以抓到使用者登入AD的帳號.

後面要怎麼達成one single signon,我相信各位程式高手都知道該怎麼做了,我就不獻醜了.

[如何抓取使用者在AD中的其他資訊]

我之前有找到一個adLDAP.php的class,只需要確定ldap_binding正常,

然後將剛剛抓到的使用者AD帳號傳進去,AD裡面所有的資訊全部都可以抓出來.

adLDAP http://adldap.sourceforge.net/

上一篇:fedoraSSH
下一篇:iis不能使用的一种情况