Home

Specifications

Schema

Commentary

Mark Wahl


Web Design by
Kristen Lanum

Commentary by Mark Wahl, CISA

Organizing principles for systems:
Value metadata in identity protocols (20070522)

One design pattern typical of many identity systems and protocols is that

This has been true for:

Protocol Value Metadata Extensions
X.500(1997) validity periods (notBefore through notAfter)
LDAPv3 language tags (RFC 2596 and RFC 3866)
"dynamic" indicator
OpenID AX language tags

There are numerous implementation approaches for adding support for value metadata in identity protocols, including

Mike Jones of Microsoft wrote in Interoperable Verified Identity Claims on an additional form of value metadata of interest to CardSpace: indicating whether an attribute value has been verified, and if so, by whom, how, and the validity period of this verification. He suggests a syntax of a rich attribute for a "verified name", such as

<verified>
  <value type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname">Michael</value>
  <who type="http://www.w3.org/2001/XMLSchema#string">Acme Data Provider</who>
  <when type="http://www.ietf.org/rfc/rfc3339.txt">2007-05-14T16:30:00Z</when>
</verified>

One key question when designing a value metadata representation system is how value metadata combine on a single value. If metadata labels X and Y both attach to a value V, must a receiver understand any of X, Y, or the combination of X and Y, in order to parse V? If a receiver understands X but does not support Y, can the receiver determine that X is present on that value?

An example of where an attribute value might have multiple metadata is a university student's on-campus housing address.

A receiver of this information may wish to only see attributes that have been verified by one of the colleges in the university, and may not be interested in knowing who issued the value or whether it has an expiry date. How difficult would it be to capture this concept in each of the approaches:

Scorecard
X.500(1997) context approach straightforward; each label would be its own context
LDAPv3 attribute description approach would be difficult to describe
integrating metadata into the value approach not recommended
different attribute approach, with many rich attributes would require a sender or receiver to implement a component similar to the Schemat Consumer
different attribute approach, with a single rich attributestraigtforward, so long as there is a flexible transfer syntax, but would also require rich update semantic operations in protocols which support update