...
- IdPがJava 7を使用している。
- 接続しようとしているSPのメタデータに1024bitの証明書と2048bitの証明書が混在している。
- SPが認証要求(AuthnRequest)に署名している。
aacli.shが実行できない問題の対処shが実行できない問題の対処(その1)
Shibboleth IdPにはaacli.shというコマンドがあり、任意のSP(entityID)と任意のユーザ名を引数に与えることでSPに送出される属性がXMLで取得できます。IdP 2.3.5 ~ IdP 2.3.8ではIdPに含まれるファイルが変更となった影響でそのまま実行するとNoClassDefFoundError
となります。書式設定済み $ sudo -u tomcat /opt/shibboleth-idp/bin/aacli.sh --configDir /opt/shibboleth-idp/conf/ --principal=test001 --requester=https://sp.example.ac.jp/shibboleth-sp Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shibboleth.HandlerManager': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletRequest at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480) :
→ 上記エラーが出力された場合はTomcatのjarファイルを参照するようにしてください。
書式設定済み $ sudo ln -s $CATALINA_HOME/lib/servlet-api.jar /opt/shibboleth-idp/lib/
→ aacli.shコマンドの詳細は https://wiki.shibboleth.net/confluence/display/SHIB2/AACLI をご参照ください。
→ 参考情報 : 情報交換メーリングリストupki-fed:00419情報 この問題はIdP 2.4.0で修正されました。https://issues.shibboleth.net/jira/browse/SIDP-557 "servlet-api-2.5.jar"のようなファイル名で自動的に /opt/shibboleth-idp/lib/ にコピーされているはずです。
IdP 2.4.0にバージョンアップしたあとに以前作成した $CATALINA_HOME/lib/servlet-api.jar へのシンボリックリンクがある場合は削除してください。- aacli.shが実行できない問題の対処(その2)
StoredIDを用いている場合、mysql-connector-java-5.1.xx-bin.jar等のJDBCドライバーが適切に配置されていないと、下記のエラーになります。
Shibboleth IdPでStoredIDを利用するための設定方法(MySQL)を参照して /opt/shibboleth-idp/lib/ および /usr/java/tomcat/webapps/idp/WEB-INF/lib/ に配置されていることを確認してください。書式設定済み # ./bin/aacli.sh --configDir=conf/ --principal="test001" --requester="https://test-sp1.gakunin.nii.ac.jp/shibboleth-sp" 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. ... Caused by: edu.internet2.middleware.shibboleth.common.service.ServiceException: Configuration was not loaded for shibboleth.AttributeResolver service, error creating components. ... Caused by: org.springframework.beans.factory.BeanCreationException: Unable to create relational database connector, JDBC driver can not be found on the classpath at edu.internet2.middleware.shibboleth.common.config.attribute.resolver.dataConnector.StoredIDDataConnectorBeanDefinitionParser.buildApplicationManagedConnection(StoredIDDataConnectorBeanDefinitionParser.java:169) ...
IdP起動時のエラー
アンカー amplt amplt
IdPを起動時に下記のエラーが idp-process.log に出力されます。書式設定済み 14:51:13.419 - INFO [edu.internet2.middleware.shibboleth.common.config.BaseService:158] - Loading new configuration for service shibboleth.RelyingPartyConfigurationManager 14:51:13.506 - ERROR [edu.internet2.middleware.shibboleth.common.config.BaseService:188] - Configuration was not loaded for shibboleth.RelyingPartyConfigurationManager service, error creating components. The root cause of this error was: org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.
→上記のエラーは relying-party.xml にXML文法としての間違いがある場合に出力されます。
→例えば relying-party.xml にパスフレーズ付きの証明書を設定するとき、パスフレーズに '&' や '<' を含む場合はこれらの文字列をそのまま設定することはできません。これらの文字を含む場合は文字参照で&
や<
のように記述してください。誤ったパスフレーズ設定例
書式設定済み <security:Credential id="IdPCredential" xsi:type="security:X509Filesystem"> <security:PrivateKey Password="myKeyPa$$word&"> /opt/shibboleth-idp/credentials/server-enc.key </security:PrivateKey>
正しいパスフレーズ設定例
書式設定済み <security:Credential id="IdPCredential" xsi:type="security:X509Filesystem"> <security:PrivateKey Password="myKeyPa$$word&"> /opt/shibboleth-idp/credentials/server-enc.key </security:PrivateKey>
...