2008年8月15日

Apache 整合微軟 Active Directory 做身份認證

本週在公司實作了透過企業已建置的 Active Directory 環境提供 阿怕氣 網頁伺服器的基本用戶身份認證功能,這是在 肥多啦•九世 上實作的,相關過程簡單記錄如下:

設定程序

  1. 安裝 Apache 網頁伺服器並確認可以正常瀏覽測試頁面
  2. 安裝 Apache LDAP 支援模組 mod_authz_ldap
    # yum -y install mod_authz_ldap
  3. 指定阿怕氣需加載 mod_authz_ldap 模組,請在 /etc/httpd/conf/http.conf 中加入以下內容:
    LoadModule authz_ldap_module modules/mod_authz_ldap.so
  4. 使用 LDAP 瀏覽工具檢視 Active Directory 上的設定,確認需驗證使用者所在的上層節點位置,如:
    OU=資訊部,OU=使用者帳號,DC=company,DC=net,DC=tw
  5. 準備一可以登入 Active Directory 系統的驗證用帳號,這個帳號不一定要擁有實體信箱等等設定,如:ldap 。
  6. 編輯 /etc/httpd/conf.d/authz_ldap.conf,加入網頁路徑的存取權限設定。
  7. 重新啟動阿怕氣並瀏覽前述設定的網頁路徑看是否可通過驗證。
authz_ldap.conf 設定
# 應進行使用者身份認證之網頁路徑設定
<Location /private>
  AuthzLDAPMethod          ldap
  AuthzLDAPAuthoritative   on
# Active Directory 主機名稱
  AuthzLDAPServer         ads.company.net.tw:389
# 使用者搜尋起始節點  
  AuthzLDAPUserBase       "OU=單位名稱,OU=使用者帳號,DC=company,DC=net,DC=tw"
# 作為驗證的欄位名稱,AD 使用此欄位進行驗證
  AuthzLDAPUserKey         sAMAccountName
# 搜尋範圍由前述起始節點往子節點進行搜尋
  AuthzLDAPUserScope       subtree
# 用於確保登入 AD 之預備帳號名稱,請使用 EMAIL 格式
  AuthzLDAPBindDN          ldap@company.net.tw
# 前述預備帳號之登入密碼
  AuthzLDAPBindPassword    ldapPassword

# 使用基本驗證模式 AuthType basic # 顯示在帳號輸入視窗上的訊息 AuthName "Training Documents System" require valid-user </Location>