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

透過 GSSAPI 的 SASL 認證 (僅限 Solaris 作業系統)

透過 SASL 的通用安全服務 API (GSSAPI) 可讓您使用協力廠商的安全性系統 (例如 Kerberos V5) 來認證用戶端。GSSAPI 程式庫僅適用於 Solaris 作業系統 SPARC® 平台。Sun 建議您在 Sun Enterprise Authentication MechanismTM 1.0.1 伺服器上安裝 Kerberos V5 實作。

此伺服器會使用 GSSAPI 驗證使用者的身份識別。接著,SASL 機制會套用 GSSAPI 對映規則,以取得此連線期間對所有作業而言皆為連結 DN 的 DN。

Procedure配置 Kerberos 系統

根據製造商的指示配置 Kerberos 軟體。若您使用 Sun Enterprise Authentication Mechanism 1.0.1 伺服器,請執行此程序。

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

  1. 配置 /etc/krb5 中的檔案。

  2. 建立用以儲存使用者與服務的 Kerberos 資料庫。

  3. 在資料庫中,建立 LDAP 服務的主體。


    $ ldap/server-FQDN@realm
    

    其中 server-FQDN 是您目錄伺服器完全合格的網域名稱。

  4. 啟動 Kerberos 常駐程式程序。


    備註 –

    DNS 必須配置於主機電腦上。


    如需這些步驟的詳細指示,請參閱軟體文件。另請參閱使用 GSSAPI 與 SASL 配置 Kerberos 認證的範例

Procedure配置 GSSAPI 機制

下列程序說明如何配置目錄伺服器以在 Solaris 作業系統上使用 GSSAPI:

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

  1. GSSAPI 身份識別對映中所述,建立 GSSAPI 的預設身份識別對映與所有自訂對映。

  2. 建立用以儲存服務金鑰的 keytab。

    您的 LDAP 服務金鑰會儲存在 keytab 中。

    1. 請確定只有目錄伺服器使用者可讀取 keytab。

    2. 將檔案名稱變更為預設值 /etc/krb5/krb5.keytab 以外的名稱。

    3. 設定環境變數 KRB5_KTNAME,以確保所使用的是新的 keytab,而非預設 keytab。

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

    請注意,DNS 必須配置於主機電腦上。

GSSAPI 身份識別對映

SASL 機制的身份識別對映會嘗試比對 SASL 身份識別的憑證與目錄中的使用者項目。如果在對映中找不到對應 SASL 身份識別的 DN,認證即會失敗。

SASL 身份識別是一個名為 Principal 的字串,用以表示各機制之特定格式下的使用者。在 Kerberos 中使用 GSSAPI 時,主體將是 uid [/instance][@ realm] 格式的身份識別。uid 可包含一個可選擇的 instance 識別碼,再加上通常為網域名稱的可選擇 realm。例如,下列字串皆為有效的使用者主體:


bjensen
bjensen/Sales
bjensen@EXAMPLE.COM
bjensen/Sales@EXAMPLE.COM

目錄中最初並未定義 GSSAPI 對映。根據您的用戶端定義所使用之主體的方式,定義預設對映以及所需要的任何自訂對映。

Procedure定義 GSSAPI 的身份識別對映

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

  1. cn=GSSAPI,cn=identity mapping, cn=config 下建立新的對映項目。

    如需身份識別對映項目中的屬性定義,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Reference」instance-path/ldif/identityMapping_Examples.ldif 中含有 GSSAPI 的對映範例。

    此檔案中的預設 GSSAPI 對映,會假設主體中僅包含一個使用者 ID。此對映可判斷位在目錄之固定分支中的使用者:


    dn: cn=default,cn=GSSAPI,cn=identity mapping,cn=config
    objectclass: dsIdentityMapping
    objectclass: nsContainer
    objectclass: top
    cn: default
    dsMappedDN: uid=\${Principal},ou=people,dc=example,dc=com

    此檔案中的另一個範例說明如何在使用者 ID 位於含有已知範圍的主體中時,判斷使用者 ID。


    dn: cn=same_realm,cn=GSSAPI,cn=identity mapping,cn=config
    objectclass: dsIdentityMapping
    objectclass: dsPatternMatching
    objectclass: nsContainer
    objectclass: top
    cn: same_realm
    dsMatching-pattern: \${Principal}
    dsMatching-regexp: (.*)@EXAMPLE.COM
    dsMappedDN: uid=\$1,ou=people,dc=EXAMPLE,dc=COM
  2. 重新啟動目錄伺服器,使您的新對映生效。