Apache 整合 Acitve Directory 達成 one single signon
原文地址: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/
相关文章
- maven报 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile(defalut-compile) on project 项目名称:No such compile 'javac'
- 再见 2020!Apache RocketMQ 发布 4.8.0,DLedger 模式全面提升!
- 使用Apache FtpServer搭建FTP服务器 [FlashFXP]
- 数据湖之Hudi(16):Apache Hudi 中数据写操作流程
- Apache Shiro的运行流程和权限控制方式分析
- apache 不能访问 cgi-bin目录下的文件
- 看CarbonData如何用四招助力Apache Spark
- apache kafka监控系列-KafkaOffsetMonitor
- Windows下Subversion和Apache的安装及配置(一)
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
- 大数据Hadoop之——Apache Hudi 数据湖实战操作(Spark,Flink与Hudi整合)
- Apache Pulsar 技术系列 – 基于不同部署策略和配置策略的容灾保障