4.3.3 文書空間構成定義ファイルの記述例

文書空間構成定義ファイルの記述例を,次に示します。

<この項の構成>
(1) 前提条件
(2) 定義例
(3) 認証,ユーザ情報の取得例

(1) 前提条件

定義例は次の前提条件に従っていることとします。

LDAP対応のディレクトリサービスを使用してユーザ管理をしている。

LDAP対応のディレクトリサービスで構築されているDITは次の図に示す。

各エントリに対応するディレクトリ情報は次の表に示す。

図4-1 DITの例

[図データ]

表4-8 エントリに対応するディレクトリ情報の例

エントリ各エントリに対応するディレクトリ情報
o: hitachi,c=jpdn: o=hitachi,c=jp
objectclass: top
objectclass: organization
o: hitachi,c=jp
ou=peopledn:ou=people,o=hitachi,c=jp
objectclass: top
objectclass: person
objectclass: organizationalperson
objectclass: inetOrgPerson
sn: person
cn: personal
uid: s891711dn: uid=s891711,ou=people,o=hitachi,c=jp
objectclass: top
objectclass: person
objectclass: organizationalperson
objectclass: inetOrgPerson
cn: Taro Hitachi
cn;lang-ja: 日立太郎
uid: s891711
sn: hitachi
ou: unit1
ou: unit
userpassword: s891711
uid: k972251dn: uid=k972251,ou=people,o=hitachi,c=jp
objectclass: top
objectclass: person
objectclass: organizationalperson
objectclass: inetOrgPerson
cn: Ichiro Yamada
cn;lang-ja: 山田 一郎
uid: k972251
sn: yamada
ou: unit2
ou: unit
userpassword: k972251
uid:k881891dn: uid=k881891,ou=people,o=hitachi,c=jp
objectclass: top
objectclass: person
objectclass: organizationalperson
objectclass: inetOrgPerson
cn: Jiro Suzuki
cn;lang-ja: 鈴木 二郎
uid: k881891
sn: suzuki
ou: unit2
ou: unit
userpassword: k881891
ou: unitdn: ou=unit,o=hitachi,c=jp
objectclass: top
objectclass: organizationalUnit
ou: unit
ou;lang-ja: ユニット
ou: unit1dn: ou=unit1,ou=unit,o=hitachi,c=jp
objectclass: top
objectclass: organizationalUnit
ou: unit1
ou;lang-ja: ユニット1
ou: unit2dn: ou=unit2,ou=unit,o=hitachi,c=jp
objectclass: top
objectclass: organizationalUnit
ou: unit2
ou;lang-ja: ユニット2
ou: groupdn: ou=group,o=hitachi,c=jp
objectclass: top
objectclass: groupOfUniqueNames
objectclass: hdsgroupofuniquenames
ou: group
ou;lang-ja: グループ
cn:grp0
ou: group1dn: ou=group1,ou=group,o=hitachi,c=jp
objectclass: top
objectclass: groupOfUniqueNames
objectclass: hdsgroupofuniquenames
cn: grp1
ou: group1
ou;lang-ja: グループ1
uniqueMember: uid=s891711,ou=people,o=hitachi,c=jp
ou: group2dn: ou=group2,ou=group,o=hitachi,c=jp
objectclass: top
objectclass: groupOfUniqueNames
objectclass: hdsgroupofuniquenames
cn:grp2
ou: group2
ou;lang-ja: グループ2
uniqueMember:uid=k972251,ou=people,o=hitachi,c=jp
uniqueMember:uid=k881891,ou=people,o=hitachi,c=jp

(2) 定義例

前提条件に基づいた文書空間構成定義ファイルの定義例を次に示します。

DocSpaceId = 673d2be0-d1fd-11d0-ab59-08002be29e1d
SecurityAdmin = admin01
DefaultACFlagOwner = FULL_CONTROL
DefaultACFlagGroup = READ_WRITE|LINK|VERSION
DefaultACFlagEveryone = NONE

UserAuthentication = LDAP
LdapHost = 123.45.67.78
LdapPort = 389
LdapUserRoot = o=hitachi,c=jp
LdapGroup = Yes
LdapGroupFromUserAttr = Yes
LdapUserScope = Subtree
LdapUserTimeout = 60
LdapGroupTimeout = 60
LdapUserClass = inetOrgPerson
LdapUserId = uid
LdapUserFilterLeft = (
LdapUserFilterRight = )
LdapUserCase = Default
LdapGroupFromUserDn = Yes
LdapGroupClass = hdsgroupOfUniqueNames
LdapGroupId = cn
LdapGroupRoot = o=hitachi,c=jp
LdapGroupFilterLeft = (
LdapGroupFilterRight = )
LdapGroupIdFromUserAttr = ou
LdapGroupIsDnFromUserAttr = No
LdapGroupIdAttrFromUserAttr = ou
LdapGroupIdFromUserDn = ou
LdapGroupCase = Default
LdapBindUserDN = uid=Tanaka,ou=People,o=hitachi,c=jp
LdapBindPassword = password

(3) 認証,ユーザ情報の取得例

ここでは,例で示した文書空間構成定義ファイルを使用した場合のユーザ認証とユーザ情報の取得について説明します。なお,説明ではログイン名は「s891711」であると仮定します。

認証
UserAuthenticationプロパティがLDAPであるため,DocumentBrokerは次のような検索条件に適合するユーザのエントリを検索します。
検索基点
LdapUserRootプロパティで指定されている「o=hitachi,c=jp」です。
検索範囲
LdapUserScopeプロパティに「Subtree」が指定されているので検索基点からのすべてのサブツリーが検索範囲となります。
検索フィルタによる検索条件
LdapUserFilterLeftプロパティ,LdapUserClassプロパティ,LdapUserIdプロパティおよびLdapUserFilterRightプロパティの指定によって,「(&(objectclass=inetOrgPerson)(uid=s891711))」となります。
 
この検索によって見つかったエントリのuserpassword属性の値と入力されたパスワードを比較して,一致すれば認証成功になります。
ユーザ情報取得
LdapGroupプロパティがYesであるため,グループのエントリを検索します。この場合,次のような検索条件を用いて検索します。
検索基点
LdapGroupRootプロパティで指定されている「o=hitachi,c=jp」です。
検索範囲
LdapGroupScopeプロパティに「Subtree」が指定されているので検索基点からのすべてのサブツリーが検索範囲となります。
検索条件
LdapGroupFilterLeftプロパティ,LdapGroupClassプロパティおよびLdapGroupFilterRightプロパティの指定によって,「(&(objectclass=hdsgroupOfUniqueNames)(uniqueMember=uid=s891711,ou=people,o=hitachi,c=jp))」となります。
 
この検索によって見つかったエントリのcn属性(LdapGroupIdプロパティで指定されている属性)の値「grp1」をグループ識別子として取得します。
LdapGroupFromUserAttrプロパティがYesであるため,ユーザの属性値からグループ情報を取得します。この場合,ユーザのou属性(LdapGroupIdFromUserAttrプロパティで指定されている属性)の値は「unit1」および「unit」ですが,LdapGroupIsDnFromUserAttrプロパティがNoであるため,その値をそのままグループ識別子として取得します。
LdapGroupFromUserDnプロパティがYesであるため,ユーザのdnからグループ情報を取得します。この場合,ユーザのdn:uid=s891711,ou=people,o=hitachi,c=jpのou(LdapGroupIdFromUserDnプロパティで指定したDNのキー)の値「people」をグループ識別子として取得します。
このような検索結果から「grp1」,「unit1」,「unit」および「people」をこのユーザのグループ識別子として取得できます。