[OpenID] openid, foaf and attribute exchange

Peter Williams pwilliams at rapattoni.com
Thu Jul 26 00:08:52 UTC 2007


So...I'm getting more convinced at least on the issues related to the
topic of OpenID Exchange, based on our actual recent experiences.

I know in the SAML deployment of webSSO we did recently, we struggled to
indicate within the SAML message the full typing and syntax and naming
of the attributes we were publishing. I'm still not sure whether the
SAML standard does or does not allow for namespace-based
registration/declaration of attribute names. I cannot fathom for the
life of me whether it has a means to define and then indicate value
specs.  I found myself almost wanting to simply take complete control,
and put an LDAP string-encoded name=value pair in there, referencing the
oid of the attribute back to the IETF spec in question. I.e. Just borrow
LDAP-representations/X500-definitions of values...even tho. no LDAP
server is actually involved (in our case).


Whilst the problem I mention above is REAL, it may be a function of the
SAML product I'm using - which is trying really hard NOT to make SAML2
as difficult as humanly possible. This obviously means dropping features
from frontline support that ... hardly anyone ever needs. While I can
easily already publish my (signed) metadata-attribute contracts and
store them in a repository that it itself declaring metadata about these
SAML metadata resources to allow for searching, the value typing/syntax
signaling support seems entirely missing in the metadata as in the
messages. I don't know whether the problem is the standard, the product,
or me. Whichever the case, it's a pain, as doing something trivial has
become a pain (yet again).


-----Original Message-----
From: general-bounces at openid.net [mailto:general-bounces at openid.net] On
Behalf Of Mark Wahl
Sent: Wednesday, July 25, 2007 4:21 PM
To: Story Henry
Cc: ID Schemas; general at openid.net
Subject: Re: [OpenID] openid, foaf and attribute exchange

Story Henry wrote:
> 
> mhh.. Not sure I understand. Yes there are some relations that need to

> be defined, but that's not difficult...

I'll take that with a :-)

> Is this the kind of relation you are working on there?  

Similar.

The goal of the Identity Schemas working group as I understand them
would be to enable a user, community, or organization, such as Sun
for example, to:

  * reference well-known base ontologies by which identity schemas are
    constructed and identified (FOAF in RDF, { inetOrgPerson User
eduPerson
    } in LDAP, the Microsoft self-asserted claims list for InfoCard...,
    which today have no consistent human AND machine readable
    representation,

  * be able to choose from well-known identity schema elements for
    use in modelling the attributes of identities, to avoid needless
    redefinition of schema,

  * if there is no existing schema element for Sun's purpose, enable
    Sun's definition of a new schema element to have published
    metadata that expresses its syntax AND semantics, so that external-
    to-Sun application developers AND external-to-Sun applications which
    encounter users who have that attribute in their identity will
    know what to do with it.

For example, suppose Sun decides it wants to have a sunEmployeeNumber
attribute in the OpenIDs or FOAF files of its employees.  The metadata
Sun publishes for that attribute type might include typical schema
stuff like
  - that the attribute is a subtype of the inetOrgPerson/pilotPerson
    employeeNumber attribute,
  - that the values of this attribute are positive decimal integers,
  - that the sunEmployeeNumber is assigned by Sun,
  - that Sun employees have exactly one sunEmployeeNumber,
  - that no two Sun employees share the same sunEmployeeNumber,
  - that once an employee stops being an employee, their number is not
    reassigned,

or 'more interesting' statements like
  - that a sunEmployeeNumber is only valid if it comes in a protocol
    exchange from an address mappable to the *.sun.com domain signed
    a with certificate issued by a sun CA,
  - that the values of the sunEmployeeNumber are not permitted to
    be transferred outside of the safe harbor as they contain personal
    identifying information,
  - that a web service to check whether a value is still valid is
    openid.sun.com/checkID/, ...

This is necessary as schema definitions proliferate and this shows no
signs of slowing down.  Each new protocol/data format defines its own
"yet another" way of modeling people as a bunch of { properties
attributes
name=value pairs claims }.  Every enterprise or service provider
software application and large enterprise defines its own models.

As this is inevitable, it is necessary to be able to describe the
relationships
between identity schemas.  For example, that many LDAP attributes are
just the
X.500 attributes with different names, that many FOAF properties are
IETF
standards-track LDAP attributes with different names, OpenID AX
attributes
are ...


First, there are some basic relations for schema elements themselves,
such as

* "defined by"/"change controlled by": e.g. to express that the
organization
   Microsoft defined PPID attribute, and that the organization IETF has
change
   control for the inetOrgPerson object class.

* "same as": e.g. to express that cn defined in LDAP and commonName
defined
   in X.500(93) are the same attribute type,

* "similar purpose": e.g., { cn commonName department departmentName fn
     fullname g givenName o organizationName organizationalUnitName ou
     sn surname } are all types of attributes whose values are names
that
   people use to identify individuals and organizations,

* "appropriateness for context": e.g., do not use the ism attribute of
my
   name in social networking, use the kunya or -urf attributes, if
present,
   otherwise use the nisba.

* "grouping": e.g., homeTelephone and homeAddress are more closely
related
   to the concept of a person's domicile than businessFaxNumber.

* "ordering": e.g., when displaying my full name, my middleName
   comes after my givenName and before my surname, and my
generationalQualifier
   comes after my surname,

* "sorting": e.g., in the en-US locale of white pages listings of
individuals,
   surname sorts before givenName.

* "contains": e.g., fullName contains surname, postalAddress contains
   postalCode.

Second, there are relations for all attributes of a particular type. For
example,

  * "acquisition": to get your own value of the screenName attribute,
sign up
    with AOL, and to get a flickrAppKey, sign up with Yahoo.

  * "assigner": the values of sunEmployeeID are assigned by Sun, but are
    restricted: someone can't just "get" one.

Third, there are relations for values. For example,

  * "validated by": the CA DMV validates that this driversLicenseNumber
12345
    is correct for this fullLegalName "joe bloggs" and streetAddress
"maple
    street" as of 5/2007.

>> which can be expressed in RDF and retrieved via "GET", as described
in
>> http://idschemas.idcommons.net/moin.cgi/BasicRetrieval
> 
> That looks like a formalization of the RDF linked data practice. It is

> pretty simple right,
> you do a GET on a URL and you will get a representation back in
rdf/xml 
> if you do your content negotiation right.

Yes, RDF in XML is one encoding of identity schemas metadata.

Mark Wahl
Informed Control Inc.

_______________________________________________
general mailing list
general at openid.net
http://openid.net/mailman/listinfo/general



More information about the general mailing list