uCosminexus DocumentBroker Version 3 システム導入・運用ガイド
DocumentSpace構成定義ファイルの記述例を,次に示します。
- <この項の構成>
- (1) 前提条件
- (2) 定義例
- (3) 認証,ユーザ情報の取得例
(1) 前提条件
定義例は次の前提条件に従っていることとします。
- LDAP対応のディレクトリサービスを使用してユーザ管理をしている。
- LDAP対応のディレクトリサービスで構築されているDITは図4-1に示す。
- 各エントリに対応するディレクトリ情報は表4-8に示す。
図4-1 DITの例
表4-8 エントリに対応するディレクトリ情報の例
エントリ 各エントリに対応するディレクトリ情報 o: hitachi,c=jp dn: o=hitachi,c=jp
objectclass: top
objectclass: organization
o: hitachi,c=jpou=people dn:ou=people,o=hitachi,c=jp
objectclass: top
objectclass: person
objectclass: organizationalperson
objectclass: inetOrgPerson
sn: person
cn: personaluid: s891711 dn: 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: s891711uid: k972251 dn: 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: k972251uid:k881891 dn: 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: k881891ou: unit dn: ou=unit,o=hitachi,c=jp
objectclass: top
objectclass: organizationalUnit
ou: unit
ou;lang-ja: ユニットou: unit1 dn: ou=unit1,ou=unit,o=hitachi,c=jp
objectclass: top
objectclass: organizationalUnit
ou: unit1
ou;lang-ja: ユニット1ou: unit2 dn: ou=unit2,ou=unit,o=hitachi,c=jp
objectclass: top
objectclass: organizationalUnit
ou: unit2
ou;lang-ja: ユニット2ou: group dn: ou=group,o=hitachi,c=jp
objectclass: top
objectclass: groupOfUniqueNames
objectclass: hdsgroupofuniquenames
ou: group
ou;lang-ja: グループ
cn:grp0
groupOfUniqueNamesId: g0ou: group1 dn: ou=group1,ou=group,o=hitachi,c=jp
objectclass: top
objectclass: groupOfUniqueNames
objectclass: hdsgroupofuniquenames
cn: grp1
ou: group1
ou;lang-ja: グループ1
groupOfUniqueNamesId: g1
uniqueMember: uid=s891711,ou=people,o=hitachi,c=jpou: group2 dn: ou=group2,ou=group,o=hitachi,c=jp
objectclass: top
objectclass: groupOfUniqueNames
objectclass: hdsgroupofuniquenames
cn:grp2
ou: group2
ou;lang-ja: グループ2
groupOfUniqueNamesId: g2
uniqueMember:uid=k972251,ou=people,o=hitachi,c=jp
uniqueMember:uid=k881891,ou=people,o=hitachi,c=jp
(2) 定義例
前提条件に基づいたDocumentSpace構成定義ファイルの定義例を次に示します。
[DocSpace] Count = 1 [Entry0001] Process = 1 SerialId = 673d2be0-d1fd-11d0-ab59-08002be29e1d DbType = HIRDB PdHost = d_ks5g PdNamePort = 20570 PdUser = "hirdb"/"hirdb" XdkShmemManage = NORMAL SessionMax = 32 SessionTimeOut = 15 ACLogUse = No ACLogLevel = Error ErrChkFlagOfObjectOperation = 0x0000017f EnbFncFlagOfObjectOperation = 0x0000007f UserAuthentication = LDAPEX 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 = groupOfUniqueNamesId 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) 認証,ユーザ情報の取得例
ここでは,例で示したDocumentSpace構成定義ファイルを使用した場合のユーザ認証とユーザ情報の取得について説明します。なお,説明ではログイン名は「s891711」であると仮定します。
- 認証
- UserAuthenticationエントリがLDAPEXであるため,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))」となります。
- この検索によって見つかったエントリのgroupOfUniqueNamesId属性(LdapGroupIdエントリで指定されている属性)の値「g1」をグループ識別子として取得します。
- LdapGroupFromUserAttrエントリがYesであるため,ユーザの属性値からグループ情報を取得します。この場合,ユーザのou属性(LdapGroupIdFromUserAttrエントリで指定されている属性)の値は「unit1」および「unit」ですが,LdapGroupIsDnFromUserAttrエントリがNoであるため,その値をそのままグループ識別子として取得します。
- LdapGroupFromUserDnエントリがYesであるため,ユーザのdnからグループ情報を取得します。この場合,ユーザのdn:uid=s891711,ou=people,o=hitachi,c=jpのou(LdapGroupIdFromUserDnエントリで指定したDNのキー)の値「people」をグループ識別子として取得します。
- このような検索結果から「g1」,「unit1」,「unit」および「people」をこのユーザのグループ識別子として取得できます。
All Rights Reserved. Copyright (C) 2012, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2012, Hitachi Solutions, Ltd.