2016-08-01 21 views
0

Ich habe ADFS mit Identity Server konfiguriert. Ich habe ein signiertes Zertifikat von ADFS, das in Identity Server importiert wird. Ich habe auch die IdpAlias-Eigenschaft entsprechend geändert. Allerdings bekomme ich folgenden Fehler, während der Verwendung von Travelocity.com Anwendung.

Signaturvalidierung für SAML-Antwort fehlgeschlagen

SCHWEREN: Ein Fehler ist aufgetreten org.wso2.carbon.identity.sso.agent.exception.SSOAgentException: Signaturprüfung für SAML-Antwort bei org.wso2.carbon.identity.sso.agent.saml fehlgeschlagen .SAML2SSOManager.validateSignature (SAML2SSOManager.java:483) bei org.wso2.carbon.identity.sso.agent.saml.SAML2SSOManager.processSSOResponse (SAML2SSOManager.java:227) bei org.wso2.carbon.identity.sso.agent .saml.SAML2SSOManager.processResponse (SAML2SSOManager.java:145) bei org.wso2.carbon.identity.sso.agent.SOSAAgentFilter.doFilter (SSOAgentFilter.java:89) bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (AnwendungFilterChai n.java:240) bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:207) bei org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:212) bei org. apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:106) bei org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:502) bei org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:141) bei org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:79) bei org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:616) bei org. apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:88) bei org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:528) bei org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1099) bei org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:670) bei org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1520) bei org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor. run (NioEndpoint.java:1476) bei java.util.concurrent.ThreadPoolExecutor.runWorker (Unbekannte Quelle) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (unbekannte Quelle) bei org.apache.tomcat.util. threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) bei java.lang.Thread.run (unbekannte Quelle)

Aug 01, 2016 11:34:39 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() für Servlet [Jsp] im Kontext mit Pfad [/travelocity.com] warf Ausnahme [ Signaturvalidierung für SAML-Antwort fehlgeschlagen] mit der Ursache org.wso2.carbon.identity.sso.agent.exception.SOAAgentException: Die Signaturvalidierung für die SAML-Antwort unter org.wso2.carbon.identity.sso.agent.saml.SAML2SSOManager ist fehlgeschlagen .validateSignature (SAML2SSOManager.java:483) bei org.wso2.carbon.identity.sso.agent.saml.SAML2SSOManager.processSSOResponse (SAML2SSOManager.java:227) bei org.wso2.carbon.identity.sso.agent.saml .SAML2SSOManager.processResponse (SAML2SSOManager.java:145) bei org.wso2.carbon.identity.sso.agent.SSOAge ntFilter.doFilter (SSOAgentFilter.java:89) bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:240) bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:207) bei org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:212) bei org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:106) bei org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:502) bei org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:141) bei org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java: 79) bei org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:616) bei org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:88) bei org.apache.catalina. connector.CoyoteAdapter.service (CoyoteAdapter.java:528) bei org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1099) bei org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java: 670) bei org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor. DoRun (NioEndpoint.java:1520) bei org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.Run (NioEndpoint.java:1476) bei java.util.concurrent.ThreadPoolExecutor.runWorker (unbekannte Quelle) bei Java .util.concurrent.ThreadPoolExecutor $ Worker.run (Unbekannte Quelle) bei org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) bei java.lang.Thread.run (Unbekannte Quelle)

Antwort

0

Der Grund ist, dass ADFS die Antwort an Identity Server sendet, wo sie die Antwort mit ihrem privaten Schlüssel signiert. Anschließend validiert Identity Server die Antwort von dem öffentlichen Zertifikat, das Sie in der IDP-Konfiguration eingegeben haben.

Dann, was passiert, ist, Identity Server erstellt seine eigene SAML-Antwort und sendet an Travelity-Anwendung. Wenn Sie in der Service Provider-Konfiguration die Antwortsignierung aktiviert haben, signiert Identity Server die SAML-Antwort anhand des privaten Schlüssels.

Für die Reise müssen Sie das öffentliche Zertifikat von Identity Server exportieren und es in die Keystore (wso2carbon.jks) -Datei der Travelity-Anwendung importieren. In der Datei travelocity.properties müssen Sie dann die IDPCertAlias-Eigenschaft ändern, die den Alias ​​des öffentlichen Zertifikats von Identity Server enthält.

Dann sollte es funktionieren.

Grundsätzlich weiß Travelocity nichts über ADFS. Nur Identity Server weiß es. travelocity kennt nur den Identity Server.

+0

Perfekt. Das ist dasselbe, was ich getan habe und es hat funktioniert. Ich konnte meine Antwort nicht posten. Danke, dass du hier nochmal gepostet hast. – sreedhar