hi voms folks, all,
The current voms SAML assertion is not compatible with WS-Security SAML Token profile. I would ask is there any plan to change it to make it be compatible? I ask this because I think if so, the SAML assertion can be used for SOAP message layer authentication, other than just including SAML attribute assertion.
Thanks
Weizhong Qiang
Thanks to Benjamin for posting this VOMS-SAML response to gt-user. A
critique (of the SAML, not Benjamin :) follows.
- Note that the output is a <samlp:Response> element, not a
<saml:Assertion> element. This is wrong. The requester must consume
the response. Not sure why this isn't happening.
- The value of the <saml:Issuer> element in the response is a DN but
the Format XML attribute is missing. This is a bug. The default
Format is "unspecified" but clearly this is not.
- Second-level status codes are desirable so they can be echoed on the
command line (if any).
- Same comment about the <saml:Issuer> element in the assertion.
- The use of SAML metadata requires that the Format on the
<saml:Issuer> element be "entity" but clearly it is not. Thus the use
of SAML metadata by the relying party is precluded.
- Don't know if Shibboleth/OpenSAML can verify the signature (which is
tricky business). This is a future experiment that needs to be done.
- The <saml:SubjectConfirmation> element contains a
<ds:X509Certificate> element, which precludes the binding of this
holder-of-key assertion to a proxy certificate. This is a bug. Use a
<ds:X509SubjectName> element instead (which causes the NameID itself
to be redundant).
- If the assertion is bound to a proxy certificate, the NotBefore and
NotOnOrAfter attributes are redundant and superfluous. In fact, they
may be wrong since they must agree with the NotBefore and NotOnOrAfter
fields of the proxy.
- Since the client authenticated directly to the server, a
<saml:AuthnStatement> is desirable (not required, but potentially
useful at the relying party).
- The NameFormat XML attribute on the <saml:Attribute> element should
be "uri" not "unspecified".
- The "xsi:" prefix on the <saml:AttributeValue> element is undefined.
This is a bug.
- The <saml:AttributeValue> elements do not conform to the XACML
Attribute Profile (actually, I don't think the attributes conform to
*any* SAML V2.0 attribute profile).
Hope this helps,
Tom
---------- Forwarded message ----------
From: Benjamin Henne <henne@rvs.uni-hannover.de>
Date: Wed, Feb 4, 2009 at 1:59 AM
Subject: Re: [gt-user] SAML based VOMS Server
To: Tom Scavo <trscavo@gmail.com>
Cc: GT User <gt-user@globus.org>
<Response xmlns="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="_d01d46b7-d16a-4ae8-b9bb-beb8844838b6"
InResponseTo="_qwertyuiopasdfghjklzxcvbn"
IssueInstant="2008-10-16T19:03:57.922Z" Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">CN=voms3.gridlab.uni-hannover.de,OU=UniHannover,O=GermanGrid,C=DE</saml:Issuer>
<Status>
<StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</Status>
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_81b685e5-4650-4ba9-b1c6-0ed957cc33ac"
IssueInstant="2008-10-16T19:03:57.920Z" Version="2.0">
<saml:Issuer>CN=voms3.gridlab.uni-hannover.de,OU=UniHannover,O=GermanGrid,C=DE</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_81b685e5-4650-4ba9-b1c6-0ed957cc33ac">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"><ec:InclusiveNamespaces
xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ds saml
xs"/></ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>j55K/cn8GQNuTQ52Kr3r0NGRJ0w=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
...
</ds:SignatureValue>
<ds:KeyInfo><ds:X509Data><ds:X509Certificate>...</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature>
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">CN=Benjamin
Henne,OU=UniHannover,O=GermanGrid,C=DE</saml:NameID>
<saml:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
<saml:SubjectConfirmationData>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</saml:SubjectConfirmationData>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2008-10-16T19:03:57.920Z"
NotOnOrAfter="2008-10-17T06:03:57.920Z"/>
<saml:AttributeStatement>
<saml:Attribute Name="http://voms.forge.cnaf.infn.it/roles"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:string">VO-Admin@/RVS</saml:AttributeValue>
<saml:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:string">resass@/RVS/education</saml:AttributeValue>
<saml:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:string">staff@/RVS/research/SAML</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="nationality"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:string">German</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="http://voms.forge.cnaf.infn.it/group"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:string">/RVS/education</saml:AttributeValue>
<saml:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:string">/RVS</saml:AttributeValue>
<saml:AttributeValue
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:string">/RVS/research</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</Response>