[Lism-users 190] groupOfNames の member属性

Back to archive index

工藤一樹 svu00****@partn*****
2009年 12月 17日 (木) 18:03:20 JST


工藤です。
いつもお世話になっております。
たびたびの登場で恐縮です。

グループエントリのmember属性に対する設定についてアドバイスをいただけると
幸いです。

MySQLに user_tbl,group_tbl,group_user_tbl の3つが存在しています。
テーブルの定義は下記通りです。

CREATE TABLE  `user_tbl` (
  `user_id` integer NOT NULL,
  `user_name` varchar(20) NOT NULL,
  `first_name` varchar(20) NOT NULL,
  `last_mname` varchar(20) NOT NULL,
  `description` varchar(40) ,
  PRIMARY KEY  (`user_id`)
)  ENGINE=InnoDB;

CREATE TABLE  `group_tbl` (
  `group_id` integer NOT NULL,
  `parent_group_id` integer ,
  `group_name` varchar(20) NOT NULL,
  PRIMARY KEY  (`group_id`)
)  ENGINE=InnoDB;


CREATE TABLE  `group_user_tbl` (
  `group_id` varchar(20) NOT NULL,
  `user_id` varchar(20) NOT NULL,
  PRIMARY KEY  (`group_id`,`user_id`)
) ENGINE=InnoDB;



実現したいことはグループに所属しているユーザを
LDAPグループエントリのmember属性(複数)にマッピングすることです。

例)
 dn: cn=grp02,ou=Group,dc=example,dc=com
 objectClass: groupOfNames
 cn: grp02
 member:xxx
 member:yyy

※ xxx,yyy は実際にはユーザのDNになります。


http://lism.sourceforge.jp/ 内には事例が見当たらなかったのですが
下記サイトに「XoopsのグループをposixGroupとして扱う」の情報があり
こちらを参考にしました。
http://osslism.blog92.fc2.com/category1-1.html


lism.conf は下記の様に設定してみました。

      <object name="Group">
        <container>
          <rdn>ou=Group</rdn>
          <oc>organizationalUnit</oc>
        </container>
        <noop>add</noop>
        <noop>modify</noop>
        <noop>delete</noop>
        <table>group_tbl</table>
        <id>
          <column>group_id</column>
        </id>
        <oc>groupOfNames</oc>
        <rdn>cn</rdn>
        <attr name="cn">
          <column>GROUP_ID</column>
        </attr>
        <attr name="member">
          <selexpr>user_id</selexpr>
          <fromtbls>group_user_tbl</fromtbls>
          <joinwhere>group_tbl.group_id = group_user_tbl.group_id </
          joinwhere>
        </attr>

この状態ですとou=Group,ou=skdb,dc=lism,dc=com 配下に一切エントリは表示さ
れません。


また <attr name="member">の要素をコメントアウトすると
ou=Group,ou=skdb,dc=lism,dc=com 配下にグループのエントリが表示されます。
member属性の設定以外は正しいということになります。

memberを検索するSQL自体は正しいということを確認しています。(MySQLの一般
ログに出力された内容で確認しています。)


lismではこういった要件は実現可能でしょうか?

設定がおかしいところがあればアドバイスいただけると幸いです。

以上、よろしくお願いいたします。




Lism-users メーリングリストの案内
Back to archive index