Did any one find the resolution to this issue?

I am facing same problem.

I can get the saml signature and message signature
verified if I create the 
assertion without namespaces using
org.opensaml.SAMLAssertion 
with "enableNamespacePrefixOptimization" set to
"false"

But now I am getting the assertion from an outside STS
server with "saml" prefix.This results in SAML
signature verification failure.

-Rohit
*****************************************************
>Hi all,

>i first encountered the XML signature verification
>problem generated by
>the serialization mechanism of Axis 1.x when
>starting to use wss4j SAML
>support based on OpenSAML 1.0.1.
>To create an SAML assertion uses 
>org.opensaml.SAMLAssertion that
>creates assertions this way:

<Assertion
AssertionID="_c7ecbec589fb83a6aff2176535125169"
      IssueInstant="2006-07-24T16:26:22.000Z"
Issuer="myissuer"
      MajorVersion="1" MinorVersion="1"
      xmlns="urn:oasis:names:tc:SAML:1.0:assertion"
     
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
     
xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol">
....
</Assertion>

When this assertion is signed it shouldn't be modified
before sign
verification, but this not the way Axis serialization
works when you set
the "enableNamespacePrefixOptimization" parameter to
"false".
In such a case, regardless of the format of the SOAP
message received on
the net (with or withoute the prefix) the assertion
will be modified in:

<saml:Assertion
AssertionID="_c7ecbec589fb83a6aff2176535125169"
      IssueInstant="2006-07-24T16:26:22.000Z"
Issuer="myissuer"
      MajorVersion="1" MinorVersion="1"
      xmlns="urn:oasis:names:tc:SAML:1.0:assertion"
     
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
     
xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol">
....
</Assertion>

breaking signature verification.
Naturally setting the
"enableNamespacePrefixOptimization" parameter to
true solves this problem, but then this workaround can
create a
situation that seems an unsolvable problem to me.
As you know the "enableNamespacePrefixOptimization"
parameter was
introduced to solve a specular problem to that of my
SAML assertion,
when  we have a SOAP body like this:
 <soapenv:Body wsu:id="id-23412344"
   
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-2004";>
  <somepfx:SomeTag id="e0sdoaeckrpd"
xmlns="ns:uri:one"
    xmlns:somepfx="ns:uri:one">hello</somepfx:SomeTag>
  </soapenv:Body> 

this can work when received in Axis only if you set
"enableNamespacePrefixOptimization" parameter to
"false" otherwise the
signature validation will fail as the message would be
changed in:
<soapenv:Body wsu:id="id-23412344"
   
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-2004";>
  <SomeTag id="e0sdoaeckrpd" xmlns="ns:uri:one"
    xmlns:somepfx="ns:uri:one">hello</SomeTag>
  </soapenv:Body> 
see: https://issues.apache.org/jira/browse/AXIS-1624
for a discussion of
the problem an the solution proposed.

And now the unsolvable problem:
if i have a SOAP message with a SAML assertion and a
SOAP body like in
my example and i sign both, a receiving Axis service
will not be able to
validate both signatures:
-if i set "enableNamespacePrefixOptimization"
parameter to "false" the
SAML assertion signature validation will fail
-if i set "enableNamespacePrefixOptimization"
parameter to "true" the
SOAP body signature validation will fail.

Changing the SOAP clients can't be a solution, as they
are not always
under our control :)

Any idea on how to deal with this "deadlock"?
I tested only Axis 1.3 and 1.4. is there anyone using
Axis2/Axiom that
can report if the same problem still exist in this
release?

Regards,

Luciano

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to