0
SSOを有効にするために、いくつかのプロジェクトでopensaml 2.6.1とspring-security-saml2-core 1.0.1を使用しています。 暗号化と署名に自己署名入りの証明書を使用しています。私のサービスプロバイダがSAML応答を受信した場合SAMLの信頼できる証明書
、私は次のエラーを取得しています:
DEBUG [org.opensaml.xml.signature.SignatureValidator] Creating XMLSignature object
DEBUG [org.opensaml.xml.signature.SignatureValidator] Validating signature with signature algorithm URI: http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
DEBUG [org.opensaml.xml.signature.SignatureValidator] Validation credential key algorithm 'RSA', key instance class 'sun.security.rsa.RSAPublicKeyImpl'
DEBUG [org.opensaml.xml.signature.SignatureValidator] Signature validated with key from supplied credential
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Signature validation using candidate credential was successful
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Successfully verified signature using KeyInfo-derived credential
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Attempting to establish trust of KeyInfo-derived credential
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Failed to establish trust of KeyInfo-derived credential
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Failed to verify signature and/or establish trust using any KeyInfo-derived credentials
DEBUG [org.opensaml.xml.signature.impl.ExplicitKeySignatureTrustEngine] Attempting to verify signature using trusted credentials
DEBUG [org.opensaml.xml.signature.impl.ExplicitKeySignatureTrustEngine] Failed to verify signature using either KeyInfo-derived or directly trusted credentials
DEBUG [org.springframework.security.saml.websso.WebSSOProfileConsumerImpl] Validation of authentication statement in assertion failed, skipping
org.opensaml.xml.validation.ValidationException: Signature is not trusted or invalid
at org.springframework.security.saml.websso.AbstractProfileBase.verifySignature(AbstractProfileBase.java:272)
at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.verifyAssertionSignature(WebSSOProfileConsumerImpl.java:419)
at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.verifyAssertion(WebSSOProfileConsumerImpl.java:292)
at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse(WebSSOProfileConsumerImpl.java:214)
at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:82)
at
私は例外messageisから理解しているもの:
- 署名検証が
- 成功しています私の証明書を信頼する際に問題があります 私の訴えは訂正されていますか?
私は、次のコマンドを使用して(JVMのcacertsストア)私のキーストアに私の自己署名証明書をインポートしています
keytool -importcert -trustcacerts -file "myCcert.crt" -keystore "C:\Program Files\Java\jdk1.8.0_65\jre\lib\security\cacerts" -storepass changeit -alias test
Dosen'tこのコマンドは、私のcertifをインポートし、Javaによって信頼されるようにマークを付けます?
もう1つのことは、Javaが自己署名入りの署名を信頼できるか、または証明書をCAが検証して検証をパスする必要があるかどうかです。
はい。 Javaは自己署名証明書を信頼できます。 – anacron
ありがとう、アナクロン この例外の原因は何ですか? – Zizou
SSLを実装しようとしている場合は、キーストアが必要です。 'cacerts'はキーストアではなく、トラストストアです。他のSSLサイトにアクセスしたい場合はうまく動作します。しかし、サイトにSSLを設定する場合は、別のキーストアが必要になります。 – anacron