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

通过 GSSAPI 进行 SASL 验证(仅适用于 SPARC)

通过 SASL 执行的通用安全服务 API (Generic Security Service API , GSSAPI) 允许您使用第三方安全系统(如 Kerberos V5)对客户端进行验证。GSSAPI 库仅适用于 Solaris 操作系统 SPARC® 平台。Sun 建议您在 Sun Enterprise Authentication MechanismTM 1.0.1 服务器上安装 Kerberos V5 实现。

服务器使用 GSSAPI 验证用户的标识。然后,SASL 机制将应用 GSSAPI 映射规则获取 DN,该 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. 创建用于存储服务密钥的密钥表。

    您的 LDAP 服务密钥存储在密钥表中。

    1. 确保只有目录服务器用户可以读取此密钥表。

    2. 更改文件名,使其不同于默认的 /etc/krb5/krb5.keytab

    3. 设置环境变量 KRB5_KTNAME 以确保使用新的密钥表,而不使用默认密钥表。

  3. 如果修改了 SASL 配置条目或某个 GSSAPI 标识映射条目,请重新启动目录服务器。

    请注意,必须在主机上配置 DNS。

GSSAPI 标识映射

SASL 机制的标识映射尝试将 SASL 标识的凭证与目录中的用户条目进行匹配。如果映射找不到与 SASL 标识相对应的 DN,则验证将会失败。

SASL 标识是称为主体的字符串,以特定于每种机制的格式表示用户。在使用 GSSAPI 的 Kerberos 中,主体为 uid [/instance][@ realm] 格式的标识。uid 可以包含后跟领域(通常为域名)的实例标识符,实例标识符和领域都是可选的。例如,以下字符串都是有效的用户主体:


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.0 Reference》。GSSAPI 映射的示例位于 instance-path/ldif/identityMapping_Examples.ldif 中。

    此文件中的默认 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. 重新启动目录服务器以使新映射生效。