使用 Apache 支援 Windows Active Directory
  • 7,567 views,
  • 2013-09-03,
  • 上傳者: Kuann Hung,
  •  0
a7adac8e837700b110f0ffc4762209d6.jpg
如果你的網站不是使用 IIS,而是使用 Apache + PHP,又希望能夠支援 Windows AD 做到 Singal Sing On 的話,可以適用 mod_auth_sspi 來達成喔!
步驟
1.
下載 mod_auth_sspi

http://sourceforge.net/projects/mod-auth-sspi
這是 mod_auth_sspi 在 sourceoforge 的專案,從這邊可以直接下載 mod_auth_sspi.so
 
2.
設定 apache2.4
 
將 mod_authnz_sspi.so 複製到 apache 中的 modules 目錄

並在 httpd.conf 中加上這行載入 module
LoadModule sspi_auth_module modules/mod_auth_sspi.so
同時,在你所需要設定的 directory 或是 virtual host 中加上
 
AuthName "Local Intranet"

AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic Off
SSPIOmitDomain On

Require valid-user
這樣,只要 client 有登入 AD 就可以直接抓到他登入的帳號了!
3.
設定 apache2.2
將檔案複製到 apache 中的 modules 目錄
並在 httpd.conf 中加上這行載入 module
LoadModule sspi_auth_module modules/mod_auth_sspi.so
同時,在你所需要設定的 directory 或是 virtual host 中加上
AuthName "Local Intranet"
AuthType SSPI
SSPIAuthoritative On
SSPIOfferBasic On
SSPIBasicPreferred Off
SSPIAuth On
     
require valid-user
這樣,只要 client 有登入 AD 就可以直接抓到他登入的帳號了!
4.
抓取 NTLM 資訊
$cred = explode('\\',$_SERVER['REMOTE_USER']);
if (count($cred) == 1) array_unshift($cred, "(no domain info - perhaps SSPIOmitDomain is On)");
list($domain, $user) = $cred;
 
echo "You appear to be user <B>$user</B><BR/>";
echo "logged into the Windows NT domain <B>$domain</B>";
藉由這段程式就可以抓取到登入的 $user 與 $domain 資訊了!
很簡單吧!
 
 
Facebook 討論區載入中...
資料夾 :
標籤 :
發表時間 :
2013-09-03 18:33:30
觀看數 :
7,567
發表人 :
Kuann Hung
部門 :
老洪的 IT 學習系統
QR Code :