a SAML enabled VOMS

Which binding to use?

[SAMLCore] defines assertion and request-response protocol messages. [SAMLBind] defines bindings of SAML protocol message to underlying communication and messaging protocols. [OGSAAuthzService] implicitly define another binding by specifying a WSDL with an operations that wrap the Request-Response protocol. We need to decide which binding to support and whether to define others.

Request/Response [< OGSA Authorization Service] < SOAP < {HTTP, HTTPS, HTTP over GSI}

Translating attributes used in VOMS to SAML

VOMS releases to users attributes regarding VO membership and role's ownership in form of an Attribute Certificate conforming to RFC3281 (http://www.ietf.org/rfc/rfc3281.txt). Currently it release two kinds of attributes

Fully Qualified Attribute Name

A FQAN encode the position of the holder inside the vo. A user may be a member of several groups in a vo and may or may not hold a role in the groups he's a member of. This attribute use the following ASN1 syntax
IetfAttrSyntax ::= SEQUENCE {
policyAuthorty [0] GeneralNames OPTIONAL,
values                 SEQUENCE OF CHOICE {
  octets OCTET STRING,
  string  UTF*String
where policyAuthority contains an encoding of bth the VO which the AC issuer serves and the host which generated the attribute in the form of a URI voname:fqhn:port. This would translate pretty good using SAML 2.0 with
<Attribute xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
           AttributeName="/vo/group/Role=role" AttributeNamespace="vo:host:port">
where the AttributeValue element of the Attribute element is optional. In 1.1 it is not thus forcing us to use
<Attribute xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
           AttributeName="/vo/group/Role=role" AttributeNamespace="vo:host:port">

Tag List

Tag list are generic key-value pair can be used to specify attributes that don't map in the group/role paradigm. This attribute use the following ASN1 syntax
TagList ::= SEQUENCE {
policyAuthorty GeneralNames,
tags                    SEQUENCE OF Tag 
Tag ::= SEQUENCE {
  name       OCTET STRING
  value       OCTET STRING
  qualifier OCTET STRING
that translates using SAML in
<Attribute xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
           AttributeName="attributeName" AttributeNamespace="vo:host:port">

SAML assertions vs. Attribute Certificate?

SAML assertions can allocate all the informations contained in Attribute Certificate. Here's a SAML assertion containing an Attribute statement, omitted attribute and signature informations

<Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion"
           MajorVersion="1" MinorVersion="1">
  <Conditions NotBefore="2006-05-24T16:12:36Z" NotOnOrAfter="2006-05-25T04:12:36Z"/>
      <NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">
        /C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Valerio Venturi/
    <Attribute ...
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" ..........

main concern is with the assertion's subject specification. Attribute Certificate used issuer (certification authority) and serial number of the user's X509 certificate, while saml assertion rely only on the subject of the X509 certificate, unless SubjectConfirmation element is used. Since there are concerns whether dn are good unique identifier, using SubjectConfirmation is suggested.


[SAMLCore] Assertion and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0, OASIS Standard, 15 March 2005, available at http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf

[SAMLBind] Bindings fro the OASIS Security Assertion Markup Language (SAML) V2.0, OASIS Standard, 15 March 2005, available at http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf

[OGSAAuthzService] Welch, Siebenlist, Chadwick, Meder, Pearlman, Use of SAML for OGSA Authorization, September 2003, available at https://forge.gridforum.org/sf/docman/do/downloadDocument/projects.ogsa-authz/docman.root.authz_service/doc9006

Topic revision: r3 - 2006-07-11 - ValerioVenturi
This site is powered by the TWiki collaboration platformCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback