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

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



東京都医学総合研究所 赤沢様

アットウェアの赤木です。

> ldapURL="ldap://localhost" baseDN="dc=igakuken,dc=or,dc=jp"
> principal="cn=test,ou=apps"

principal を  "cn=test,ou=apps,dc=igakuken,dc=or,dc=jp"
に変更して試して頂けませんでしょうか?


宜しくお願い致します。



2012/11/2 Akazawa TS <xxxxxxxx@xxxxxxxxxxxxxx>:
> 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の設定も必要かも知れません。
> --
> 公益財団法人東京都医学総合研究所 情報システム室
> 赤沢年一
>