a7adac8e837700b110f0ffc4762209d6.jpg
如果你的網站不是使用 IIS,而是使用 Apache + PHP,又希望能夠支援 Windows AD 做到 Singal Sing On 的話,可以適用 mod_auth_sspi 來達成喔!
  • 下載 mod_auth_sspi

    http://sourceforge.net/projects/mod-auth-sspi
    這是 mod_auth_sspi 在 sourceoforge 的專案,從這邊可以直接下載 mod_auth_sspi.so
     
  • 設定 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 就可以直接抓到他登入的帳號了!
  • 設定 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 就可以直接抓到他登入的帳號了!
  • 抓取 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 討論區載入中...