I am using the SAML 2.0 Spring Web application sample to secure SAML 2.0 on Tomcat 7 and modified it to try to authenticate using the Ping Identity service. Webapp talks to this service and sends a statement back, but when trying to verify the signature does not work, as shown below:
- Attempting to verify signature and establish trust using KeyInfo-derived credentials - Signature contained no KeyInfo element, could not resolve verification credentials - Failed to verify signature and/or establish trust using any KeyInfo-derived credentials - Attempting to verify signature using trusted credentials - Failed to verify signature using either KeyInfo-derived or directly trusted credentials - Validation of received assertion failed, assertion will be skipped org.opensaml.xml.validation.ValidationException: Signature is not trusted or invalid
I understand that he was unable to verify the signature, and they gave me a certificate from Ping Identity administrators, but I'm not sure how to include it in the application. I tried adding it to the JKS (key repository) that comes with the sample application using the JTK keytool program, but can't seem to find it there. I also tried adding it to the service provider's metadata XML file as follows:
<md:KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> [Certificate is here...] </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor>
However, it still returns the same error.
Is there a specific place where I have to put the certificate in order to verify the signature? I'm relatively new to SAML security and applications in general, so I apologize if I use the wrong terminology.
Closeratio
source share