IBM HTTP Server for WebSphere Application Server, V6.1
             操作系统: AIX, HP-UX, Linux, Solaris, Windows

             使目录和搜索结果个性化

在 IBM HTTP Server(分布式系统)上使用 LDAP 来认证

此部分描述如何配置 LDAP 以保护 IBM HTTP Server 上的文件。

在您开始之前

缺省情况下,LDAP 的 LoadModule 伪指令未装入到 IBM HTTP Server 中。如果没有 LoadModule 伪指令,就不能使用 LDAP 功能。为了启用 LDAP 功能,请按如下方法将 LoadModule 伪指令添加到 IBM HTTP Server httpd.conf 文件中:

如果您在计算机上安装 LDAP 客户机,您可以使用 ldapsearch 作为工具来测试您打算用于各种设置的值。

关于本任务

请参阅LDAP 伪指令 以了解 LDAP(mod_ibm_ldap)伪指令的详细描述。

过程

  1. 编辑 httpd.conf IBM HTTP Server 配置文件。
  2. 确定要限制访问的资源。 例如:<Directory "/secure_info">。
  3. 使用特定于环境的值将 httpd.conf 中的伪指令添加至要保护的目录位置(容器)。例如:
    • LdapConfigFile path_to_ldap.prop
    • AuthType Basic
    • AuthName “您保护的域的标题”
    • Require valid-user
  4. 有三个选项可用来指定如何使用 IBM HTTP Server 向现有 LDAP 安装认证。
    • 基于 LDAP 组成员资格的授权。
      使用 LDAP 以检查用户密码并验证用户在 LDAP 中定义的组中是否存在。
      注: 标识能够访问资源的用户的成员资格在组中,但不在用户自己的 LDAP 条目中。

      例如,要限制对组的访问,应添加以下伪指令:

      LDAPRequire group grp1

      对于此形式的 LDAPRequire,必须具有在 LDAP 存储库中配置并且符合下列规则的组(使用示例组名称 grp1):

      • LDAP 存储库中存在与以下搜索过滤器匹配的条目,其中值 groupofnamesgroupofuniquenames 都是在 ldap.group.dnattributes 中指定的示例值。
        注: ldap.group.dnattributes 的正确值是一个列表,指示哪些对象类是 LDAP 模式中的组。
        ldapsearch ... "(&(cn=grp1)(|(objectclass=groupofnames)
        (objectclass=groupofuniquenames)))"
      • 作为“grp1”的 LDAP 条目的一部分,有一系列属性与下列各项匹配,其中值 memberuniquemember 是 ldap.group.memberAttributes 的示例值。
        注: ldap.group.memberAttributes 的正确值是一个列表,指示哪些对象类是组中的成员资格。这些条目的值是用户的专用名称(DN)。
        ldapsearch ... "(&(cn=grp1)(|(objectclass=groupofnames)
        (objectclass=groupofuniquenames)))" member uniquemember 

        示例:

        ldapsearch -x -h myldapserver -D cn=root -w rootpw
        "(&(cn=grp1)(|(objectclass=groupofnames)(objectclass=groupofuniquenames)))" 
        member uniquemember
        dn: cn=group1,ou=myunit,o=myorg,c=US 
        member: cn=user1, ou=otherunit, o=myorg, c=US
        member: cn=user12, ou=otherunit, o=myorg, c=US 

        如果 ldap.group.dnattributes 中列示的类型的对象是要搜索的组的成员,那么会以相同样式进行递归搜索直到达到 ldap.group.search.depth 指示的深度

      • 首先,IBM HTTP Server 使用 ldap.group.name.filter 和 ldap.user.cert.filter 将为用户和组提供的 CN 转换为专用名称(DN)。接下来 IBM HTTP Server 将使用组 DN 作为基础搜索值为用户 DN 的条目。

        示例:

        ldapsearch ... -b "cn=grp1,ou=myunit,o=myorg,c=US" 
        "|((member=cn=user1,ou=otherunit,o=myorg,c=US) 
        (uniquemember=cn=user1,ou=otherunit,o=myorg,c=US))"
    • 基于用户的 LDAP 属性的授权。使用 LDAP 检查用户密码并验证用户是否与一组属性匹配(标识用户能够访问资源的属性是用户自己的 LDAP 条目的一部分)。

      示例:

      LDAPRequire filter "(&(jobtitle=accountant)(location=newyork))"

      要使用此形式的 LDAPRequire,IBM HTTP Server 必须使用 ldap.user.cert.filter 将为用户提供的 CN 转换为 DN。IBM HTTP Server 还必须使用 DN 作为基础进行搜索并使用在 LDAPRequire 伪指令中提供的搜索过滤器。如果返回任何结果,那么表示授权成功。

      示例:

      ldapsearch ... -b "cn=user1,ou=otherunit,o=myorg,c=US" "(&(jobtitle=accountant)
      (location=newyork))" 

      LDAP 中的某些属性(有时称为动态角色)将由 LDAP 服务器以动态方式计算,并且可能具有在搜索过滤器中无效的不同语义。如果在先前示例中使用,那么这类值将会失效,并且不能用于在 IBM HTTP Server 中进行授权。

    • 仅用于认证:仅使用 LDAP 检查用户密码。

      可使用 Require 伪指令将范围限制为特定用户或使用 AuthGroupFile 维护平面组文件。

  5. 编辑 ldap.prop 配置文件。如果您还没有该文件,您可以使用与 IBM HTTP Server 一起提供的 ldap.prop.sample 文件。如果您有有关正确的值的问题,请与您的 LDAP 服务器管理员协商。使用环境中正确的值更新下列伪指令:
    1. 输入 Web 服务器连接信息。
    2. 使用 SSL、LDAPS 或 LDAP over SSL 时:
      • 将 ldap.transport 更改为 SSL 值
      • 更改 ldap.URL 以包括 LDAPS 协议和正确的端口值,如 636。
      • 配置要使用的 SSL 密钥数据库,如:
        ldap.key.fileName=/path_to/key.kdb
        
        ldap.key.file.password.stashFile=/path_to/stashfile
        其中 stashfile 是由 bin/ldapstash 命令创建的。
        ldap.key.label=label
        其中 label 是在引用的 key.kdb 的 IKEYMAN 中出现的值。

结果

使用 mod_ibm_ldap 伪指令的搜索保留服务器连接池,其中的连接认证为 ldap.application.dn 用户。第一个连接是在接收到第一个受 LDAP 保护的请求时创建的。对于针对其他请求的连接的后续搜索,连接将保持打开指定秒数(ldap.idleConnection.timeout)。

如果要读取日志或查看 IP 跟踪,那么会发生以下事件序列:




子主题
轻量级目录访问协议
查询轻量级目录访问协议服务器
安全套接字层和轻量级目录访问协议模块
SSL 证书撤销列表
LDAP 伪指令
任务主题    

使用条款 | 反馈

最近更新日期: Mar 31, 2008 3:11:26 AM EDT
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.ihs.doc/info/ihs/ihs/tihs_ldapconfig.html