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

创建和测试联接数据视图

Procedure创建联接数据视图

  1. 创建名为 myjoin1–view 的联接数据视图。

    将 LDAP 数据视图指定为主数据视图,将 JDBC 数据视图指定为从数据视图。


    % dpconf create-join-data-view myjoin1-view myds1-view mysql1-view o=join
  2. 在从数据视图上定义联接规则。

    以下联接规则指定从数据视图中条目的 uid 属性应该与主数据视图中条目的 uid 属性相匹配。


    % dpconf set-jdbc-data-view-prop mysql1-view filter-join-rule:uid='${myds1-view.uid}'
  3. 如果在联接数据视图上设置了过滤器联接规则,则需要在从数据视图上设置虚拟转换规则,以便能够在联接数据视图上添加条目。


    dpconf add-virtual-transformation secondary-view-name \
    write add-attr-value dn uid=\${uid}

    注 –

    如果未设置此规则,则无法在联接数据视图上添加条目。


  4. 定义可以通过联接数据视图从主数据视图读取以及向主数据视图写入的属性集。


    % dpconf set-ldap-data-view-prop myds1-view viewable-attr:dn viewable-attr:cn \
     viewable-attr:sn viewable-attr:givenName viewable-attr:objectClass viewable-attr:ou \
     viewable-attr:l viewable-attr:uid viewable-attr:mail viewable-attr:telephoneNumber \
     viewable-attr:facsimileTelephoneNumber viewable-attr:roomNumber viewable-attr:userPassword
    % dpconf set-ldap-data-view-prop myds1-view writable-attr:dn writable-attr:cn \
     writable-attr:sn writable-attr:givenName writable-attr:objectClass writable-attr:ou \
     writable-attr:l writable-attr:uid writable-attr:mail writable-attr:telephoneNumber \
     writable-attr:facsimileTelephoneNumber writable-attr:roomNumber writable-attr:userPassword

    这些定义仅适用于联接视图环境。默认情况下,如果直接访问 LDAP 数据视图,则可以读取和写入所有属性。

  5. 定义可以通过联接数据视图在从数据视图中读取以及向从数据视图写入的属性集。


    % dpconf set-jdbc-data-view-prop mysql1-view viewable-attr:dn viewable-attr:objectclass \
     viewable-attr:sn viewable-attr:room viewable-attr:userpassword viewable-attr:jobtitle \
     viewable-attr:country viewable-attr:tel
    % dpconf set-jdbc-data-view-prop mysql1-view writable-attr:dn writable-attr:objectclass \
     writable-attr:sn writable-attr:room writable-attr:userpassword writable-attr:jobtitle \
     writable-attr:country writable-attr:tel

    这些定义仅适用于联接视图环境。默认情况下,如果直接访问 JDBC 数据视图,则可以读取和写入所有属性。

Procedure创建所需的 ACI

  1. 以代理管理员身份添加一个允许匿名访问联接数据视图的全局 ACI。


    % ldapmodify -p 1389 -D "cn=proxy manager" -w password
    dn: cn=myjoin1,cn=virtual access controls
    changetype: add
    objectclass: acisource
    dpsaci: (targetattr="*") (target = "ldap:///o=join") \
     (version 3.0; acl "anonymous_access"; allow(all) userdn="ldap:///anyone";)
    cn: myjoin1
  2. 创建一个连接处理程序,以处理到 o=join 域的连接。


    % dpconf create-connection-handler myjoin1-handler
  3. 启用该连接处理程序,并将其配置为处理来自 o=join 下用户的所有绑定。


    % dpconf set-connection-handler-prop myjoin1-handler is-enabled:true \
     bind-dn-filters:"uid=.*,ou=people,o=join"
  4. 将连接处理程序配置为使用之前添加的 ACI 池。


    % dpconf set-connection-handler-prop myjoin1-handler aci-source:myjoin1

Procedure测试联接数据视图

  1. 以匿名用户身份搜索联接数据视图。

    在此步骤中,我们将搜索 Kirsten Vaughan 的条目,以查看是否会检索来自两个联接视图的数据。


    % ldapsearch -p 1389 -b o=join "uid=kvaughan"

    请注意,返回的条目包括来自 LDAP 数据视图和 JDBC 数据视图的属性。

  2. o=join 下的用户身份修改 userPassword 属性,以验证您是否可以向联接数据视图中写入内容。


    % ldapmodify -p 1389 -D "uid=kvaughan,ou=people,o=join" -w myNewPassword
    dn: uid=kvaughan,ou=people,o=join
    changetype: modify
    replace: userPassword
    userPassword: myPassword