您可以將 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=digest 的 ACL 時,伺服器會嘗試執行下列動作以進行驗證:
檢查授權請求標頭。如果找不到標頭,則會產生帶有摘要挑戰的 401 回應,並且停止處理。
檢查授權類型。如果授權類型為「摘要」,則伺服器會執行下列動作:
檢查 nonce。如果 nonce 不是由此伺服器所產生的有效且未過期的 nonce,則會產生 401 回應,並且會停止處理。如果 nonce 已過期,則會產生 401 回應 (並設定 stale=true),並且會停止處理。
您可以配置 nonce 的有效時間,方法是變更 magnus.conf 檔案中的 DigestStaleTimeout 參數值,此檔案位於 server-root /proxy-server_name/config/。若要設定該值,請將以下行增加至 magnus.conf:
DigestStaleTimeout seconds
其中 seconds 代表 nonce 有效的秒數。指定的秒數過後,目前認證將過期並要求使用者進行新的認證。
檢查範圍。如果範圍不相符,則會產生 401 回應,並且會停止處理。
如果認證目錄是 LDAP 型的,請檢查使用者是否在 LDAP 目錄中;或者,如果認證目錄是檔案型的,則請檢查使用者是否在檔案資料庫中。如果找不到使用者,則會產生 401 回應,並且會停止處理。
從目錄伺服器或檔案資料庫取得 request-digest 值,並檢查是否與用戶端的 request-digest 值相符。如果找不到相符項目,則會產生 401 回應,並且會停止處理。
建構 Authorization-Info 標頭並將此標頭插入到伺服器標頭中。