Sun Java System Directory Server Enterprise Edition 6.0 管理指南

透過 DIGEST-MD5 的 SASL 認證

DIGEST-MD5 機制在進行用戶端認證時,會比較用戶端所傳送的雜湊值與使用者的密碼雜湊。但由於此機制必須讀取使用者密碼,因此所有想透過 DIGEST-MD5 進行認證的使用者,在目錄中都必須要有 {CLEAR} 密碼。將 {CLEAR} 密碼儲存到目錄時,您必須如第 6 章, 目錄伺服器存取控制中所述,確實透過 ACI 適當限制密碼值的存取權。此外,您還必須如為屬性值加密中所述,在尾碼中配置屬性加密。

Procedure配置 DIGEST-MD5 機制

下列程序說明如何配置目錄伺服器以使用 DIGEST-MD5。

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 使用 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
  2. 若 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 為下列其中一項:

    JES 安裝

    /usr/lib/mps/sasl2

    Zip 安裝

    install-path/dsee6/private/lib

  3. 針對 DIGEST-MD5 使用預設身份識別對映,或建立新的對映。

    如需相關資訊,請參閱DIGEST-MD5 身份識別對映

  4. 請確定所有將使用 DIGEST-MD5 而透過 SSL 存取伺服器的使用者,均已將密碼儲存在 {CLEAR} 中。

    如需密碼儲存機制,請參閱第 7 章, 目錄伺服器密碼策略

  5. 若修改了 SASL 配置項目或任何 DIGEST-MD5 身份識別對映項目,請重新啟動目錄伺服器。

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。

Procedure定義您自己的 DIGEST-MD5 身份識別對映

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

  1. 編輯預設對映項目,或在 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)
  2. 重新啟動目錄伺服器,使您的新對映生效。