Sun Java System Web Proxy Server 4.0.8 管理指南

使用者/群組的存取控制

您可以限制只讓特定使用者或群組存取您的伺服器。使用者/群組存取控制會要求使用者先提供使用者名稱和密碼,之後才能存取伺服器。伺服器會將用戶端憑證中的資訊或用戶端憑證本身,與某個目錄伺服器項目進行比對。

Administration Server 只使用基本認證。如果需要在 Administration Server 上進行用戶端認證,您必須在 obj.conf 中手動編輯 ACL 檔案,將此方法變更為 SSL。

使用者/群組認證是由為伺服器配置的目錄服務執行的。如需更多資訊,請參閱配置目錄服務

目錄服務實作存取控制時使用的資訊,可以從下列任一來源取得:

當伺服器使用外部 LDAP 型的目錄服務時,伺服器實例支援以下類型的使用者/群組認證方法:

當伺服器使用內部檔案型目錄服務時,針對伺服器實例支援的使用者/群組認證方法包括:

使用者/群組認證機制要求使用者先通過認證驗證,之後才能取得存取權。使用者在認證時須提供使用者名稱和密碼、使用用戶端憑證或使用摘要式認證外掛程式,以驗證自己的身分。使用用戶端憑證時需要加密。

預設認證

預設認證是首選方法。[Default] 設定使用 obj.conf 檔案中的預設方法,如果 obj.conf 中沒有任何設定,則使用 [Basic] 方法。如果選取 [Default],ACL 規則不會指定 ACL 檔案中的方法。如果選擇 [Default],您只需編輯 obj.conf 檔案中的一行文字,就可以輕鬆變更所有 ACL 的方法。

基本認證

基本認證會要求使用者先提供使用者名稱和密碼,之後才能存取伺服器。基本認證為預設的設定。您必須在 LDAP 資料庫 (如 Sun Java System Directory Server) 或檔案中建立及儲存使用者和群組的清單。您所使用的目錄伺服器不能與您的 Proxy Server 安裝在相同的伺服器根目錄下,不過您可以使用安裝在遠端電腦上的目錄伺服器。

當使用者嘗試存取具有使用者/群組認證機制的資源時,系統會提示使用者提供使用者名稱和密碼。伺服器所收到的資訊是否加密,取決於您的伺服器是否開啟了加密功能 (啟用 SSL)。


備註 –

如果使用不具 SSL 加密的基本認證,就會在網路上以未加密的文字傳送使用者名稱和密碼。網路封包可能會被截取,因而使用者名稱和密碼可能會被盜用。基本認證與 SSL 加密、主機/IP 認證或這兩者一起使用時的效果最佳。使用摘要式認證可以避免此問題。


如果認證成功,使用者會看到所請求的資源。如果使用者名稱或密碼無效,系統將會發出一則訊息並拒絕存取。

您可以自訂未經授權的使用者可收到的訊息。如需更多資訊,請參閱拒絕存取時的回應

SSL 認證

伺服器可以利用下列兩種方法,以安全憑證確認使用者的身分:

如果將伺服器配置為使用憑證資訊來認證用戶端,則伺服器會執行下列動作:

要求用戶端認證以控制對特定資源進行存取的作法,與要求所有針對伺服器的連線需經用戶端認證不同。如果將伺服器配置為要求對所有連線進行用戶端認證,則用戶端必須只能提供由可信任的 CA 核發的有效憑證。如果將伺服器配置為使用 SSL 方法來認證使用者和群組,則必須執行下列動作:

當您需要具有存取控制的用戶端認證時,您的 Proxy Server 必須啟用 SSL 加密。請參閱第 5 章使用憑證和金鑰以取得有關啟用 SSL 的更多資訊。

若要成功地對採用 SSL 認證的資源進行存取,用戶端憑證必須來自 Proxy Server 所信任的 CA。如果將 Proxy Server 的 certmap.conf 檔案配置為將瀏覽器中的用戶端憑證與目錄伺服器中的用戶端憑證進行比對,則必須在此目錄伺服器中發佈用戶端憑證。不過,您也可以將 certmap.conf 檔案配置為只將憑證中所選取的資訊與目錄伺服器項目進行比對。例如,您可以將 certmap.conf 配置為只將瀏覽器憑證中的使用者 ID 和電子郵件地址,與目錄伺服器項目進行比對。如需有關 certmap.conf 和憑證對映的更多資訊,請參閱第 5 章使用憑證和金鑰。另請參閱「Sun Java System Web Proxy Server 4.0.8 Configuration File Reference」

摘要式認證

您可以將 Proxy Server 配置為使用 LDAP 型或檔案型目錄服務來執行摘要式認證。

摘要式認證可讓使用者依據使用者名稱和密碼進行認證,但不需要以明文方式傳送使用者名稱和密碼。瀏覽器會利用使用者密碼和 Proxy Server 提供的某些資訊,使用 MD5 演算法來建立摘要值。

當伺服器使用 LDAP 型的目錄服務執行摘要式認證時,也會使用摘要式認證外掛程式在伺服器端計算此摘要值,並將計算結果與用戶端提供的摘要值進行比對。如果兩個摘要值相符,該使用者便通過認證。為了使這項功能得以正常運作,您的目錄伺服器必須能存取明文的使用者密碼。Sun Java System Directory Server 包含一個反向密碼外掛程式,使用對稱式加密演算法以加密形式儲存資料,稍後可解密成原來的形式。只有 Directory Server 保存了資料的金鑰。

對於 LDAP 型的摘要式認證,您必須啟用隨附於 Proxy Server 的反向密碼外掛程式和摘要式認證專用外掛程式。若要配置您的 Proxy Server 以處理摘要式認證,請設定 dbswitch.conf 檔案中資料庫定義的 digestauth 特性,該檔案位於 server-root/userdb/

以下是 dbswitch.conf 檔案的範例。


directory default ldap://<host_name>:<port>
default:binddn cn=Directory Manager
default:encoded bindpw ***********
default:digestauth on


directory default ldap://<host_name>:<port>/
default:binddn cn=Directory Manager
default:encoded bindpw ***********
default:digestauthstate on

伺服器會嘗試依據指定的 ACL 方法來認證 LDAP 資料庫,如摘要式認證所示。如果您未指定 ACL 方法,當需要進行認證時,伺服器會使用摘要式認證或基本認證;當不需要進行認證時,伺服器則會使用基本認證。

下表列示認證資料庫支援和不支援的摘要式認證。

表 8–1 產生摘要式認證挑戰

ACL 方法 

認證資料庫支援 

認證資料庫不支援 

預設值 

未指定 

摘要和基本 

基本 

基本 

基本 

基本 

摘要 

摘要 

錯誤 

當處理設定 method=digestACL 時,伺服器會嘗試執行下列動作以進行驗證:

安裝摘要式認證外掛程式

對於使用 LDAP 型之目錄服務的摘要式認證,您必須安裝摘要式認證外掛程式。此外掛程式會在伺服器端計算出一個摘要值,並將此摘要值與用戶端提供的摘要值進行比對。如果兩個摘要值相符,該使用者便通過認證。

如果您使用的是檔案型的認證資料庫,便不需要安裝摘要式認證外掛程式。

在 UNIX 上安裝摘要式認證外掛程式

摘要式認證外掛程式包括一個共用程式庫和一個 ldif 檔案:

Procedure在 UNIX 上安裝摘要式認證外掛程式

開始之前
  1. 若要安裝外掛程式,請鍵入以下指令:

    % ldapmodify -D "cn=Directory Manager" -w password -a < libdigest-plugin.ldif

在 Windows 上安裝摘要式認證外掛程式

您必須將數個 .dll 檔案從 Proxy Server 安裝複製到您的 Sun Java System Directory Server 伺服器電腦上,具備摘要外掛程式的 Directory Server 才能正確啟動。

Procedure在 Windows 上安裝摘要式認證外掛程式

  1. 存取 Proxy Server 中的共用程式庫,位於 server-root \bin\proxy\bin

  2. nsldap32v50.dlllibspnr4.dlllibplds4.dll 檔案複製到適當的目錄中:

  3. 將這些檔案貼上到以下任一位置:

    • \Winnt\system32

      • Sun Java System Directory Server 安裝目錄: server-root\bin\sldap\server

將 Sun Java System Directory Server 設定為使用 DES 演算法

將儲存摘要密碼的屬性加密時,需要 DES 演算法。

Procedure將 Directory Server 設定為使用 DES 演算法

  1. 啟動 Sun Java System Directory Server 主控台。

  2. 開啟您的 Sun ONE Directory Server 5.1 SP1 (或更高版本) 實例。

  3. 選擇 [Configuration] 標籤。

  4. 按一下外掛程式旁邊的 + 號。

  5. 選取 DES Plug-in。

  6. 選擇 [Add] 以增加一個新屬性。

  7. 鍵入 iplanetReversiblePassword

  8. 按一下 [Save]。

  9. 設定摘要式認證密碼。


    備註 –

    伺服器會使用位於物件類別 iplanetReversiblePassword 中的 iplanetReversiblePassword 屬性。若要在使用者的 iplanetReversiblePassword 屬性中使用摘要式認證密碼,輸入的項目中必須包括 iplanetReversiblePasswordobject 物件。

    您可以使用 ldapmodify 或 Directory Server 管理介面完成此作業。


    使用 ldapmodify

    建立 digest.ldif 檔案以儲存 LDAP 指令。增加密碼的程序共有兩個步驟。

    1. 將物件類別增加至 digest.ldif

      該檔案如下所示 (您可以根據 Directory Server 的使用者和 ACL 建立多個 ldif 檔案):


      dn:uid=user1,dc=india,dc=sun,dc=com
      changetype:modify
      add:objectclass
      objectclass:iplanetReversiblePasswordobject
      
      dn:uid=user1,dc=india,dc=india,dc=sun,dc=com
      changetype:modify
      add:iplanetReversiblePassword
      iplanetReversiblePassword:user1
    2. # ldapmodify -D “cn={CN_Value}” -w <password> -a <ldif_file_name>

  10. 重新啟動您的 Sun Java System Directory Server 實例,並驗證使用者屬性是否已增加至 Directory Server 資料庫。

其他認證

您可以使用存取控制 API 來建立自訂認證方法。