DIGEST-MD5 機制在進行用戶端認證時,會比較用戶端所傳送的雜湊值與使用者的密碼雜湊。但由於此機制必須讀取使用者密碼,因此所有想透過 DIGEST-MD5 進行認證的使用者,在目錄中都必須要有 {CLEAR} 密碼。將 {CLEAR} 密碼儲存到目錄時,您必須如第 6 章, 目錄伺服器存取控制中所述,確實透過 ACI 適當限制密碼值的存取權。此外,您還必須如為屬性值加密中所述,在尾碼中配置屬性加密。
下列程序說明如何配置目錄伺服器以使用 DIGEST-MD5。
無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。
使用 ldapsearch 指令,驗證 DIGEST-MD5 是根項目上的 supportedSASLMechanisms 屬性值。
例如,下列指令可顯示哪些是啟用的 SASL 機制:
$ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \ -s base -b "" "(objectclass=*)" supportedSASLMechanisms Enter bind password: dn: supportedSASLMechanisms: EXTERNAL supportedSASLMechanisms: DIGEST-MD5 supportedSASLMechanisms: GSSAPI ^D |
若 DIGEST-MD5 尚未啟用,請加以啟用。
$ ldapmodify -h host -p port -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: cn=SASL, cn=security, cn=config changetype: modify add: dsSaslPluginsEnable dsSaslPluginsEnable: DIGEST-MD5 - replace: dsSaslPluginsPath dsSaslPluginsPath: SASL-library ^D |
其中 SASL-library 為下列其中一項:
/usr/lib/mps/sasl2
install-path/dsee6/private/lib
針對 DIGEST-MD5 使用預設身份識別對映,或建立新的對映。
如需相關資訊,請參閱DIGEST-MD5 身份識別對映。
請確定所有將使用 DIGEST-MD5 而透過 SSL 存取伺服器的使用者,均已將密碼儲存在 {CLEAR} 中。
如需密碼儲存機制,請參閱第 7 章, 目錄伺服器密碼策略。
若修改了 SASL 配置項目或任何 DIGEST-MD5 身份識別對映項目,請重新啟動目錄伺服器。
SASL 機制的身份識別對映會嘗試比對 SASL 身份識別的憑證與目錄中的使用者項目。如果在對映中找不到對應 SASL 身份識別的 DN,認證即會失敗。如需此機制的完整說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」。
SASL 身份識別是一個名為 Principal 的字串,用以表示各機制之特定格式下的使用者。在 DIGEST-MD5 中,用戶端應建立含有 dn: 前綴與 LDAP DN,或含有 u: 前綴與任何用戶端指定文字的主體。對映期間,用戶端所傳送的主體可用於 ${Principal} 預留位置中。
伺服器配置的下列項目,即為 DIGEST-MD5 的預設身份識別對映:
dn: cn=default,cn=DIGEST-MD5,cn=identity mapping,cn=config objectClass: top objectClass: nsContainer objectClass: dsIdentityMapping objectClass: dsPatternMatching cn: default dsMatching-pattern: \${Principal} dsMatching-regexp: dn:(.*) dsMappedDN: \$1 |
此身份識別對映會假設主體的 dn 欄位含有現有使用者在目錄中的實際 DN。
無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。
編輯預設對映項目,或在 cn=DIGEST-MD5,cn=identity mapping,cn=config 下建立新的對映項目。
instance-path/ldif/identityMapping_Examples.ldif 中含有 DIGEST-MD5 的對映範例。
此範例假設不合格的主體文字欄位內,含有想要的身份識別之使用者名稱。下列指令將說明此對映的定義方式:
$ ldapmodify -a -h host1 -p 1636 -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: cn=unqualified-username,cn=DIGEST-MD5,cn=identity mapping cn=config objectclass: dsIdentityMapping objectclass: dsPatternMatching objectclass: nsContainer objectclass: top cn: unqualified-username dsMatching-pattern: \${Principal} dsMatching-regexp: u:(.*)@(.*)\\.com dsSearchBaseDN: dc=\$2 dsSearchFilter: (uid=\$1) |
重新啟動目錄伺服器,使您的新對映生效。