<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en"><head><title>Draft: OpenID Attribute Types - Draft 02</title>
<meta http-equiv="Expires" content="Fri, 24 Nov 2006 17:51:01 +0000">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="OpenID Attribute Types - Draft 02">
<meta name="generator" content="xml2rfc v1.31 (http://xml.resource.org/)">
<style type='text/css'><!--
        body {
                font-family: verdana, charcoal, helvetica, arial, sans-serif;
                font-size: small; color: #000; background-color: #FFF;
                margin: 2em;
        }
h1, h2, h3, h4, h5, h6 {
                font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;
                font-weight: bold; font-style: normal;
        }
        h1 { color: #900; background-color: transparent; text-align: right; }
        h3 { color: #333; background-color: transparent; }
        td.RFCbug {
                font-size: x-small; text-decoration: none;
                width: 30px; height: 30px; padding-top: 2px;
                text-align: justify; vertical-align: middle;
                background-color: #000;
        }
        td.RFCbug span.RFC {
                font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
                font-weight: bold; color: #666;
        }
        td.RFCbug span.hotText {
                font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
                font-weight: normal; text-align: center; color: #FFF;
        }
        table.TOCbug { width: 30px; height: 15px; }
        td.TOCbug {
                text-align: center; width: 30px; height: 15px;
                color: #FFF; background-color: #900;
        }
        td.TOCbug a {
                font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
                font-weight: bold; font-size: x-small; text-decoration: none;
                color: #FFF; background-color: transparent;
        }
        td.header {
                font-family: arial, helvetica, sans-serif; font-size: x-small;
                vertical-align: top; width: 33%;
                color: #FFF; background-color: #666;
        }
        td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
        td.author-text { font-size: x-small; }
        /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
        a.info {
                /* This is the key. */
                position: relative;
                z-index: 24;
                text-decoration: none;
        }
        a.info:hover {
                z-index: 25;
                color: #FFF; background-color: #900;
        }
        a.info span { display: none; }
        a.info:hover span.info {
                /* The span will display just on :hover state. */
                display: block;
                position: absolute;
                font-size: smaller;
                top: 2em; left: -5em; width: 15em;
                padding: 2px; border: 1px solid #333;
                color: #900; background-color: #EEE;
                text-align: left;
        }
        a { font-weight: bold; }
        a:link { color: #900; background-color: transparent; }
        a:visited { color: #633; background-color: transparent; }
        a:active { color: #633; background-color: transparent; }
        p { margin-left: 2em; margin-right: 2em; }
        p.copyright { font-size: x-small; }
        p.toc { font-size: small; font-weight: bold; margin-left: 3em; }
        table.toc { margin: 0 0 0 3em; padding: 0; border: 0; vertical-align: text-top; }
        td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }
        ol.text { margin-left: 2em; margin-right: 2em; }
        ul.text { margin-left: 2em; margin-right: 2em; }
        li { margin-left: 3em; }
        /* RFC-2629 <spanx>s and <artwork>s. */
        em { font-style: italic; }
        strong { font-weight: bold; }
        dfn { font-weight: bold; font-style: normal; }
        cite { font-weight: normal; font-style: normal; }
        tt { color: #036; }
tt, pre, pre dfn, pre em, pre cite, pre span {
                font-family: "Courier New", Courier, monospace; font-size: small;
        }
        pre {
                text-align: left; padding: 4px;
                color: #000; background-color: #CCC;
        }
        pre dfn { color: #900; }
        pre em { color: #66F; background-color: #FFC; font-weight: normal; }
        pre .key { color: #33C; font-weight: bold; }
        pre .id { color: #900; }
        pre .str { color: #000; background-color: #CFF; }
        pre .val { color: #066; }
        pre .rep { color: #909; }
        pre .oth { color: #000; background-color: #FCF; }
        pre .err { background-color: #FCC; }
        /* RFC-2629 <texttable>s. */
        table.full, table.headers, table.none {
                font-size: small; text-align: center; border-width: 2px;
                vertical-align: top; border-collapse: collapse;
        }
        table.full { border-style: solid; border-color: black; }
        table.headers, table.none { border-style: none; }
        th {
                font-weight: bold; border-color: black;
                border-width: 2px 2px 3px 2px;
        }
        table.full th { border-style: solid; }
        table.headers th { border-style: none none solid none; }
        table.none th { border-style: none; }
        table.full td {
                border-style: solid; border-color: #333;
                border-width: 1px 2px;
        }
        table.headers td, table.none td { border-style: none; }
        hr { height: 1px; }
        hr.insert {
                width: 80%; border-style: none; border-width: 0;
                color: #CCC; background-color: #CCC;
        }
--></style>
</head>
<body>
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">
<tr><td class="header">Draft</td><td class="header">D. Hardt</td></tr>
<tr><td class="header"> </td><td class="header">Sxip Identity</td></tr>
<tr><td class="header"> </td><td class="header">November 24, 2006</td></tr>
</table></td></tr></table>
<h1><br />OpenID Attribute Types - Draft 02</h1>
<h3>Abstract</h3>
<p>
        This document describes how OpenID attribute properties are
        defined and created.
</p><a name="toc"></a><br /><hr />
<h3>Table of Contents</h3>
<p class="toc">
<a href="#anchor1">1.</a>
Overview<br />
<a href="#anchor2">2.</a>
Terminology<br />
<a href="#anchor3">2.1.</a>
Definitions and Conventions<br />
<a href="#anchor4">3.</a>
Attribute Type Definition<br />
<a href="#attribute-format-types">3.1.</a>
Attribute Format Types<br />
<a href="#anchor5">4.</a>
Attribute Creation<br />
<a href="#anchor6">4.1.</a>
New Attribute Process<br />
<a href="#anchor7">4.2.</a>
New Attribute Data Format Process<br />
<a href="#anchor8">4.3.</a>
Attribute Type Identifiers<br />
<a href="#rfc.references1">5.</a>
References<br />
<a href="#rfc.references1">5.1.</a>
Normative References<br />
<a href="#rfc.references2">5.2.</a>
Non-normative References<br />
<a href="#rfc.authors">§</a>
Author's Address<br />
</p>
<br clear="all" />
<a name="anchor1"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.1"></a><h3>1.
Overview</h3>
<p>
        OpenID (<a class='info' href='#OpenID.authentication-2.0'>[OpenID.authentication‑2.0]<span> (</span><span class='info'>Recordon, D., Hoyt, J., and B. Fitzpatrick, “OpenID Authentication 2.0 - Draft 08,” August 2006.</span><span>)</span></a>) identity
        attributes are pieces of identity data that may be transferred
        using the OpenID Attribute Exchange extension (<a class='info' href='#OpenID.attribute-exchange-1.0'>[OpenID.attribute‑exchange‑1.0]<span> (</span><span class='info'>Hardt, D., “OpenID Attribute Exchange,” August 2006.</span><span>)</span></a>). They are uniquely
        identified by a URI, and have associated meta-data describing
        them.
</p>
<p>
        As attributes are continually being added, this document does
        not attempt to enumerate them. Rather, the process for
        definition and creation of the attributes is listed. Only
        attributes in the "schema.openid.net" name space are pertinent
        to this discussion; there are no restrictions on the
        definition and creation of attributes in other name spaces.
</p>
<a name="anchor2"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.2"></a><h3>2.
Terminology</h3>
<a name="anchor3"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.2.1"></a><h3>2.1.
Definitions and Conventions</h3>
<p>
         </p>
<blockquote class="text"><dl>
<dt>Identity Attribute Type</dt>
<dd>
         Identity attribute types (also referred to as simply
         "attribute types") are types of subject properties
         expressed in an identity context. Examples are
         "surname" or "birth date".
        
</dd>
<dt>Identity Attribute Format Type</dt>
<dd>
         The identity attribute format type ("format type")
         refers to the layout of the data in the value of an
         identity attribute type. They may be as simple as a
         normalized string or as complicated as a telephone
         number format.
        
</dd>
</dl></blockquote><p>
        
</p>
<a name="anchor4"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.3"></a><h3>3.
Attribute Type Definition</h3>
<p>
        Attributes defined in the "schema.openid.net" name space are
        listed in the index document at <a href='http://schema.openid.net/'>http://schema.openid.net/</a>. Each attribute is also
        defined by resolving its attribute type identifier URI. The
        format for the meta-data in the definition document is
        outlined in <a class='info' href='#identity-attribute-metadata-1.0'>[identity‑attribute‑metadata‑1.0]<span> (</span><span class='info'>Hardt, D., “Identity Attribute Metadata,” October 2006.</span><span>)</span></a>.
        The meta-data at "schema.openid.net" is recorded in XML but
        may be expressed in a human readable format using XSLT.
</p>
<p>
        The meta-data recorded includes the format of the type's value
        and a localized label and description. Optional data
        including examples, cross references and acquisition and
        authority information may also be recorded.
</p>
<a name="attribute-format-types"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.3.1"></a><h3>3.1.
Attribute Format Types</h3>
<p>
         Base types for the format of the identity data values are
         also stored in the schema.openid.net name space. The type
         index is located at <a href='http://schema.openid.net/types/'>http://schema.openid.net/types/</a>. Type data is
         expressed in XML Schema format as specified in <a class='info' href='#identity-attribute-metadata-1.0'>[identity‑attribute‑metadata‑1.0]<span> (</span><span class='info'>Hardt, D., “Identity Attribute Metadata,” October 2006.</span><span>)</span></a>.
        
</p>
<a name="anchor5"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.4"></a><h3>4.
Attribute Creation</h3>
<a name="anchor6"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.4.1"></a><h3>4.1.
New Attribute Process</h3>
<p>
        New OpenID identity data attribute types may be proposed by
        any interested parties; this section outlines the process
        involved in doing so. Note that this process only applies to
        identity types in the "schema.openid.net" name space. Anyone
        is free to implement attribute types in other name spaces.
</p>
<p>
        </p>
<ol class="text">
<li>
         The first step in proposing a new identity attribute type is to
         search the list of existing types for similar attributes.
         Duplication of attribute types should be avoided.
        
</li>
<li>
         Post an "intent to define" message to the mailing list at
         schema@openid.net. The email should describe the proposed
         type in general terms. Posting this to the list will
         reduce duplicated effort in the case of multiple parties
         defining similar types. Intent posts will also generate
         discussion that may be used to determine if it is
         worthwhile to pursue the proposal.
        
</li>
<li>
         The attribute type should be completely described both in
         regular prose and in the meta-data format defined in <a class='info' href='#identity-attribute-metadata-1.0'>[identity‑attribute‑metadata‑1.0]<span> (</span><span class='info'>Hardt, D., “Identity Attribute Metadata,” October 2006.</span><span>)</span></a>. Tools to help
         create and validate the meta-data will likely evolve.
        
</li>
<li>
         Post a "proposed attribute" message to the mailing list at
         <tt>schema@openid.net</tt>, including
         the attribute type identifier, motivation, description and
         meta-data. An administrator will post the attribute type
         meta-data to the experimental <tt>http://openid.net/x/</tt> area.
        
</li>
<li>
         Discussions on the list will dictate whether or not the
         proposal passes. If the consensus is that the proposed
         attribute type is worth pursuing, the type will be moved
         into the non-experimental name space and the <tt>schema@openid.net</tt> list notified.
        
</li>
</ol><p>
</p>
<p>
        The approval stage of the process is deliberately vague; the idea
        being that a more detailed process will emerge as more interested
        parties take part. In any case, approval should be the default action
        if there is no vocal disapproval and the proposed type is not a
        duplicate of an existing type.
</p>
<a name="anchor7"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.4.2"></a><h3>4.2.
New Attribute Data Format Process</h3>
<p>
         New attribute data format types are proposed and approved in
         a similar manner to attribute types themselves. The
         proposed type is sent to the list expressed in XML Schema
         (<a class='info' href='#W3C.REC-xmlschema-2-20041028'>[W3C.REC‑xmlschema‑2‑20041028]<span> (</span><span class='info'>Biron, P. and A. Malhotra, “XML Schema Part 2: Datatypes Second Edition,” October 2004.</span><span>)</span></a>) format as
         outlined in <a class='info' href='#identity-attribute-metadata-1.0'>[identity‑attribute‑metadata‑1.0]<span> (</span><span class='info'>Hardt, D., “Identity Attribute Metadata,” October 2006.</span><span>)</span></a>. Often format
         type proposals will accompany an attribute type proposal; in
         this case it is acceptable to combine the two proposals.
        
</p>
<p>
        </p>
<ol class="text">
<li>
         The first step in proposing a new attribute format type is to
         search the list of existing types for similar types.
         Duplication of format types should be avoided.
        
</li>
<li>
         Post an "intent to define" message to the mailing list at
         schema@openid.net. The email should describe the proposed
         type in general terms. Posting this to the list will
         reduce duplicated effort in the case of multiple parties
         defining similar types. Intent posts will also generate
         discussion that may be used to determine if it is
         worthwhile to pursue the proposal.
        
</li>
<li>
         The format type should be completely described both in
         regular prose and in the meta-data format defined in <a class='info' href='#identity-attribute-metadata-1.0'>[identity‑attribute‑metadata‑1.0]<span> (</span><span class='info'>Hardt, D., “Identity Attribute Metadata,” October 2006.</span><span>)</span></a>.
        
</li>
<li>
         Post a "proposed format type" message to the mailing list
         at <tt>schema@openid.net</tt>,
         including the motivation, description and meta-data. An
         administrator will post the attribute type meta-data to
         the experimental <tt>http://openid.net/type/x/</tt> area.
        
</li>
<li>
         Discussions on the list will dictate whether or not the
         proposal passes. If the consensus is that the proposed
         format type is worth pursuing, the type will be moved
         into the non-experimental name space and the <tt>schema@openid.net</tt> list notified.
        
</li>
</ol><p>
</p>
<a name="anchor8"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.4.3"></a><h3>4.3.
Attribute Type Identifiers</h3>
<p>
        Attribute type identifiers should be created with the
        following considerations:
        </p>
<ul class="text">
<li>
         Attribute type identifiers MUST conform to the generic URI
         syntax described in <a class='info' href='#RFC2396'>[RFC2396]<span> (</span><span class='info'>Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifiers (URI): Generic Syntax,” August 1998.</span><span>)</span></a>.
        
</li>
<li>
         The OpenID authority portion of the URI is <tt>schema.openid.net</tt>.
        
</li>
<li>
         Each URI resolves to an RDF representation of the type's
         meta-data as defined in <a class='info' href='#identity-attribute-metadata-1.0'>[identity‑attribute‑metadata‑1.0]<span> (</span><span class='info'>Hardt, D., “Identity Attribute Metadata,” October 2006.</span><span>)</span></a>.
        
</li>
<li>
         URIs should, where possible, re-use existing paths in the
         schema.openid.net namespace.
        
</li>
<li>
         The URI path should be kept as short as possible.
        
</li>
<li>
         URI fragment specifiers should not be used.
        
</li>
</ul><p>
</p>
<a name="rfc.references"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<a name="rfc.section.5"></a><h3>5.
References</h3>
<a name="rfc.references1"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<h3>5.1. Normative References</h3>
<table width="99%" border="0">
<tr><td class="author-text" valign="top"><a name="OpenID.attribute-exchange-1.0">[OpenID.attribute-exchange-1.0]</a></td>
<td class="author-text"><a href="mailto:dick@sxip.com">Hardt, D.</a>, “OpenID Attribute Exchange,” August 2006 (<a href="http://www.openid.net/specs/openid-attribute-exchange-1_0-01.txt">TXT</a>, <a href="http://www.openid.net/specs/openid-attribute-exchange-1_0-01.html">HTML</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="OpenID.authentication-2.0">[OpenID.authentication-2.0]</a></td>
<td class="author-text"><a href="mailto:drecordon@verisign.com">Recordon, D.</a>, <a href="mailto:josh@janrain.com">Hoyt, J.</a>, and <a href="mailto:brad@danga.com">B. Fitzpatrick</a>, “OpenID Authentication 2.0 - Draft 08,” August 2006 (<a href="http://www.openid.net/specs/openid-authentication-2_0-08.txt">TXT</a>, <a href="http://www.openid.net/specs/openid-authentication-2_0-08.html">HTML</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="W3C.REC-xmlschema-2-20041028">[W3C.REC-xmlschema-2-20041028]</a></td>
<td class="author-text">Biron, P. and A. Malhotra, “<a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028">XML Schema Part 2: Datatypes Second Edition</a>,” World Wide Web Consortium Recommendation REC-xmlschema-2-20041028, October 2004 (<a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028">HTML</a>).</td></tr>
<tr><td class="author-text" valign="top"><a name="identity-attribute-metadata-1.0">[identity-attribute-metadata-1.0]</a></td>
<td class="author-text"><a href="mailto:dick@sxip.com">Hardt, D.</a>, “Identity Attribute Metadata,” October 2006 (<a href="http://www.openid.net/specs/identity-attribute-metadata-1_0-01.txt">TXT</a>, <a href="http://www.openid.net/specs/identity-attribute-metadata-1_0-01.html">HTML</a>).</td></tr>
</table>
<a name="rfc.references2"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<h3>5.2. Non-normative References</h3>
<table width="99%" border="0">
<tr><td class="author-text" valign="top"><a name="RFC2396">[RFC2396]</a></td>
<td class="author-text"><a href="mailto:timbl@w3.org">Berners-Lee, T.</a>, <a href="mailto:fielding@ics.uci.edu">Fielding, R.</a>, and <a href="mailto:masinter@parc.xerox.com">L. Masinter</a>, “<a href="ftp://ftp.isi.edu/in-notes/rfc2396.txt">Uniform Resource Identifiers (URI): Generic Syntax</a>,” RFC 2396, August 1998 (<a href="ftp://ftp.isi.edu/in-notes/rfc2396.txt">TXT</a>, <a href="http://xml.resource.org/public/rfc/html/rfc2396.html">HTML</a>, <a href="http://xml.resource.org/public/rfc/xml/rfc2396.xml">XML</a>).</td></tr>
</table>
<a name="rfc.authors"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc"> TOC </a></td></tr></table>
<h3>Author's Address</h3>
<table width="99%" border="0" cellpadding="0" cellspacing="0">
<tr><td class="author-text"> </td>
<td class="author-text">Dick Hardt</td></tr>
<tr><td class="author-text"> </td>
<td class="author-text">Sxip Identity</td></tr>
<tr><td class="author-text"> </td>
<td class="author-text">798 Beatty Street</td></tr>
<tr><td class="author-text"> </td>
<td class="author-text">Vancouver, BC V6B 2M1</td></tr>
<tr><td class="author-text"> </td>
<td class="author-text">CA</td></tr>
<tr><td class="author" align="right">Email: </td>
<td class="author-text"><a href="mailto:dick@sxip.com">dick@sxip.com</a></td></tr>
<tr><td class="author" align="right">URI: </td>
<td class="author-text"><a href="http://sxip.com/">http://sxip.com/</a></td></tr>
</table>
</body></html>