[Lism-users 246] AD 連携について

Back to archive index

小畠 健一 obata****@gwork*****
2012年 5月 17日 (木) 12:10:23 JST


はじめて、投稿させていただきます。
obataと申します。
宜しくお願い致します。

http://www.secioss.co.jp/2008/01/lismactive_directoryopenldap.html
に記載されているような、
【AD】-【Lism】-【Ldap】という連携を行おうとしております。
また、上記URLの設定手順でインストール、設定しております。


AD環境:Windows2008R2
LismとLdapは、CentOs6で同居させて起動してます。

以下のようなプロセスで立ち上がってます。
/usr/sbin/slapd -h ldap:/// -u ldap
/opt/secioss/libexec/slapd -h ldap://:3890/ -u ldap

openldapは、いずれも、2.4.23
Lismは、2.3.12
lismadmin 2.0.1


1、発生している内容

lismadmin画面から、システム同期→差分検索を行ったとき、
”内部エラーが発生しました”という赤文字がブラウザ上に表示されます。

2、seciossadmin.log
2012/05/17 18:12:22 Secioss[16766](WARNING):
global.ldap_read(/app/Secioss_AuthManager.php:314): [PHP] E_WARNING:
ldap_read(): Search: Unknown error in
/usr/share/lismadmin/app/Secioss_AuthManager.php on line 314
2012/05/17 18:12:22 Secioss[16766](WARNING):
global.ldap_first_entry(/app/Secioss_AuthManager.php:316): [PHP]
E_WARNING: ldap_first_entry() expects parameter 2 to be resource, boolean
given in /usr/share/lismadmin/app/Secioss_AuthManager.php on line 316
2012/05/17 18:12:22 Secioss[16766](WARNING):
global.ldap_get_attributes(/app/Secioss_AuthManager.php:317): [PHP]
E_WARNING: ldap_get_attributes() expects parameter 2 to be resource, null
given in /usr/share/lismadmin/app/Secioss_AuthManager.php on line 317
2012/05/17 18:12:22 Secioss[16766](ERR):
Secioss_Action_SyncRead.perform(class/Ethna_Backend.php:364): admin faild
to read lismsync
2012/05/17 18:12:22 Secioss[16766](NOTICE): Secioss_Action_SyncRead.perform(
class/Ethna_Backend.php:364): 内部エラーが発生しました。 AS001 [ERROR CODE(0
)]
2012/05/17 18:12:22 Secioss[16766](NOTICE):
Secioss_Action_SyncRead.perform(class/Ethna_Backend.php:364): {form} -> []

3、/var/log/ldap.log
May 17 20:44:58 rg-ldap slapd[23530]: conn=1024 fd=10 ACCEPT from
IP=[::1]:36909 (IP=[::]:3890)
May 17 20:44:58 rg-ldap slapd[23530]: conn=1024 op=0 BIND
dn="cn=Manager,dc=hogehoge,dc=test,dc=local" method=128
May 17 20:44:58 rg-ldap slapd[23530]: Perl BIND returned 0x0000
May 17 20:44:58 rg-ldap slapd[23530]: conn=1024 op=0 BIND
dn="cn=Manager,dc=hogehoge,dc=test,dc=local" mech=SIMPLE ssf=0
May 17 20:44:58 rg-ldap slapd[23530]: conn=1024 op=0 RESULT tag=97 err=0
text=
May 17 20:44:58 rg-ldap slapd[23530]: conn=1024 op=1 SRCH
base="cn=master-sync,dc=hogehoge,dc=test,dc=local" scope=0 deref=0
filter="(&(lismSyncErrNode=ad)(lismSyncFilter=\28objectclass=person\29))"
May 17 20:44:58 rg-ldap slapd[23025]: conn=1015 op=30 BIND anonymous
mech=implicit ssf=0
May 17 20:44:58 rg-ldap slapd[23025]: conn=1015 op=30 BIND
dn="cn=Manager,dc=hogehoge,dc=test,dc=local" method=128
May 17 20:44:58 rg-ldap slapd[23025]: conn=1015 op=30 BIND
dn="cn=Manager,dc=hogehoge,dc=test,dc=local" mech=SIMPLE ssf=0
May 17 20:44:58 rg-ldap slapd[23025]: conn=1015 op=30 RESULT tag=97 err=0
text=
May 17 20:44:58 rg-ldap slapd[23025]: conn=1015 op=31 SRCH
base="ou=People,dc=hogehoge,dc=test,dc=local" scope=2 deref=0
filter="(objectClass=person)"
May 17 20:44:58 rg-ldap slapd[23025]: conn=1015 op=31 SEARCH RESULT
tag=101 err=0 nentries=3 text=
May 17 20:44:58 rg-ldap LISM[23530]: ALERT [LISM::Storage::LDAP] Can't
connect ldaps://192.168.2.241/ou=People,dc=hogehoge,dc=test,dc=local
May 17 20:44:58 rg-ldap LISM[23530]: ERR [LISM] Searching in AD failed(81)
May 17 20:44:58 rg-ldap LISM[23530]: ERR [LISM] Can't get values of AD(81)
May 17 20:44:58 rg-ldap slapd[23530]: conn=1024 op=2 UNBIND
May 17 20:44:58 rg-ldap slapd[23530]: conn=1024 op=1 SEARCH RESULT tag=101
err=81 nentries=0 text=
May 17 20:44:58 rg-ldap slapd[23530]: conn=1024 fd=10 closed

4、Lism.confの内容
<config>
  <sync>
    <transaction>off</transaction>
    <data name="AD">
      <object name="User">
        <masterdn>ou=People</masterdn>
        <masterattr>
          <name>cn</name>
        </masterattr>
        <masterattr>
          <name>sn</name>
        </masterattr>
        <masterattr>
          <name>sambaSID</name>
        </masterattr>
        <masterattr>
          <name>gidNumber</name>
        </masterattr>
        <syncdn>ou=People</syncdn>
        <syncattr>
          <name>userPassword</name>
        </syncattr>
      </object>
    </data>
    <master>
      <containerdn>ou=Master</containerdn>
      <data>LDAP</data>
    </master>
  </sync>
  <data name="AD">
    <container>
      <oc>organizationalUnit</oc>
      <rdn>ou=AD</rdn>
    </container>
    <handler name="Rewrite">
      <libload>LISM/Utils/lism_util.pl</libload>
      <libload>LISM/Utils/lism_smb.pl</libload>
      <rewritemap name="getValue" type="function"/>
      <rewritemap name="sidToStr" type="function"/>
      <rewritemap name="reqcn" type="ldap"
attrs="ldaps://192.168.2.241/ou=People,dc=hogehoge,dc=test,dc=local?cn???binddn=cn=Administrator%2ccn=users%2cdc=hogehoge%2cdc=test%2cdc=local,bindpw=******"/>
      <rewritemap name="rescn" type="ldap"
attrs="ldaps://192.168.2.241/ou=People,dc=hogehoge,dc=test,dc=local?sAMAccountName???binddn=cn=Administrator%2ccn=users%2cdc=hogehoge%2cdc=test%2cdc=local,bindpw=******"/>
      <rewrite context="addRequest" dn="^[^,]+,ou=People"
match="cn=[^,]+,ou=People" substitution="uid=%{getValue('%0',
'uid')},ou=People"/>
      <rewrite context="request" match="uid=([^,]+),ou=People"
substitution="cn=%{reqcn(sAMAccountName=%1)},ou=People"/>
      <rewrite context="searchResult" match="cn=([^,]+),ou=People"
substitution="uid=%{rescn(cn=%1)},ou=People"/>
      <rewrite context="searchResult" match="^sambaSID:: (.*)$"
substitution="sambaSID: %{sidToStr('%1')}"/>
    </handler>
    <storage name="LDAP" hash="AD">
      <uri>ldaps://192.168.2.241/ou=People,dc=hogehoge,dc=test,dc=local</uri>
      <binddn>cn=Administrator,cn=users,dc=hogehoge,dc=test,dc=local</binddn>
      <bindpw>******</bindpw>
      <ldapmap type="objectclass" local="sambaSamAccount" foreign="user"/>
      <ldapmap type="attribute" local="uid" foreign="sAMAccountName"/>
      <ldapmap type="attribute" local="userPassword" foreign="unicodePwd"/>
      <ldapmap type="attribute" local="sambaSID" foreign="objectSid"/>
      <ldapmap type="attribute" local="gidNumber" foreign="primaryGroupID"/>
    </storage>
  </data>
  <data name="LDAP">
    <container>
      <oc>organizationalUnit</oc>
      <rdn>ou=LDAP</rdn>
    </container>
    <handler name="Setval">
      <libload>LISM/Utils/lism_util.pl</libload>
      <entry dn=".*,">
        <default name="uidNumber">
          <value type="function">(getValue($entryStr, 'sambaSID') =~
/-([^-]*)$/)[0] + 10000</value>
        </default>
        <default name="homeDirectory">
          <value type="function">'/home/'.getValue($entryStr, 'uid')</value>
        </default>
        <addition name="objectClass">
          <value type="constant">posixAccount</value>
        </addition>
      </entry>
    </handler>
    <storage name="LDAP" hash="MD5">
      <uri>ldap://localhost/dc=hogehoge,dc=test,dc=local</uri>
      <binddn>cn=Manager,dc=hogehoge,dc=test,dc=local</binddn>
      <bindpw>******</bindpw>
    </storage>
  </data>
</config>


ログからSearching in AD failedが原因であると思い、
インストール手順と実際の設定、そして環境とをにらめっこしております。
類似するケースが無いかとネットでいろいろ情報探しているのですが、
知識、経験不足が手伝ってなのか、うまく見つける事ができず、解決に至っておりま
せん。
調査方法、考え方等、あるいは原因と思われる事、ご教授下さい。

宜しくお願い致します。

----------------------------------------
k.obata
mail:obata****@gwork*****
----------------------------------------




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