[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[upki-fed:00524] Re: IdPが起動しません(テストフェデレーション)
- Subject: [upki-fed:00524] Re: IdPが起動しません(テストフェデレーション)
- Date: Fri, 02 Nov 2012 14:35:52 +0900
- From: 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の設定も必要かも知れません。
--
公益財団法人東京都医学総合研究所 情報システム室
赤沢年一