[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[upki-fed:00526] Re: IdPが起動しません(テストフェデレーション)



赤沢様

成城大学五十嵐と申します.

logging.xml で LDAP 関連の log を debug モードにすると問題判別しやすいかと
思います.

------------------------------------------------
    <logger name="edu.vt.middleware.ldap">
        <level value="DEBUG"/>
    </logger>
------------------------------------------------

----- Original Message -----
>> From: Akazawa TS <xxxxxxxx@xxxxxxxxxxxxxx>
>> To: xxxxxxxx@xxxxxxxxx
>> Date: 2012-11-02 14:35:52
>> Subject: [upki-fed:00524] Re: IdPが起動しません(テストフェデレーション)
>> 
>> upki-fed MLの皆様、赤木様、土屋様、中山様
>> 
>>  都医学研の赤沢です。
>>  ご助言ありがとうございます。
>> 
>>  まず、第1にお恥ずかしながら凡ミスがひとつありました。
>>  /etc/hosts.allow に
>>  ------------------------------
>>  slapd: localhost
>>  ------------------------------
>>  とあり、
>>  ------------------------------
>>  slapd: 127.0.0.1
>>  ------------------------------
>>  と書き直すことで ローカルから LDAPに接続できるようなりました。
>>  (/etc/hosts.deny では ALL:ALL で全て拒否設定になっています)
>> 
>>  昨日の段階やそれ以前の確認ではちゃんと接続できていたので、
>>  どこかの段階で /etc/hosts.allowと/etc/hosts.deny を加えたの
>>  だと思います。
>> 
>>  少なくとも現在は、次のように、ローカルからLDAP内のダミー職員の
>>  データを取得できています。(Apache HTTP server/tomcat/OpenLDAP/
>>  shibboleth は同一マシン内で稼働させています)
>> -----------------------------------------------------------------
>> # ldapsearch -x -H ldap://localhost -b dc=igakuken,dc=or,dc=jp -D
>> cn=test,ou=apps,dc=igakuken,dc=or,dc=jp -W uid=shinkei5
>> Enter LDAP Password:
>> # extended LDIF
>> #
>> # LDAPv3
>> # base <dc=igakuken,dc=or,dc=jp> with scope subtree
>> # filter: uid=shinkei5
>> # requesting: ALL
>> #
>> 
>> # shinkei5, Users, igakuken.or.jp
>> dn: uid=shinkei5,ou=Users,dc=igakuken,dc=or,dc=jp
>> uid: shinkei5
>> igakGroupNum: 61
>> igakMid: 5
>> objectClass: inetOrgPerson
>> objectClass: igakKamikitaPerson
>> employeeNumber: 03330005
>>   << 後略 >>
>> -----------------------------------------------------------------
>> 
>>  しかし、これで解決はしませんでした。
>>  つまり、再び以下のように tomcat6 をスタートさせたときにERRORが
>>  発生します。
>> # service tomcat6 stop
>> # service httpd restart
>> # service tomcat6 start
>> 
>>  このときの
>>  /opt/shibboleth-idp/logs/idp-process.log は次のようになっていました。
>> -----------------------------------------------------------------------
>> 11:50:00.720 - ERROR
>>  [edu.vt.middleware.ldap.pool.DefaultLdapFactory:109]
>>  - unabled to connect to the ldap
>> javax.naming.AuthenticationException:
>>  [LDAP: error code 49 - Invalid Credentials]
>>         at com.sun.jndi.ldap.LdapCtx.mapErrorCode
>> (LdapCtx.java:3067) ~[na:1.6.0_37]
>>         at com.sun.jndi.ldap.LdapCtx.processReturnCode
>> (LdapCtx.java:3013) ~[na:1.6.0_37]
>>   <<後略>>
>> -----------------------------------------------------------------------
>> 
>>  なんだ、LDAP接続時のパスワード間違いか、恥ずかしいと思いましたが
>>  /opt/shibboleth-id/conf/attribute-resolver.xml を見てみるとどうしても
>>  間違いを見つけられません。以下で伏せ字にした ***** は正しいパスワード
>>  が書いてあります。
>> -------------------------attribute-resolver.xml------------------------
>> <<前略>>
>>     <!-- Example LDAP Connector -->
>>     <!-- -->
>>     <resolver:DataConnector id="myLDAP" xsi:type="LDAPDirectory"
>> xmlns="urn:mace:shibboleth:2.0:resolver:dc"
>>         ldapURL="ldap://localhost" baseDN="dc=igakuken,dc=or,dc=jp"
>> principal="cn=test,ou=apps"
>>         principalCredential="*****">
>>         <FilterTemplate>
>>             <![CDATA[
>>                 (uid=$requestContext.principalName)
>>             ]]>
>>         </FilterTemplate>
>>     </resolver:DataConnector>
>>    <!-- -->
>> <<後略>>
>> -----------------------------------------------------------------------
>> 
>> 
>> > まずは問題を切り分けるために,aacli.sh で動作チェックしてみたらどうで
>> > しょうか.shibboleth をインストールしたディレクトリに移動して,
>> >
>> >      cd /opt/shibboleth-idp
>> >      ./bin/aacli.sh --configDir=conf/ --principai=ユーザ名
>> >
>> > として,ちゃんと値がかえってくるかどうかを見てください.
>> 
>>  土屋様の↑のご指摘の点、以下のように確認してみました。
>>  XMLは帰って来ず、エラーが延々と出力されてしまいました。
>> -----------------------------------------------------------------------
>> #cd /opt/shibboleth-idp
>> # ./bin/aacli.sh --configDir=conf/ --principal="uid=shinkei5"
>> Exception in thread "main"
>> org.springframework.beans.factory.BeanCreationException:
>>  Error creating bean with name 'shibboleth.AttributeResolver':
>>  Invocation of init method failed; nested exception is
>>  edu.internet2.middleware.shibboleth.common.service.ServiceException:
>>  Configuration was not loaded for shibboleth.AttributeResolver service,
>>  error creating components.
>> 	at org.springframework.beans.factory.support
>>  .AbstractAutowireCapableBeanFactory
>>  .initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
>>  <<後略>>
>> -----------------------------------------------------------------------
>> 
>>  aacli.sh --help は見てみましたが、--principal= の記法がよくわからない
>>  ので、以下の2通りも試しましたが、同様のエラーが発生しました。
>> -----------------------------------------------------------------------
>> # ./bin/aacli.sh --configDir=conf/
>> --principal="uid=shinkei5,ou=users,dc=igakuken,dc=or,dc=jp"
>> Exception in thread "main"
>>  org.springframework.beans.factory.BeanCreationException:
>>  Error creating bean with name 'shibboleth.AttributeResolver':
>>  Invocation of init method failed; nested exception is
>>  edu.internet2.middleware.shibboleth.common.service.ServiceException:
>>  Configuration was not loaded for shibboleth.AttributeResolver service,
>>  error creating components.
>> 	at org.springframework.beans.factory.support
>>  .AbstractAutowireCapableBeanFactory
>>  .initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
>>  <<後略>>
>> -----------------------------------------------------------------------
>> # ./bin/aacli.sh --configDir=conf/ --principal="uid=shinkei5,ou=users"
>> Exception in thread "main"
>>  org.springframework.beans.factory.BeanCreationException:
>>  Error creating bean with name 'shibboleth.AttributeResolver':
>>  Invocation of init method failed; nested exception is
>>  edu.internet2.middleware.shibboleth.common.service.ServiceException:
>>  Configuration was not loaded for shibboleth.AttributeResolver service,
>>  error creating components.
>> 	at org.springframework.beans.factory.support
>>  .AbstractAutowireCapableBeanFactory
>>  .initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
>>  <<後略>>
>> -----------------------------------------------------------------------
>> 
>>  現時点では attribute-resolver.xml の <resolver:DataConnector タグに
>>  おける、属性principalの値として LDAPに接続する際の dn を記載しているの
>>  ですが、これが間違っているような気がしています。
>> 
>>  そもそも、LDAPにおける principal とは何かがよくわかっておりません。
>>  Gooleで検索すると、WindowsのUser Principalとか、Keroberosのものとか
>>  Oracleのものとか、あまり関係なさそうなものが列挙されます。
>>  
>>   aacli.sh --help  で得られる、
>>     --principal  Principal name (user id) of the person
>>                  whose attributes will be retrieved
>>  が案外正解なのでしょうか。
>> 
>>  中山様がご指摘くださった、次の点もこれから確認したいと思います。
>> 
>> > LDAP接続箇所のエラーのようなのですが、
>> >
>> > 匿名BINDができないLDAPサーバの場合は
>> > login.configにbindDnとbindCredentialの設定も必要かも知れません。
>> --
>> 公益財団法人東京都医学総合研究所 情報システム室
>> 赤沢年一
>> 
>> 

Kaz IGARASHI +++++++++++++++++++++++++++++++
Mail to -------------------- xxx@xxxxxxxxxxx
++++++++++++++++++++++++++++ MNC, Seijo Univ.