转载

在 Virtual Member Manager 中配置自定义 LDAP 存储库

您现在可以在 Virtual Member Manager 中将所有兼容 V3 的 LDAP 存储库(包括默认和非默认的存储库)配置为自定义存储库。本教程中介绍的配置方法解决了访问用户、组和组成员关系的问题,其中使用的 LDAP 不受 VMM 默认支持。本教程首先会介绍 LDAP 存储库在 VMM 中的价值,然后解释两种在 VMM 中配置自定义 LDAP 存储库的方式。您可以选择管理控制台方法或 wsadmin 命令行接口 (CLI) 方法。

用于 Virtual Member Manager 的 LDAP 存储库

Virtual Member Manager 是 IBM WebSphere Application Server 的一个组件,您可以使用它一次性地配置 LDAP、本地 OS、DB 和自定义存储库。VMM 包含来自 WebSphere Application Server 注册表、WebSphere Member Manager(来自 IBM WebSphere Portal)的功能和一个安全管理功能子集。

组织通常提供了大量与客户交互的方式,导致客户数据分散在各种不同的存储库中。为了帮助保留、改善和加强与客户的关系,必须在单一客户视图中对这些分散的数据加以利用。通过使用 VMM,可以实现这些客户存储库的单一视图。VMM 使使用多个存储库变得更加简单,因为现在您可以配置它们,而不是开发它们。

Virtual Member Manager 可以帮助将多个单独的用户存储库中的条目映射到单个虚拟存储库中。这个连锁的存储库包含一个所谓的 范围 ,这是一组独立的用户存储库。每个存储库可以是一个完整的外部存储库,或者对于 LDAP,是该存储库中的一个子树。得益于 VMM,应用程序可以共享用户个人资料定义,整合一个客户需要管理的大量特定于应用程序的用户存储库。

默认 LDAP V3 存储库

Virtual Member Manager 支持使用所有兼容 LDAP V3 的存储库作为其后端存储库。自动支持以下 LDAP V3 存储库:

  • IBM Tivoli® Directory Server
  • Active Directory
  • Sun One LDAP
  • Novell eDirectory

当这些 LDAP 存储库中的一个存储库被配置为后端存储库时,VMM 会检测它是哪个 LDAP 存储库,并依据所检测到的配置而填充设置。

其他自定义 LDAP V3 存储库

对于其他兼容 V3 的 LDAP 存储库,尤其在它们拥有一个不受 Virtual Member Manager 支持的服务器类型时,您可以将它们配置为自定义 LDAP 存储库。自定义 LDAP 服务器类型的示例包括 Apache LDAP、Open LDAP 和 Oracle Directory Server。

要创建 LDAP 存储库,可以在 VMM 中选择 Custom LDAP 选项。您可以使用管理控制台(也称为 集成解决方案控制台 )用户界面或 wsadmin 命令行接口 (CLI) 来定义自定义 LDAP 存储库。

回页首

使用管理控制台的 GUI 方法

如果您更喜欢使用 GUI 方法,那么可以使用管理控制台在 Virtual Member Manager 中配置 LDAP 存储库。通过使用此方法,可以避免使用 CLI 方法可能发生的任何可能的错误。但是,如果更喜欢使用 CLI 方法,请参阅使用 wsadmin 的命令行方法。

  1. 登录到管理控制台。
  2. 选择 Security > Global security 。在 Global security 面板中的 User account repository 部分,对于 Available realm definitions,选择 Federated repositories ,然后单击 Configure

    图 1. Federated repositories

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    点击查看大图

    关闭 [x]

    图 1. Federated repositories

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

  3. 在 Federated repositories 面板中,在右下角的 Related Items 下,单击 Manage repositories

    图 2. Manage repositories

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    点击查看大图

    关闭 [x]

    图 2. Manage repositories

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

  4. 在 Manage repositories 面板中,添加一种 LDAP 存储库配置:
    • 对于 WebSphere Application Server v8.0 和更高版本,单击 Add 并选择 LDAP repository
    • 对于更早的版本,单击 Add

    图 3. 添加一个 LDAP 存储库

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    点击查看大图

    关闭 [x]

    图 3. 添加一个 LDAP 存储库

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

  5. 在新 LDAP 存储库的 General Properties 面板中:
    1. 对于 Repository identifier,键入一个名称,比如 custom_ldap
    2. 在 LDAP server 下,对于 Directory type ,选择 Custom 。然后输入主要主机名和端口。如果适用的话,可以使用备份或故障转移 LDAP 服务器主机名和端口。
    3. 在 Security 下,输入绑定的区分名称和绑定的密码。
    4. 单击 OK

    图 4. 一个自定义 LDAP 存储库的属性

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    点击查看大图

    关闭 [x]

    图 4. 一个自定义 LDAP 存储库的属性

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

  6. 配置实体类型。在 Manage repositories 面板中,选择 LDAP 存储库(例如 custom_ldap )。
  7. 在 LDAP 存储库的 General properties 面板中,在 Additional Properties 下,单击 LDAP entity types 链接。

    图 5. 其他管理存储库的属性

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    点击查看大图

    关闭 [x]

    图 5. 其他管理存储库的属性

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    Add new entity 选项:只有在 WebSphere Application Server versions 8.0 和更高版本中,管理控制台 GUI 中才有 Add new entity 选项。对于更早的版本,需要使用 wsadmin 命令(将在使用 wsadmin 的命令行方法中的第 4 步中介绍)来添加新条目类型。

  8. 因为默认情况下没有为自定义 LDAP 类型定义条目类型,所以需要添加条目类型:

    1. 要添加 PersonAccount 条目类型,可以单击 New ,然后输入以下细节:
      • Entity type namePersonAccount
      • Object classpersonuser (您的 LDAP 中的人员或用户的 objectClass)
      • Search base :定义仅适用于用户搜索操作的搜索库(将被覆盖)
      • Search filter :定义适用于在用户搜索操作期间过滤结果的搜索过滤器
    2. 要添加 Group 条目类型,可以单击 New ,然后输入以下细节:
      • Entity type nameGroup
      • Object classgroupgroupOfNames (用于您的 LDAP 中的组的 objectClass)
      • Search base :定义仅适用于组搜索操作的搜索库(将被覆盖)
      • Search filter :定义适用于在组搜索操作期间过滤结果的搜索过滤器

    类似地,依据您的需求,可以为您的 LDAP 添加其他任何条目类型,比如 OrgContainer。 图 6 显示了这一步的输出。

    图 6. LDAP 条目类型

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    点击查看大图

    关闭 [x]

    图 6. LDAP 条目类型

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

  9. 因为默认情况下没有为自定义 LDAP 类型定义任何属性,所以必须添加这些属性:

    版本考虑因素:对于 WebSphere Application Server v8.0 和更高版本,使用以下步骤。对于更早的 WebSphere Application Server 版本,请按照使用 wsadmin 的命令行方法中第 6 步的介绍来定义属性映射。完成命令行方法的第 6 步后,继续执行本节中的 GUI 方法的第 10 步。

    1. 在 Manage repositories 面板中,选择 LDAP 存储库(例如 custom_ldap )。在 Additional properties 下,单击 LDAP attributes 链接定义新属性映射。

      在 LDAP 中定义的所有属性都需要映射到 VMM 模式中的不同特性时,需要使用这些属性。例如,您可能需要将 VMM 特性 uid 映射到 LDAP 属性 samAccountName

    2. 指定以下选项来添加新的属性-特性映射:
      • Name :LDAP 中的属性的名称
      • Property name :VMM 模式中的特性名称
      • Entity type

        :关联的条目类型定义

        如果没有指定条目类型,该属性会应用于所有已定义的条目类型。

    图 7. LDAP 属性与 VMM 特性的映射

    在 Virtual Member Manager 中配置自定义 LDAP 存储库
  10. 在 Manage repositories 面板中,选择 LDAP 存储库(例如 custom_ldap )。然后,在 Additional Properties 部分,单击 Group attribute definition

    图 8. Additional properties

    在 Virtual Member Manager 中配置自定义 LDAP 存储库
  11. 在 Group attribute definition 面板中,配置您的 LDAP 服务器的组成员关系属性、成员属性和动态成员属性:
    1. Group membership attribute 字段中,为您的 LDAP 服务器的成员关系属性输入一个值(例如: memberOfuniqueMemberOf )。单击 OK

      ,然后保存更改。

      图 9. 组成员关系属性定义

      在 Virtual Member Manager 中配置自定义 LDAP 存储库

      点击查看大图

      关闭 [x]

      图 9. 组成员关系属性定义

      在 Virtual Member Manager 中配置自定义 LDAP 存储库

      在接下来的几步中,定义成员属性。首先定义成员属性,然后定义动态成员属性。

    2. 要在 Additional Properties 部分添加 成员属性 ,可以单击 Member attributes 链接。然后单击 New
    3. 在 New 面板中,定义成员属性:
      1. 对于 Name of member attributeObject class 字段,输入您的 LDAP 服务器的值,例如: memberuniqueMember
      2. 为该成员属性选择合适的 Scope
      3. 单击 OK ,然后保存更改。

      图 10. 组成员属性定义

      在 Virtual Member Manager 中配置自定义 LDAP 存储库
    4. 在 Additional Properties 部分,单击 Dynamic member attributes 链接。
    5. 要添加动态成员属性,可以单击 New
    6. 在 New 面板中,定义动态成员属性:
      1. 对于 Name of dynamic member attributeDynamic object class 字段,输入您的 LDAP 服务器的值,例如: memberURL
      2. 单击 OK ,然后保存更改。

      图 11. 组动态成员属性定义

      在 Virtual Member Manager 中配置自定义 LDAP 存储库
  12. 在 Federated repositories 面板中,单击 Add Base entry to Realm 按钮。

    图 12. 向一个范围添加一个基础条目

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    点击查看大图

    关闭 [x]

    图 12. 向一个范围添加一个基础条目

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

  13. 配置新存储库 (custom_ldap) 的基础条目定义:
    1. Repository 下拉列表中选择存储库名称 ( custom_ldap )。
    2. 为以下字段输入合适的名称:
      • Distinguished name of a base entry that uniquely identifies this set of entries in the realmo=ldap (应在连锁存储库中是唯一的)
      • Distinguished name of a base entry in this repositoryo=ldap (LDAP 服务器的基础条目)

    图 13. Distinguished name of a base entry in a repository

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

    点击查看大图

    关闭 [x]

    图 13. Distinguished name of a base entry in a repository

    在 Virtual Member Manager 中配置自定义 LDAP 存储库

  14. 单击 OK 。这会将更改保存到主存储库。
  15. 重新启动 WebSphere Application Server。

要验证这个自定义 LDAP 配置,请登录到 WebSphere Application Server 管理控制台。然后选择 Environment > Manage Users/Groups 。在 Manage Users/Groups 面板上,执行基本的用户或组搜索。如果无法搜索到您需要的用户或组,请返回检查您的设置。

回页首

使用 wsadmin 的命令行方法

如果习惯于使用 CLI 命令,您可能更喜欢使用 wsadmin 方法在 Virtual Member Manager 中配置 LDAP 存储库。但是,为了避免在输入命令时发生任何可能的错误,您可能希望使用上一节中介绍的 GUI 方法。

wsadmin 命令的语法:本文中提供的 wsadmin 命令示例使用 Jacl 语法。有关 Jython 语法,请参阅 AdminTask 对象的 IdMgrRepositoryConfig 命令组 。

  1. 创建一个自定义 LDAP 存储库输入 createIdMgrLDAPRepository 命令:

    点击查看代码清单

    关闭 [x]

    $AdminTask createIdMgrLDAPRepository {-id custom_ldap -ldapServerType Custom -loginProperties "uid;cn"}
  2. 将 LDAP 服务器配置添加到 custom_ldap 存储库中。输入 addIdMgrLDAPServer 命令:

    点击查看代码清单

    关闭 [x]

    $AdminTask addIdMgrLDAPServer {-id custom_ldap -host customldap.ibm.com -port 389 -bindDN "cn=administrator,cn=users,dc=testdc,dc=in,dc=ibm,dc=com" -bindPassword xxxxx -ldapServerType Custom}
  3. 可选:添加备份 LDAP 服务器(用于故障转移支持)。输入 addIdMgrLDAPBackupServer 命令:

    点击查看代码清单

    关闭 [x]

    $AdminTask addIdMgrLDAPBackupServer {-id custom_ldap -primary_host customldap.ibm.com -host failOverLDAP.ibm.com -port 4020}
  4. 定义 PersonAccount 类型和 Group 条目类型。输入 addIdMgrLDAPEntityType 命令:
    1. 添加 PersonAccount 实体类型:

      点击查看代码清单

      关闭 [x]

      $AdminTask addIdMgrLDAPEntityType {-id custom_ldap -name PersonAccount -objectClasses user -objectClassesForCreate hixuser -searchBases ou=itusers,dc=testdc,dc=in,dc=ibm,dc=com -searchFilter "(&(uid=a*)( ObjectCategory=Person))"}
    2. 添加 Group 实体类型:

      点击查看代码清单

      关闭 [x]

      $AdminTask addIdMgrLDAPEntityType {-id custom_ldap -name Group -objectClasses group -searchFilter " (ObjectCategory=Group)"}
  5. 定义组配置:
    1. 更新组成员关系属性。输入 setIdMgrLDAPGroupConfig 命令:

      点击查看代码清单

      关闭 [x]

      $AdminTask setIdMgrLDAPGroupConfig {-id custom_ldap -updateGroupMembership true -name memberOf -scope direct}
    2. 添加新的组成员属性。输入 addIdMgrLDAPGroupMemberAttr 命令:

      点击查看代码清单

      关闭 [x]

      $AdminTask addIdMgrLDAPGroupMemberAttr {-id custom_ldap -name uniqueMember -objectClass person -scope direct}
    3. 添加新的动态成员属性。输入 addIdMgrLDAPGroupDynamicMemberAttr 命令:

      点击查看代码清单

      关闭 [x]

      $AdminTask addIdMgrLDAPGroupDynamicMemberAttr {-id custom_ldap -name memberURL -objectClass groupOfURLs}
  6. 定义需要的任何 LDAP 属性映射。输入 addIdMgrLDAPAttr 命令:

    点击查看代码清单

    关闭 [x]

    $AdminTask addIdMgrLDAPAttr {-id custom_ldap -name samAccountName -propertyName uid -entityTypes PersonAccount} $AdminTask addIdMgrLDAPAttr {-id custom_ldap -name userAccountControl -entityTypes PersonAccount -defaultValue 544} $AdminTask addIdMgrLDAPAttr {-id custom_ldap -name samAccountName -entityTypes Group -defaultAttr cn}

    GUI 方法:如果您在 GUI 方法中完成了这一步,可继续执行使用管理控制台配置自定义 LDAP 存储库的 GUI 方法中的第 9 步。

  7. 添加 LDAP 存储库不支持的任何特性(比如 extension 或 lookaside 存储库特性和所有非读/写特性)。输入 addIdMgrLDAPAttrNotSupported 命令:
    $AdminTask addIdMgrLDAPAttrNotSupported {-id custom_ldap -propertyName description} $AdminTask addIdMgrLDAPAttrNotSupported {-id custom_ldap -propertyName businessAddress}
  8. 定义新的自定义 LDAP 存储库的基础条目映射。输入 addIdMgrRepositoryBaseEntry 命令:
    $AdminTask addIdMgrRepositoryBaseEntry {-id custom_ldap -name o=ldap -nameInRepository "o=ldap"}
  9. 将更改保存到主配置:
    $AdminConfig save
  10. 重新启动 WebSphere Application Server。

回页首

自定义 LDAP 存储库配置示例

清单 1 演示了一种自定义 LDAP 存储库配置。wimconfig.xml 文件显示了您在使用 GUI 方法或 CLI 方法配置自定义 LDAP 存储库时看到的结果。

清单 1. wimconfig.xml 文件

<config:repositories xsi:type="config:LdapRepositoryType"  adapterClassName="com.ibm.ws.wim.adapter.ldap.LdapAdapter"        id="custom_ldap" isExtIdUnique="true" supportAsyncMode="false"  supportExternalName="false"        supportPaging="false" supportSorting="false" supportTransactions="false"  certificateFilter=""        certificateMapMode="exactdn" ldapServerType="AD" translateRDN="false">   <config:baseEntries name="o=ldap " nameInRepository="o=ldap"/>   <config:loginProperties>uid</config:loginProperties>   <config:loginProperties>cn</config:loginProperties>   <config:ldapServerConfiguration primaryServerQueryTimeInterval="15"  returnToPrimaryServer="true"           sslConfiguration="">      <config:ldapServers authentication="simple"  bindDN="cn=administrator,cn=users,dc=testdc,dc=in,dc=ibm,dc=com"             bindPassword="{xor}PjsyNjFubWw=" connectionPool="false" connectTimeout="0"             derefAliases="always" referal="ignore" sslEnabled="false">             <config:connections host="customldap.ibm.com" port="389"/> <config:environmentProperties name="com.sun.jndi.ldap.read.timeout" value="30000"/>         </config:ldapServers>       </config:ldapServerConfiguration>       <config:ldapEntityTypes name="Group" searchFilter="(ObjectCategory=Group)">         <config:objectClasses>group</config:objectClasses>       </config:ldapEntityTypes>         ….         ….       <config:ldapEntityTypes name="PersonAccount" searchFilter="(&(uid=a*)( ObjectCategory=Person))">     <config:objectClasses>user</config:objectClasses>     <config:objectClassesForCreate>hixuser</config:objectClassesForCreate>     <config:searchBases>ou=itusers,dc=testdc,dc=in,dc=ibm,dc=com</config:searchBases>   </config:ldapEntityTypes>   <config:groupConfiguration>     <config:memberAttributes name="uniqueMember" objectClass="person" scope="direct"/>     <config:dynamicMemberAttributes name="memberURL" objectClass="groupOfURLs"/>     <config:membershipAttribute name="memberOf" scope="direct"/>    </config:groupConfiguration>   <config:attributeConfiguration>     <config:attributes defaultValue="544" name="userAccountControl">       <config:entityTypes>PersonAccount</config:entityTypes>     </config:attributes>     <config:attributes name="samAccountName" propertyName="uid">       <config:entityTypes>PersonAccount</config:entityTypes>     </config:attributes>     <config:attributes defaultAttribute="cn" name="samAccountName">       <config:entityTypes>Group</config:entityTypes>     </config:attributes>     <config:attributes defaultValue="8" name="groupType">       <config:entityTypes>Group</config:entityTypes>      </config:attributes>      <config:attributes name="unicodePwd" propertyName="password" syntax="unicodePwd"/>      <config:attributes name="userprincipalname" propertyName="kerberosId">       <config:entityTypes>PersonAccount</config:entityTypes>      </config:attributes>      <config:propertiesNotSupported name="description"/>          …..          …..       <config:propertiesNotSupported name="businessAddress"/>     </config:attributeConfiguration>     <config:contextPool enabled="true" initPoolSize="1" maxPoolSize="0" poolTimeOut="0"            poolWaitTime="3000" prefPoolSize="3"/>     <config:cacheConfiguration>       <config:attributesCache attributeSizeLimit="2000" cacheSize="4000" cacheTimeOut="1200"              enabled="true"/>       <config:searchResultsCache cacheSize="2000" cacheTimeOut="600" enabled="true"              searchResultSizeLimit="1000"/>     </config:cacheConfiguration>   </config:repositories>

回页首

结束语

Virtual Member Manager 提供了灵活地配置兼容 V3 的默认和自定义 LDAP 存储库的能力。本教程重点介绍了两种配置自定义 LDAP 存储库的方法:管理控制台和 wsadmin 命令。

正文到此结束
Loading...