Open glassfishrobot opened 12 years ago
Reported by bshrom
bshrom said: WS-Policy used on .NET WS side.
bshrom said: Wireshark capture of communication between Java client and .NET service
Java client log, includes communication between Java client and STS, and subsuquent communication between Java client and .NET service.
Test message for digest computation of the SAML assertion.
bshrom said: Signed SAML assertion test.
bshrom said: Small utility that creates a signature for the SAML assetion taken from the exchange sample.
Keypair that was used for signature.
@vbkumarjayanti said: Hi,
I looked at the m2client.log and looked at the Canonicalized SAML 2 assertion (at the bottom of the log file). I could not see anything obviously wrong at a first glance (will try to look again). But do you see anything wrong there ?. Can we get the Canonicalized SAML 2 assertion on the WCF side to see what is different ?. Would you know how to enable the Canonicalized output on WCF side ?.
Also i was not clear about the purpose of the following files : Validate.java test.xml SingedTest.xml
If you have a patch where Metro sends the SAML assertion signed without STR Transform do send it to us. We might as well provide a configurable option through which metro can send the SAML signed directly.
We have done an interop of our STR Transform with Oracle OWSM and did not find any interop issue.
Thanks for all the help.
@vbkumarjayanti said: Here is the canonicalized SAML assertion ( i have formatted it for better readability).
bshrom said: test.xml - contains a saml2:Assertion captured over the wire (directly from the wireshark log)
Validate.java - takes test.xml and signs saml2:Assertion (we are interested mainly in digest value)
SingedTest.xml - an output from Validate.java, and contains a signature for saml2:Assertion
The purpose of the test is to compare manually calculated digest for saml2:Assertion with the one calculated by Metro and captured during the transmission.
The digest value for saml2:Assertion in SingedTest.xml (is direct) is different from value (through STR transform) calculated by Metro that was transmitted over the wire. It should be the same.
In our tests of WCF 3.5 on test.xml, digest value for saml2:Assertion is equal to the digest value manually calculated by Validate.java.
I will ask about getting Canonicalized output on WCF side.
Now, I have another question: does Oracle OWSM use Metro lib's under the hood?
@vbkumarjayanti said: So with the STR Dereference Transform we add an extra xmlns="" on the root element in the canonicalized output in this case. So i am not sure if your statement about "the Digest value for direct signing and through STR transform should be the same" is correct ?. Unless i am missing your point.
Please send us the Canonicalized output if you can.
symonchang said: This interop problem can be fixed in WCF, instead of Metro. Fixing it in Metro may cause interop problems with other major platforms, such as OWSM and WebLogic Server. Also, user can select other SAML scenarios instead of SAML 2.0 Bearer instead, such as SAML 1.1 Bearer, or SAML 2.0 Sender Vouch, etc.
File: curewsc-keystore.jks Attached By: bshrom
File: m2client.log Attached By: bshrom
File: signedtest.xml Attached By: bshrom
File: test-wireshark-capture.txt Attached By: bshrom
File: test.xml Attached By: bshrom
File: Validate.java Attached By: bshrom
File: ws-policy.xml Attached By: bshrom
Was assigned to symonchang
This issue was imported from java.net JIRA WSIT-1612
Metro (2.1.1) client submits a request to a WCF/WIF web service (.NET 3.5) using a SAML 2 assertion (bearer confirmation) as a signed supporting token generated by a Metro STS (see WSDL).
In this scenario, the WCF service throws the following (inner) exception when validating the digest of the (STR) referenced SAML 2 assertion: