<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>//dennisbloete &#187; Attribute Exchange</title>
	<atom:link href="http://dennisbloete.de/tags/attribute-exchange/feed/" rel="self" type="application/rss+xml" />
	<link>http://dennisbloete.de</link>
	<description>Arbeit und Alltag eines Software-Entwicklers aus Bremen</description>
	<lastBuildDate>Wed, 21 Jul 2010 07:13:46 +0000</lastBuildDate>
	<language>de-de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Defining Attributes for OpenID AX</title>
		<link>http://dennisbloete.de/blog/definining-openid-ax-attributes/</link>
		<comments>http://dennisbloete.de/blog/definining-openid-ax-attributes/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 22:31:36 +0000</pubDate>
		<dc:creator>Dennis</dc:creator>
				<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Attribute Exchange]]></category>
		<category><![CDATA[AX]]></category>
		<category><![CDATA[EduPerson]]></category>
		<category><![CDATA[Shibboleth]]></category>

		<guid isPermaLink="false">http://blog.dopefreshtight.de/?p=276</guid>
		<description><![CDATA[In one of my last articles I wrote about Attribute Exchange and how this namespace can be used to exchange whatever personal data you like. You are not bound to a fixed set of attributes like the one that the Simple Registration extension offers, because you can define your own type identifiers. In case you [...]]]></description>
			<content:encoded><![CDATA[<p>In one of my last articles I wrote <a href="http://blog.dopefreshtight.de/artikel/on-openid-attribute-exchange/">about Attribute Exchange</a> and how this namespace can be used to exchange whatever personal data you like. You are not bound to a fixed set of attributes like the one that the <a href="http://openid.net/specs/openid-simple-registration-extension-1_0.html">Simple Registration</a> extension offers, because you can define your own type identifiers.</p>
<p>In case you want to get more advanced and use OpenID for lightweight identity management this essential, because you probably have to exchange data other than the eight attributes offered by SReg &#8211; for instance an address or phone number. This can be done using AX and as long as Relying Party and Identity Provider support the same set of attributes/type identifiers there is no problem. There aren&#8217;t many IPs and RPs with AX support out there yet, but this will improve as with <a href="http://www.axschema.org/types/">AXSchema.org</a> there are already some type identifiers defined that both sides can pick up and support.</p>
<p>At the <a href="http://www.uni-bremen.de/">University of Bremen</a> we are implementing an <a href="https://openid.tzi.de/">OpenID Identity Provider</a> so that students can use their OpenID to sign up for courses, log into elearning systems and prove their student status. We need to exchange attributes that are <a href="http://willnorris.com/2007/11/try-reuse-catch-ex-reinvent">typically used in higher education</a> like matriculation number (somewhat comparable to a student id), their affiliation and degree program. This is beyond the scope of what is already defined at AXSchema.org and so we needed to come up with our own attribute type identifiers.</p>
<p>Reading about how to do that, you will come across an <a href="http://factoryjoe.com/blog/2007/11/01/hcard-for-openid-simple-registration-and-attribute-exchange/">article by Chris Messina</a> in which he talks about looking for existing standards that you can build on top of. As an example he mentions the vCard which could have been used to associate attributes with an already standardized name &#8211; unfortunately it was not and now attributes are named differently in SReg and AX. This is an important point as there are so many existing standards out there, but somehow we tend to always <a href="http://factoryjoe.com/blog/2008/06/04/inventing-contact-schemas-for-fun-and-profit-ugh/">reinvent the wheel &#8211; even nowadays</a>. If you would like to dig further into the discussion of how to combine OpenID and vCard you can read <a href="http://tantek.com/log/2007/11.html#d02t2318">Tantek&#8217;s Toughts on this</a> &#8211; he offers a modest solution for the problem, too.</p>
<p>I finally decided to turn to Shibboleth and it&#8217;s <a href="http://www.educause.edu/eduperson/949">EduPerson object class</a> which includes names for some of the attributes we need to exchange. What I could not find there I took from what the <a href="https://www.aai.dfn.de/der-dienst/attribute/">DFN-AAI</a> and <a href="http://www.switch.ch/aai/support/documents/attributes.html">SWITCH</a> had defined &#8211; here are <a href="https://openid.tzi.de/spec/schema">the resulting schemes</a>.</p>
<p>Conclusion: Watch out for existing standards if you have to define your own attributes as this will at least offer the option for portability in the future. There is a lot of work to be done in standardizing much more attributes than the ones defined by AXSchema.org, but Attribute Exchange already offers enough possibilities to use OpenID for lightweight identity management &#8211; especially when you are dealing with a known circle of IPs and RPs.</p>
<p>This post and the decision to use EduPerson and the attributes defined by the DfN was inspired by some discussions I&#8217;ve had after giving <a href="http://dennisbloete.de/stuff/digitale_medien/bachelorreport/slides/openid-attribute-exchange.html">my talk on Attribute Exchange and defining attributes</a> (slides are in german) at the <a href="http://barcamp.org/IdentityCampBremen">IdentityCamp Bremen</a> two weeks ago. Thanks at <a href="http://henrik.biering.dk/">Henrik Biering</a> and <a href="http://marquarts.net/mnblog/">Tobias Marquart</a> for their thoughts on this.</p>
<p class="simpletags">Technorati Tags: <a href="http://technorati.com/tag/Attribute+Exchange" rel="tag">Attribute Exchange</a>, <a href="http://technorati.com/tag/AX" rel="tag"> AX</a>, <a href="http://technorati.com/tag/openID" rel="tag"> openID</a>, <a href="http://technorati.com/tag/Shibboleth" rel="tag"> Shibboleth</a>, <a href="http://technorati.com/tag/EduPerson" rel="tag"> EduPerson</a>, <a href="http://technorati.com/tag/DfN" rel="tag"> DfN</a>, <a href="http://technorati.com/tag/hCard" rel="tag"> hCard</a>, <a href="http://technorati.com/tag/Higher+Education%3Cspan+class%3D%22filedto%22%3E" rel="tag"> Higher Education<span class="filedto"></a></p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://dennisbloete.de/blog/definining-openid-ax-attributes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On OpenID Attribute Exchange</title>
		<link>http://dennisbloete.de/blog/on-openid-attribute-exchange/</link>
		<comments>http://dennisbloete.de/blog/on-openid-attribute-exchange/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 23:01:00 +0000</pubDate>
		<dc:creator>Dennis</dc:creator>
				<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Attribute Exchange]]></category>
		<category><![CDATA[AX]]></category>

		<guid isPermaLink="false">http://blog.dopefreshtight.de/?p=273</guid>
		<description><![CDATA[OpenID lets users verify the ownership of an identifier &#8211; namely their OpenID URL. The protocol can also be used to exchange further data and that is what the extensions SReg (Simple Registration) and Attribute Exchange are for. You all probably know the case where you sign up for a new service using your OpenID: [...]]]></description>
			<content:encoded><![CDATA[<p>OpenID lets users verify the ownership of an identifier &#8211; namely their OpenID URL. The protocol can also be used to exchange further data and that is what the extensions <a href="http://openid.net/specs/openid-simple-registration-extension-1_0.html">SReg</a> (Simple Registration) and <a href="http://openid.net/specs/openid-attribute-exchange-1_0.html">Attribute Exchange</a> are for.</p>
<p>You all probably know the case where you sign up for a new service using your OpenID: You are asked to identify and in most cases to submit some extra data, like an username and your email address. These are used by the relying party (the service you signed up for) to create an account and prefill the disclosed attributes. Almost every identity provider offers the possibility to manage different personae, so that you can decide which of your information should be used to sign up with. For instance you may have two personae: One for personal use and another one with your business data.</p>
<p>At first, there was only SReg, which has a fixed set of nine attributes: nickname, email, gender, fullname, dob (date of birth), postcode, country, language and timezone. This offers the possibility to exchange some of the most basic user attributes, but has a major disadvantage: The set of attributes is fixed and cannot be extended, so that it is not possible to exchange the name of your home town or your website url.</p>
<p>This is where Attribute Exchange comes into play: AX does not give us a fixed set of properties &#8211; it is a namespace in which custom attributes and their types can be defined, as for instance the ones that are defined in <a href="http://www.axschema.org/">AXSchema</a>. An attribute is a combination of type identifier, title, count and value. The type identifier is an URL and defines what the property is &#8211; a street address, phone number, blog url, whatever. The title is used to inform the user about the kind of data being requested, for instance &#8220;Your ICQ number&#8221;. Count defaults to one and offers the possibility to request more than one value of the same type. The value is the data that the user/identity provider discloses.</p>
<p>Right now AX suffers the chicken-egg-problem: It is rarely supported by relying parties and identity providers &#8211; why request, when there is no one who responds? Same the other way round&#8230; but AXSchema lays the ground to solve this problem: Relying parties are given a set of attributes they can start to request and identity providers who already support SReg can easily migrate to support AX. Theoretically Simple Registration is deprecated, now that there is Attribute Exchange.</p>
<p>But there is even more to it: AX is not just about relying parties fetching user data, the specification already contains <a href="http://rakuto.blogspot.com/2008/03/ruby-why-does-storerequest-of-openid.html">store requests</a>, too. Attribute Exchange Store can be used by the relying parties to transfer updated data back to the identity providers. Well, this seems to be far ahead, but nevertheless it offers interesting possibilities and I will spend some time experimenting with it.</p>
<p>Last week I implemented the fetch part of Attribute Exchange in <a href="https://m.asquera.de">masquerade</a>. It was fairly easy, as it is already supported by the ruby-openid gem and one basically just has to define some extra mappings for type identifiers to persona attributes. The only other identity provider supporting Attribute Exchange Fetch I know so far is <a href="http://myopenid.com">MyOpenID</a>. <a href="http://rakuto.blogspot.com/2008/03/ruby-fetch-some-attributes-from.html">They do not support the AXSchema type identifiers</a>, but I guess this will be fixed soon, which would be great, because MyOpenID seems to be pushing the innovation in the OpenID community.</p>
<p>To offer myself a sandbox in which I can test exchanging data between identity provider and relying party, I also implemented AX fetch requests for <a href="http://venteria.com">venteria</a>. Theoretically &#8211; or practically, if your identity provider supports AXSchema &#8211; you can now update your venteria profile with your submitted persona details on every login.</p>
<p>I will be using Attribute Exchange extensively in my bachelor thesis, which is about identity management in academia. I will be using masquerade to setup an OpenID provider for the <a href="http://www.uni-bremen.de/">University of Bremen</a> so that we can offer OpenIDs to students, who can use them to sign up for lectures or use them to verify their student status to relying parties. This is <a href="http://walkah.net/blog/walkah/google-soc-drupal-openid-and-attribute-exchange">an interesting field of research</a> and some work has already been done &#8211; for example there is an <a href="http://blog.dopefreshtight.de/wp-admin/www.educause.edu/eduperson">eduperson</a> namespace defined in Shibboleth. Follow up my progress here, as I will be writing about it in the upcoming weeks <img src='http://dennisbloete.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p class="simpletags">Technorati Tags: <a href="http://technorati.com/tag/OpenID" rel="tag">OpenID</a>, <a href="http://technorati.com/tag/Attribute+Exchange" rel="tag"> Attribute Exchange</a>, <a href="http://technorati.com/tag/AX" rel="tag"> AX</a>, <a href="http://technorati.com/tag/SReg" rel="tag"> SReg</a>, <a href="http://technorati.com/tag/Simple+Registration" rel="tag"> Simple Registration</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dennisbloete.de/blog/on-openid-attribute-exchange/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
