工藤一樹
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ではこういった要件は実現可能でしょうか? 設定がおかしいところがあればアドバイスいただけると幸いです。 以上、よろしくお願いいたします。