<?xml version="1.0" encoding="iso-8859-1"?><!-- generator="wordpress/ME for XOOPS 0.5.0RC-Final" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">

<channel>
	<title>.Nat Zone</title>
	<link>http://www.sakimura.org/en/modules/wordpress/index.php</link>
	<description>Thinking around Digital Identity loud. </description>
	<language>en</language>
	<copyright>Copyright 2010</copyright>
	<pubDate>Fri, 10 Sep 2010 12:41:09 +0000</pubDate>
	<generator>http://www.kowa.org/?v=0.5.0RC-Final</generator>

		<item>
		<title>Re: OpenID provider imploding, chaos coming?</title>
		<link>http://www.sakimura.org/en/modules/wordpress/re-openid-provider-imploding-chaos-coming/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/re-openid-provider-imploding-chaos-coming/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 08:47:22 +0000</pubDate>
		<author>Nat &lt;saki&amp;#109;&amp;#117;&amp;#114;&amp;#97;&amp;#64;ma&amp;#114;&amp;#105;&amp;#109;ba.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/re-openid-provider-imploding-chaos-coming/</guid>
		<description>	Yet another OpenID provider is going under. On Sept. 30 when Six Apart officially shuts down VOX, a blogging site and an OpenID provider.
	I have been dealing with this issue for many years, and have been blogging, speaking etc. for many years. (e.g., Identity 2.0 and Mydentity, Identity Loss with ...</description>
		<content:encoded><![CDATA[	<p>Yet another OpenID provider is going under. On Sept. 30 when Six Apart officially shuts down VOX, a blogging site and an OpenID provider.</p>
	<p>I have been dealing with this issue for many years, and have been blogging, speaking etc. for many years. (e.g., <a href="http://www.sakimura.org/en/modules/wordpress/identity-20-and-mydentity/">Identity 2.0 and Mydentity</a>,<a href="http://www.sakimura.org/en/modules/wordpress/identity-loss-with-openid-20/"> Identity Loss with OpenID 2.0</a> ). </p>
	<p>This is not a problem that technology alone can solve. It neither is a problem unique to OpenID. Any third party provided identity have this &#8220;feature.&#8221;</p>
	<p>XDI.org has been dealing with it for many years. Last year, several OpenID provider shut down its services. However, some classes of OpenIDs survived it. They were members of XDI.org, where they escrowed user data etc. so that the transition from one service to another for the user was possible. </p>
	<p>I think the OpenID community should start thinking about this kind of infrastructure more seriously.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>Is expressing Levels enough for LoA2+?</title>
		<link>http://www.sakimura.org/en/modules/wordpress/is-expressing-levels-enough-for-loa2/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/is-expressing-levels-enough-for-loa2/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 06:59:28 +0000</pubDate>
		<author>Nat &lt;sakim&amp;#117;ra&amp;#64;ma&amp;#114;&amp;#105;m&amp;#98;a.org&gt;</author>
		
	<category>Digital Identity</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/is-expressing-levels-enough-for-loa2/</guid>
		<description>	LoA stands for Level of Assurance. 
	Most popular reference to this idea may be OMB M04-04 and NIST SP800-63. 
	Essentially, it classifies the identities into four categories from Level 1 to Level 4, where Level 4 stands for higher assurance. For internet commerce, generally, Level 2 or so is required. ...</description>
		<content:encoded><![CDATA[	<p>LoA stands for Level of Assurance. </p>
	<p>Most popular reference to this idea may be OMB M04-04 and NIST SP800-63. </p>
	<p>Essentially, it classifies the identities into four categories from Level 1 to Level 4, where Level 4 stands for higher assurance. For internet commerce, generally, Level 2 or so is required. This can be applied to third party provided identities as well, but the use of such identities over Level 2 seems to be quite rare yet. Some of the notable exceptions in the field of OpenID are Japan Airlines (JAL), Rakuten, and KDDI in Japan. </p>
	<p>Part of the reason for the market for third party provided identity failing is information asymmetry. This can be addressed by such efforts like Open Identity Trust Framework (OITF) led by US ICAM that are implemented as Open Identity Exchange (OIX) and Kantara Initiative Identity Assurance Framework (KI-IAF) etc. . Open Reputation System would be another important piece for it. </p>
	<p>OITF addresses another factor: Contract scalability problems. As you can easily see, if there are N parties in the picture, if the Contracts are to be negotiated peer-to-peer, there needs to be N*(N-1)/2 contracts. Clearly it does not scale. The way OITF solves this problem is to setup a Trust Framework Provider and everybody gets in contractual relationship with it rather than other parties. This would reduce the number of the contract to N and helps the scalability considerably. It is working for Level 1 as of now. However, doing so with Level 2 seems to be considerably harder. One of the pain point is that it is very difficult to define an appropriate separation of responsibility and liability and capture them into a standardized contract in a static manner. </p>
	<p>Let me elaborate it a little more. </p>
	<p>From the Relying Party (RP) point of view, just being told that the identity is Level 2 is not very useful. RP wants to know how much risk is associated in accepting the identity including how much the Identity Provider (IdP) is covering. For example, if the IdP says that the level of the confidence of the identity is 80% with variance of 2.9 and it is covering the damage up to US$100 if the identity turns out to be false, then the RP can make its decision on whether accepting it and authorizing the transaction or not much more easier and precisely than just being told that the identity is Level 2 because it can evaluate the risk. The figure can dynamically change as well. This should apply to private and public sector equally. </p>
	<p>It may be an interesting topic to discuss at the <a href="http://www.techpolicy.com/Events/Gov-2-0-Workshop--Governance-as-an-Open-Platform.aspx">The Berkman Center Law Lab&#8217;s Gov 2.0 Workshop: Governance as an Open Platform September 8 </a></p>
	<p>Related Article: <a href="http://www.sakimura.org/en/modules/wordpress/risk-based-security-decisions-and-cx/">Risk based security decisions and CX</a>
</p>
]]></content:encoded>
	</item>
		<item>
		<title>How to Set Up OpenID on Your Own Domain with fallback proivder</title>
		<link>http://www.sakimura.org/en/modules/wordpress/how-to-set-up-openid-on-your-own-domain-with-fallback-proivder/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/how-to-set-up-openid-on-your-own-domain-with-fallback-proivder/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 01:48:10 +0000</pubDate>
		<author>Nat &lt;s&amp;#97;kimu&amp;#114;a&amp;#64;marimb&amp;#97;.or&amp;#103;&gt;</author>
		
	<category>Digital Identity</category>
	<category>XRI</category>
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/how-to-set-up-openid-on-your-own-domain-with-fallback-proivder/</guid>
		<description>	Saw Gina Tripani&amp;#8217;s followup post to Chriss Messina&amp;#8217;s comments on This Week in Google. 
	http://smarterware.org/6286/how-to-set-up-openid-on-your-own-domain/
	It is very good to hear that people turns out to like the &amp;#8220;delegation[1]&amp;#8221; feature. 
	In the article Gina says: 
	I&amp;#8217;m not sure yet how to set Idproxy as my &amp;#8220;fallback&amp;#8221; provider just yet; if you ...</description>
		<content:encoded><![CDATA[	<p>Saw Gina Tripani&#8217;s followup post to Chriss Messina&#8217;s comments on This Week in Google. </p>
	<p><a href="http://smarterware.org/6286/how-to-set-up-openid-on-your-own-domain/">http://smarterware.org/6286/how-to-set-up-openid-on-your-own-domain/</a></p>
	<p>It is very good to hear that people turns out to like the &#8220;delegation[1]&#8221; feature. </p>
	<p>In the article Gina says: </p>
	<blockquote><p>I&#8217;m not sure yet how to set Idproxy as my &#8220;fallback&#8221; provider just yet; if you know how to do that, post it up in the comments.</p></blockquote>
	<p>John Bradley posted a reply there, but the sanitization of the comment system seem to be eating up important portions and making it hard to use. So, here is my attempt to explain it. </p>
	<h4>How to set up OpenID for your domain with fallback provider</h4>
	<p>(1) Create an XRDS file like this: </p>
	<blockquote>
	<pre>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;xrds:XRDS xmlns:xrds=&quot;xri://$xrds&quot; xmlns=&quot;xri://$xrd*($v*2.0)&quot;&gt;
  &lt;XRD&gt;
    &lt;CanonicalID&gt;http://xri.net/=!E18C.3B56.889D.850B&lt;/CanonicalID&gt;
    &lt;Service priority=&quot;10&quot;&gt;
      &lt;Type&gt;http://specs.openid.net/auth/2.0/signon&lt;/Type&gt;
      &lt;URI&gt;https://authn.fullxri.com/authentication/&lt;/URI&gt;
      &lt;LocalID&gt;http://xri.net/=!E18C.3B56.889D.850B&lt;/LocalID&gt;
    &lt;/Service&gt;
    &lt;Service priority=&quot;20&quot;&gt;
      &lt;Type&gt;http://specs.openid.net/auth/2.0/signon&lt;/Type&gt;
      &lt;URI&gt;https://www.google.com/accounts/o8/ud?source=profiles&lt;/URI&gt;
      &lt;LocalID&gt;http://www.google.com/profiles/sakimura&lt;/LocalID&gt;
    &lt;/Service&gt;
  &lt;/XRD&gt;
&lt;/xrds:XRDS&gt;
</pre>
	</blockquote>
	<p>In it, each &lt;Service&gt; represent different authentication service.<br />
In the above case, I am using Google as my failover authentication service (priority="20&Prime;) and fullxri as the second service (priority="10&Prime;) . </p>
	<p>(2) Put the link to this file by inserting the following to the top page of your domain (You need to replace my domain to yours.</p>
	<blockquote><p>&lt;meta http-equiv=&quot;X-XRDS-Location&quot; content=&quot;http://www.sakimura.org/yadis.xml&quot;&gt;&lt;/meta&gt;</p></blockquote>
	<p>That&#8217;s all!</p>
	<p>Unfortunately, not all RP libraries can to this failover. DotNetOpenAuth and JanRan&#8217;s library supports this feature. </p>
	<p>[1] It is the delegation of the authentication service, not the delegation of your authorization decision.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>OAuth 2.0: Scope Params and access_token format</title>
		<link>http://www.sakimura.org/en/modules/wordpress/oauth-20-scope-params-and-access_token-format/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/oauth-20-scope-params-and-access_token-format/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 05:37:51 +0000</pubDate>
		<author>Nat &lt;sakimura&amp;#64;marim&amp;#98;&amp;#97;.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>
	<category>OAuth</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/oauth-20-scope-params-and-access_token-format/</guid>
		<description>	Current draft of OAuth 2.0 http://datatracker.ietf.org/doc/draft-ietf-oauth-v2/ does not seem to define a standard way of defining &amp;#8220;scopes&amp;#8221;. It is totally Authorization Server dependent. If it were to act as a distributed system, this has to be standardized. 
	Also, the scope may require dynamic input parameters. The current spec draft does ...</description>
		<content:encoded><![CDATA[	<p>Current draft of OAuth 2.0 http://datatracker.ietf.org/doc/draft-ietf-oauth-v2/ does not seem to define a standard way of defining &#8220;scopes&#8221;. It is totally Authorization Server dependent. If it were to act as a distributed system, this has to be standardized. </p>
	<p>Also, the scope may require dynamic input parameters. The current spec draft does not specify it either. In fact, scope is nothing but the input parameter for the access_token right now. </p>
	<p>The better approach, IMHO, is to define a generic way of what has been requested, instead of just defining proprietary &#8220;scope&#8221; strings. </p>
	<p>For example, instead of defining an Authorization Server specific scope string for &#8220;Contact/Home&#8221;, define it as a generic registered string, such as &#8220;og&#8221;, so that one can specify it as </p>
	<p>&#8220;og:email&#8221;,<br />
&#8220;og:phone_number&#8221;, </p>
	<p>etc. This is a much more granular way of giving permissions. </p>
	<p>This has a side effect: </p>
	<p>*  The requests are longer</p>
	<p>This is the rationale for having &#8220;request_url&#8221; for the flows.<br />
One can put all the extension parameters in the &#8220;request_url&#8221;.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>OAuth 2.0 Extension Mechanism Proposal</title>
		<link>http://www.sakimura.org/en/modules/wordpress/oauth-20-extension-mechanism-proposal/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/oauth-20-extension-mechanism-proposal/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 05:03:13 +0000</pubDate>
		<author>Nat &lt;sakimur&amp;#97;&amp;#64;m&amp;#97;&amp;#114;imba&amp;#46;o&amp;#114;g&gt;</author>
		
	<category>Digital Identity</category>
	<category>OAuth</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/oauth-20-extension-mechanism-proposal/</guid>
		<description>	Defining an Extension Mechanism for both request and response would generally be useful. 
	Some basic design principles: 
	No name space through type URI: fixed registered string for extensions.
   e.g., for Open Graph, perhaps use og:variable_names OR og_variable names
    where either &amp;#8220;og:&amp;#8221; or &amp;#8220;og_&amp;#8221; is the ...</description>
		<content:encoded><![CDATA[	<p>Defining an Extension Mechanism for both request and response would generally be useful. </p>
	<p>Some basic design principles: </p>
	<ul>
	<li>No name space through type URI: fixed registered string for extensions. <br />
   e.g., for Open Graph, perhaps use og:variable_names OR og_variable names<br />
    where either &#8220;og:&#8221; or &#8220;og_&#8221; is the type prefix. (I kind of prefer &#8221;:&#8221; over &#8220;_&#8221; as<br />
    a separator since in CGI &#8220;-&#8221; and &#8220;_&#8221; will be identical, and in PHP GPC parameters<br />
    &#8221;.&#8221; and &#8220;_&#8221;  are identical. Also, we are using &#8220;_&#8221; in the variable names already. )</li>
	<li>No cross interactions with other extensions</li>
	</ul>
	<p>I think it should be added as Chapter 7 or so, which means Security Considerations will be chapter 8. </p>
	<p>Following is the strawman. </p>
	<div style="border:1;background-color:#ffdddd">
	<p><strong>7. Extension Mechanism</strong></p>
	<p>Additional parameters MAY be defined for any request and responses.<br />
The parameter names MUST start with a parameter prefix separated by a colon &#8221;:&#8221;. </p>
	<p>For example: </p>
	<blockquote><p>pape:max_auth_age</p></blockquote>
	<p>Each extension MUST define its own error messages and MUST return them through<br />
the prefixed &#8220;error&#8221; parameter. </p>
	<p>For example: </p>
	<blockquote><p>&#8220;pape:error&#8221;:"Invalid max_auth_age format.&#8221;</p></blockquote>
	</div>
	<p>Simple, is it not?</p>
	<p>For this to work out, there has to be a register of the prefix so that it will be unique. Where should the registry be is a good question.  </p>
	<p>One approach is to create a separate spec that lists all the OAuth extension prefixes.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>OAuth 2.0 Mobile WebApp Flow</title>
		<link>http://www.sakimura.org/en/modules/wordpress/oauth-20-mobile-webapp-flow/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/oauth-20-mobile-webapp-flow/#comments</comments>
		<pubDate>Wed, 26 May 2010 13:02:40 +0000</pubDate>
		<author>Nat &lt;saki&amp;#109;ura&amp;#64;ma&amp;#114;imb&amp;#97;.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OAuth</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/oauth-20-mobile-webapp-flow/</guid>
		<description>	In February, I have posted an article about oauth_wrap mobile webapp profile.
Now that it is unified to OAuth 2.0 drafts, here is another shot: 
	I have further simplified the flow by talking to Breno and John. 
	Here it is: 
	(Fig. XX)
How is that?!
	The major difference between Web App Profile is ...</description>
		<content:encoded><![CDATA[	<p>In February, I have posted an article about <a href="http://us1.sakimura.org/en/modules/wordpress/oauth-wrap-mobile-web-app-profile/">oauth_wrap mobile webapp profile</a>.<br />
Now that it is unified to OAuth 2.0 drafts, here is another shot: </p>
	<p>I have further simplified the flow by talking to Breno and John. </p>
	<p>Here it is: </p>
	<p><img style="width:90%" src="http://www.websequencediagrams.com/cgi-bin/cdraw?lz=cGFydGljaXBhbnQgVUEKAAMMV2ViQ2xpZW50AAkNcmVxdWVzdF91cmwAIQ1BdXRoelNlcnZlcgpvcHQgKEEpIGNyZWF0ZQArCCBmaWxlIGEANQ5ub3RlIG92ZXIAZQosAFcNICAgAIEACiBwcmVwYXJlcyBhAEgGdGhhdCBjb250YWlucwAnBWFsbCB0aGUgcGFyYW1ldGVycyBpbmNsdWRpbmc6AEkFdHlwZQBSBWMAgVkFX2lkAGAFcmVkaXJlY3RfdXJpAHEFKGZvcm1hdCkABwZzY29wZQAFB0FkZGl0aW9uYWwgUABeCQAiBlRoaXMAgWMGaGFzIGEgVVJMICIAgikLIgCBTAVJdCBjYW4gYmUAgUkIZCBvbmNlIGluAIE-BmR2YW5jZSBhbmQgYmUgcmV1c2UAgR8GbWFueSB0aW1lcy4KZW5kIG5vdGUKZW5kCgCDJAktLT5VQTogKEIpAIMfDCAmIGltbWVkaWF0ZQCCaQtVQSwAg1wKCTMwMiBSAIF_BwoJAINdDAkoc3RhdGUpCgkoAD4JKQB3ClVBLT4Ag3ULOgBhGW9wdCBpZiBub3QgY2FjaACBTgcAhDALLT4AhFULOiAoQykgR0VUAINMBXJlcXUAhD4HAIFtBQCEYAVEKSBVc2VyAIR5BWVudGljYXRpb24AXAgAgWkKAFcQAIIfBgAyCW4gU2NyZWUAgngGAIE9EQBSEGVzAIJuBQA-EihFKSBWZXJpZgCBAAhDb2QAglYZICAgIACCZQ0AhQ4Fb2QAhRYGAIJpCACCVw0AhwkJOgBUEwCDeAoAgn4OKEYpIEFjY2VzcyBUb2tlbiBSAIc8BgCGZhUAhzoMCQCGJAUJAIYcCgADCHNlY3JldAoJAIEoBQkoAAkGX3R5cACEHAUAhgYXAIUlCQCDYQ0AgRwORykgQ2hlY2sAgkwPAIFsCwCBOg9zcG9ucwCFRQwAgTQWICAgIDIwMCBPSwCIHQYAggkFX3RvawCDawdleHByaWVyc18AhnkHcmVmcmVzaAAXCwCHZwwAiFAKAIV4Cw&#038;s=omegapple"><br />
<a href="http://www.websequencediagrams.com/?lz=cGFydGljaXBhbnQgVUEKAAMMV2ViQ2xpZW50AAkNcmVxdWVzdF91cmwAIQ1BdXRoelNlcnZlcgpvcHQgKEEpIGNyZWF0ZQArCCBmaWxlIGEANQ5ub3RlIG92ZXIAZQosAFcNICAgAIEACiBwcmVwYXJlcyBhAEgGdGhhdCBjb250YWlucwAnBWFsbCB0aGUgcGFyYW1ldGVycyBpbmNsdWRpbmc6AEkFdHlwZQBSBWMAgVkFX2lkAGAFcmVkaXJlY3RfdXJpAHEFKGZvcm1hdCkABwZzY29wZQAFB0FkZGl0aW9uYWwgUABeCQAiBlRoaXMAgWMGaGFzIGEgVVJMICIAgikLIgCBTAVJdCBjYW4gYmUAgUkIZCBvbmNlIGluAIE-BmR2YW5jZSBhbmQgYmUgcmV1c2UAgR8GbWFueSB0aW1lcy4KZW5kIG5vdGUKZW5kCgCDJAktLT5VQTogKEIpAIMfDCAmIGltbWVkaWF0ZQCCaQtVQSwAg1wKCTMwMiBSAIF_BwoJAINdDAkoc3RhdGUpCgkoAD4JKQB3ClVBLT4Ag3ULOgBhGW9wdCBpZiBub3QgY2FjaACBTgcAhDALLT4AhFULOiAoQykgR0VUAINMBXJlcXUAhD4HAIFtBQCEYAVEKSBVc2VyAIR5BWVudGljYXRpb24AXAgAgWkKAFcQAIIfBgAyCW4gU2NyZWUAgngGAIE9EQBSEGVzAIJuBQA-EihFKSBWZXJpZgCBAAhDb2QAglYZICAgIACCZQ0AhQ4Fb2QAhRYGAIJpCACCVw0AhwkJOgBUEwCDeAoAgn4OKEYpIEFjY2VzcyBUb2tlbiBSAIc8BgCGZhUAhzoMCQCGJAUJAIYcCgADCHNlY3JldAoJAIEoBQkoAAkGX3R5cACEHAUAhgYXAIUlCQCDYQ0AgRwORykgQ2hlY2sAgkwPAIFsCwCBOg9zcG9ucwCFRQwAgTQWICAgIDIwMCBPSwCIHQYAggkFX3RvawCDawdleHByaWVyc18AhnkHcmVmcmVzaAAXCwCHZwwAiFAKAIV4Cw&#038;s=omegapple">(Fig. XX)</a><br />
How is that?!</p>
	<p>The major difference between Web App Profile is that it creates a request file that captures all the parameters in JSON format at &#8220;request_url&#8221;. Then, instead of sending parameters over the redirect, it sends this &#8220;request_url&#8221; over the redirect. The rest is more or less the same.</p>
	<p>Here is a suggested text: </p>
	<h3>3.11 Mobile Web App Flow</h3>
	<p>The moble web app flow is a user delegation flow suitable for clients<br />
   capable of interacting with the end-user&#8217;s user-agent (typically a<br />
   web browser) that are capability constrained especially for url length<br />
   and capable of receiving incoming requests from the<br />
   authorization server (capable of acting as an HTTP server).</p>
	<p>The mobile web app flow illustrated in figure XX includes following steps. </p>
	<ol style="list-style-type: upper-alpha">
	<li>The web client creates a request file at a URL &#8220;request_url&#8221; that captures<br />
      all the parameters that it would like to send to the Authorization<br />
      Server including client identifier<br />
        and a redirect URI to which the authorization server will send<br />
        the end-user back once authorization is received (or denied).</li>
	<li>The web client initiates the flow by redirecting the end-user&#8217;s<br />
        user-agent to the end-user endpoint with rul. </li>
	<li>The Authorization server obtains parameters by accessing request_url. </li>
	<li>The authorization server authenticates the end-user (via the<br />
        user-agent) and establishes whether the end-user grants or<br />
        denies the client&#8217;s access request.</li>
	<li>Assuming the end-user granted access, the authorization server<br />
        redirects the user-agent back to the client to the redirection<br />
        URI provided earlier.  The authorization includes a verification<br />
        code for the client to use to obtain an access token.</li>
	<li>The client requests an access token from the authorization<br />
        server by including its client credentials (identifier and<br />
        secret), as well as the verification code received in the<br />
        previous step.</li>
	<li>The authorization server validates the client credentials and<br />
        the verification code and responds back with the access token.</li>
	</ol>
	<h4>3.11.1 Client Prepares a Request file at request_url</h4>
	<p>Clients creates and saves the parameters in 3.6.1 at request_url.<br />
This file can be used many times, so it does not need to be done<br />
every time. </p>
	<h4>3.11.2 Client Requests Authorization</h4>
	<p>In order for the end-user to grant the client access, the client<br />
   sends the end-user to the authorization server.  The client<br />
   constructs the request URI by adding the following URI query<br />
   parameters to the end-user endpoint URI:</p>
	<dl>
	<dt>request_url</dt>
	<dd>Request file url from which the Authorization Server may<br />
obtain the request parameters. </dd>
	<dt>immediate</dt>
	<dd>OPTIONAL.  The parameter value must be set to &#8220;true&#8221; or<br />
         &#8220;false&#8221;.  If set to &#8220;true&#8221;, the authorization server MUST NOT<br />
         prompt the end-user to authenticate or approve access.<br />
         Instead, the authorization server attempts to establish the<br />
         end-user&#8217;s identity via other means (e.g. browser cookies) and<br />
         checks if the end-user has previously approved an identical<br />
         access request by the same client and if that access grant is<br />
         still active.  If the authorization server does not support an<br />
         immediate check or if it is unable to establish the end-user&#8217;s<br />
         identity or approval status, it MUST deny the request without<br />
         prompting the end-user.  Defaults to &#8220;false&#8221; if omitted</dd>
	</dl>
	<p>The client directs the end-user to the constructed URI using an HTTP<br />
   redirection response, or by other means available to it via the end-<br />
   user&#8217;s user-agent.  The request MUST use the HTTP &#8220;GET&#8221; method.</p>
	<p>   For example, the client directs the end-user&#8217;s user-agent to make the<br />
   following HTTPS requests (line breaks are for display purposes only):</p>
	<p>     GET /authorize?request_url=hhttps%3A%2F%2Fclient%2Eexample%2Ecom HTTP/1.1<br />
     Host: server.example.com</p>
	<p>   If the client has previously registered a redirection URI with the<br />
   authorization server, the authorization server MUST verify that the<br />
   redirection URI received matches the registered URI associated with<br />
   the client identifier.</p>
	<p>   The authorization server authenticates the end-user and obtains an<br />
   authorization decision (by asking the end-user or establishing<br />
   approval via other means).  The authorization server sends the end-<br />
   user&#8217;s user-agent to the provided client redirection URI using an<br />
   HTTP redirection response, or by other means available to it via the<br />
   end-user&#8217;s user-agent.</p>
	<h4>3.11.1.1. End-user Grants Authorization</h4>
	<p>Refer to 3.6.1.1. </p>
	<h4>3.11.1.2 End-user Denis Authorization </h4>
	<p>Refer to 3.6.1.2</p>
	<h4>3.11.2. Client Requests Access Token</h4>
	<p>The client obtains an access token from the authorization server by<br />
   making an HTTPS request to the token endpoint.  The client<br />
   constructs a request URI by adding the following parameters to the<br />
   request:</p>
	<dl>
	<dt>client_id</dt>
	<dd>REQUIRED.  The client identifier as described in Section 3.1.</dd>
	<dt>client_secret</dt>
	<dd>REQUIRED if the client identifier has a matching secret.  The<br />
         client secret as described in Section 3.1. If it is used, the<br />
         request method MUST be &#8220;POST&#8221;.</dd>
	<dt>code</dt>
	<dd>REQUIRED.  The verification code received from the<br />
         authorization server.</dd>
	<dt>secret_type</dt>
	<dd>PTIONAL.  The access token secret type as described by<br />
         Section 5.3.  If omitted, the authorization server will issue a<br />
         bearer token (an access token without a matching secret) as<br />
         described by Section 5.2.</dd>
	</dl>
	<p>The authorization server MUST verify that the verification code,<br />
   client identity, client secret, and redirection URI are all valid and<br />
   match its stored association.  If the request is valid, the<br />
   authorization server issues a successful response as described in<br />
   Section 3.3.2.1.</p>
	<p>If the request is invalid, the authorization server returns an error<br />
   response as described in Section 3.3.2.2 with one of the following<br />
   error codes:</p>
	<p>   o  &#8220;redirect_uri_mismatch&#8221;</p>
	<p>   o  &#8220;bad_verification_code&#8221;</p>
	<p>   o  &#8220;incorrect_client_credentials&#8221;</p>
	<p><hr /></p>
	<h3>Changes</h3>
	<ul>
	<li>(2010-05-27) s/rurl/request_url/g</li>
	</ul>
]]></content:encoded>
	</item>
		<item>
		<title>OpenID AB and Attributes - OpenID Connect?</title>
		<link>http://www.sakimura.org/en/modules/wordpress/openid-ab-and-attributes-openid-connect/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/openid-ab-and-attributes-openid-connect/#comments</comments>
		<pubDate>Mon, 17 May 2010 09:18:45 +0000</pubDate>
		<author>Nat &lt;saki&amp;#109;u&amp;#114;a&amp;#64;marim&amp;#98;a.or&amp;#103;&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>
	<category>iiw</category>
	<category>OAuth</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/openid-ab-and-attributes-openid-connect/</guid>
		<description>	So, when the sun rises, it is the 10th IIW day. 
	I hoped to prepare more, but with the current ill-health, this probably is the most I could. 
	Here is the new version of OpenID Artifact Binding (AB) . 
	Repository: http://bitbucket.org/openid/ab/
	Browser Friendly Cache: HERE
	For those of you who do  ...</description>
		<content:encoded><![CDATA[	<p><img src="http://wiki.openid.net/f/openid-logo-wordmark.png" style="float:right;mergin:10px;width:200px"><br />
So, when the sun rises, it is the 10th IIW day. </p>
	<p>I hoped to prepare more, but with the current ill-health, this probably is the most I could. </p>
	<p>Here is the new version of OpenID Artifact Binding (AB) . </p>
	<p>Repository: http://bitbucket.org/openid/ab/</p>
	<p>Browser Friendly Cache: <a href="http://www.sakimura.org/specs/ab/">HERE</a></p>
	<p>For those of you who do  not know, OpenID/AB is a chartered Working Group at the OpenID Foundation, and aims to create another binding for OpenID, so that it is </p>
	<ol>
	<li> More Secure so that it can go all the way up. </li>
	<li> Browser URL length limit friendly. </li>
	</ol>
	<p>In addition, we have been targeting to make it</p>
	<ol>
	<li> Very easy to write libraries, only with standard libraries
	<li> Very easy to implement for RP. For lower assurance RPs, it should be just a matter of pasting a javascript snippet, and a link.
	<li> Highly scalable: Completely stateless so that it can scale
</li>
</li>
</li>
</ol>
	<p>I think the goal has been achieved as of draft 06. </p>
	<p>It is using OAuth2.0 as the base protocol, and is building identity layer on top of it. Unlike <a href="http://openidconnect.com/">David&#8217;s OpenID Connect straw man</a>, it is not overloading the access token of OAuth2.0, so we can use that as OAuth token even for this OpenID flow. </p>
	<p>I have implemented it myself (not being a professional programmer, it took more time than it should - besides, it was the first time for me to write anything in Javascript, and how-do-I-debug it???) in couple of days, in Javascript and PHP. </p>
	<p>The size of the code shows how easy it is. </p>
	<p>OP (PHP): 251 lines including debug codes and comments, as well as HTML.<br />
RP (PHP): 109 lines including debug codes and comments, as well as HTML.<br />
Magic Signatures Library: 83 lines including documentation.<br />
AES Encryption Library (wrapper): 30 lines. </p>
	<p>So, in total, it is 373 lines including documentation and debug codes. </p>
	<p>AND: it supports asymmetric signature for non-repudiation, completely stateless OP,  and my (proprietary version of) attribute exchange. </p>
	<p>You can test drive them here: <a href="https://openid4.us/rp/index.html">TEST DRIVE</a></p>
	<p>
Nice thing about what I did here for the attribute exchange is that the relying party can ask what combination so ever that the RP wishes of any of the attributes supported by the user. It is just a matter of making a &#8220;Request Parameter File&#8221;, which looks like this.
</p>
	<blockquote><p>{<br />
    &#8220;ns&#8221;:"http://specs.openid.net/auth/2.0&Prime;,<br />
    &#8220;mode&#8221;:"direct_checkid_setup&#8221;,<br />
    &#8220;client_id&#8221;:"http://rp.tonescape.net/&#8221;,<br />
    &#8220;claimed_id&#8221;:"http://specs.openid.net/auth/2.0/identifier_select&#8221;,<br />
    &#8220;identifier&#8221;:"http://specs.openid.net/auth/2.0/identifier_select&#8221;,<br />
    &#8220;redirect_url&#8221;:"https://openid4.us/rp/rp.php&#8221;,<br />
    &#8220;atype&#8221;:"openid2json+sig&#8221;,<br />
    &#8220;ns:ax&#8221;:"http://openid.net/srv/ax/1.0&Prime;,<br />
    &#8220;ax:mode&#8221;:"fetch_request&#8221;,<br />
    &#8220;ax:avatar&#8221;:"&#8221;,<br />
    &#8220;ax:nickname&#8221;:"&#8221;,<br />
    &#8220;ax:lastname&#8221;:"&#8221;,<br />
    &#8220;ax:firstname&#8221;:"&#8221;,<br />
    &#8220;ax:gender&#8221;:"&#8221;,<br />
    &#8220;ax:birthyear&#8221;:"&#8221;<br />
}
</p></blockquote>
	<p>By change the &#8220;ax:lastname&#8221; to &#8220;ax:lastname#ja_Hani_JP&#8221;, I can get her Kanji name as well. It is that simple. </p>
	<p>Not only that, you can push the write the attributes as well.<br />
Just change &#8220;fetch_request&#8221; to &#8220;store_request&#8221;, and provide values to the attributes. </p>
	<p>I have not implemented the following features yet, but should not take too much time.  </p>
	<ul>
	<li>immediate: it should add only a few lines of code&#8230;</li>
	<li>payload encryption: Now that the encryption lib is done, it should be simple</li>
	</ul>
	<p>Perhaps you can help <img src='http://www.sakimura.org/en/modules/wordpress/wp-images/smilies/icon_smile.gif' alt=':-)' />.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>Re: XAuth: First Take</title>
		<link>http://www.sakimura.org/en/modules/wordpress/re-xauth-first-take/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/re-xauth-first-take/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 11:30:08 +0000</pubDate>
		<author>Nat &lt;&amp;#115;akimur&amp;#97;&amp;#64;marim&amp;#98;&amp;#97;.&amp;#111;&amp;#114;&amp;#103;&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/re-xauth-first-take/</guid>
		<description>	Since the site did not accept the comment&amp;#8230;
	This is a reply to: http://eternallyoptimistic.com/2010/04/20/xauth-first-take/
	XAuth seems to be nothing but a shared cookie, so it may not be a single point of failure. The RPs do not seem to communicate with the xauth.org so it should not be a critical problem even ...</description>
		<content:encoded><![CDATA[	<p>Since the site did not accept the comment&#8230;</p>
	<p>This is a reply to: http://eternallyoptimistic.com/2010/04/20/xauth-first-take/</p>
	<p>XAuth seems to be nothing but a shared cookie, so it may not be a single point of failure. The RPs do not seem to communicate with the xauth.org so it should not be a critical problem even if the server was failing. At the very worst, the RP has to show all the NASCAR icons. That is all. </p>
	<p>At the same time, it would have an interesting (not fun) security implications on a shared computer, but I have not done the analysis yet. </p>
	<p>And right, I feel that it is taking user out of the cycle as well. It would have been much better if it just points to the location of the user&#8217;s XRD/s that lists all the services that a user can edit, but that may be way too esoteric.  I agree that it is not user centric. It is service centric in philosophy, but that may be what the user is asking as a priority: &#8220;ease of use&#8221;.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>OASIS Open: Submission of requests for Reviews etc.</title>
		<link>http://www.sakimura.org/en/modules/wordpress/oasis-open-submission-of-requests-for-reviews-etc/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/oasis-open-submission-of-requests-for-reviews-etc/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 11:39:19 +0000</pubDate>
		<author>Nat &lt;s&amp;#97;kim&amp;#117;ra&amp;#64;mari&amp;#109;ba.o&amp;#114;g&gt;</author>
		
	<category>Digital Identity</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/oasis-open-submission-of-requests-for-reviews-etc/</guid>
		<description>	Just a personal memo on OASIS process as one of the TC chair, but OIDF should develop this kind of chart as well, I think. 
	Due to an ever-increasing workload I must ask that each request be sent in a separate e-mail message unless related to a single, multi-part specification. ...</description>
		<content:encoded><![CDATA[	<p>Just a personal memo on OASIS process as one of the TC chair, but OIDF should develop <a href="http://docs.oasis-open.org/templates/MindMaps/TCAdminRequestNotices/index.html ">this kind of chart</a> as well, I think. </p>
	<blockquote><p>Due to an ever-increasing workload I must ask that each request be sent in a separate e-mail message unless related to a single, multi-part specification. As a reminder, a chart showing exactly what needs to be included with each request can be seen here:<br />
http://docs.oasis-open.org/templates/MindMaps/TCAdminRequestNotices/index.html</p>
	<p>To ensure the quickest possible handling of your request, make sure to<br />
1. review the checklist: http://docs.oasis-open.org/templates/QAChecklistV3.html<br />
2. Include the requisite information in the request:<br />
http://docs.oasis-open.org/templates/MindMaps/TCAdminRequestNotices/index.html<br />
3. do not include more than 1 document in any single request.</p>
	<p>Thank you for understanding.</p>
	<p>Regards,</p>
	<p>Mary</p></blockquote>
]]></content:encoded>
	</item>
		<item>
		<title>OAuth Wrap Mobile Web App Profile?</title>
		<link>http://www.sakimura.org/en/modules/wordpress/oauth-wrap-mobile-web-app-profile/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/oauth-wrap-mobile-web-app-profile/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 12:08:18 +0000</pubDate>
		<author>Nat &lt;s&amp;#97;&amp;#107;&amp;#105;mur&amp;#97;&amp;#64;m&amp;#97;rimb&amp;#97;.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OAuth</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/oauth-wrap-mobile-web-app-profile/</guid>
		<description>	The wrap_scope, especially when it is determined dynamically using standard vocabulary such as something similar to OpenID AX, can become quite big. Under such circumstances, we may hit the browser/server constraint on URL and HTTP header. This is more acute in the mobile scenario. 
	Lucky thing is that it is ...</description>
		<content:encoded><![CDATA[	<p>The wrap_scope, especially when it is determined dynamically using standard vocabulary such as something similar to OpenID AX, can become quite big. Under such circumstances, we may hit the browser/server constraint on URL and HTTP header. This is more acute in the mobile scenario. </p>
	<p>Lucky thing is that it is trivial to create an Mobile friendly profile / binding of OAuth Wrap, since it is almost done. It suffices just to introduce a request artifact. </p>
	<p>Here is the flow: </p>
	<p><img width="100%" src="http://www.websequencediagrams.com/cgi-bin/cdraw?lz=VUEtPldlYkFwcENsaWVudDogU2VydmljZSBSZXF1ZXN0CgASDC0-QXV0aHpTZXJ2ZXI6IFZlcmlmaWNhdGlvbiBDb2QAKwpub3RlIG92ZXIgAFEMLCAANAsKICAgIFBPU1QABAV3cmFwX2MAfgVfaWQACAthbGxiYWNrACkFKAAaDHN0YXRlKQANC3Njb3AACQhBZGRpdGlvbmFsIFBhcmFtZXRlcnMpCmVuZCBub3RlCgCBPAsAgXAQAIFxByBBcnRpZmFjdCBSZWRpcmVjAIF7Dy0-VUEAGxIKVUEAghUPABERAG8MAD8GUG9QIFBhZ2UAKxJQb1AgKFVzZXIAgjQFZW50AIJmBykAMxMAgnkUc3BvbnNlIChha2EABAoAgVEIKQCDGwtVQSwAg3oMAIMXBTMwMgCBcgoAgxsJdgCDaQtfY29kZQCCfB5hZGRpdACDAwVwYXJhbQCCeAwAhGkSAIRDDQCBNggAhGUcUE9TVCBBY2Nlc3MgVG9rZW4AhGEgAIRwEACEaQ4sAIR6EXNlY3JlAIFdIQCFHQ0APwYAhFQuAIZJDUNoZWNrAIY8BnJpZ2h0IG9mAIYrDTEuIACHJgYgUwCBGQUgbXVzAIMsBm1hdGNoIHRoYQAvBQCGRAoyLgADCgApBQAhCQCDOAYAEwpvYnRhaW5lZACHNgZyAIVyCDMuIACDbAwgY29kZSBNVVNUAG0GAIdGBQBxBnZlciBhdXRoegAzCjQuIACHPggAcgsKNQA7GU5PAIgOBmhhdmUgZXhwaXJlZACHJRYAiSwQAIN8DwCEOgcAg2UnMjAwIE9LAIkECnJlZnJlc2hfdG9rZW4AiRsKYQCEagUACwsAiRAGAAsMXwCBLwZzX2luAIh-EgCGAwUAiQAQAIpXDlJlc291cmNlAIkDCgAKCACKQRgAFwkgICAAimAFb3JpegCLEwU6IFdSQVAgAIEqDD0iAIEgDXN0ciIAihAK&#038;s=omegapple"> </p>
	<p>(fig.1) <a href="http://www.websequencediagrams.com/?lz=VUEtPldlYkFwcENsaWVudDogU2VydmljZSBSZXF1ZXN0CgASDC0-QXV0aHpTZXJ2ZXI6IFZlcmlmaWNhdGlvbiBDb2QAKwpub3RlIG92ZXIgAFEMLCAANAsKICAgIFBPU1QABAV3cmFwX2MAfgVfaWQACAthbGxiYWNrACkFKAAaDHN0YXRlKQANC3Njb3AACQhBZGRpdGlvbmFsIFBhcmFtZXRlcnMpCmVuZCBub3RlCgCBPAsAgXAQAIFxByBBcnRpZmFjdCBSZWRpcmVjAIF7Dy0-VUEAGxIKVUEAghUPABERAG8MAD8GUG9QIFBhZ2UAKxJQb1AgKFVzZXIAgjQFZW50AIJmBykAMxMAgnkUc3BvbnNlIChha2EABAoAgVEIKQCDGwtVQSwAg3oMAIMXBTMwMgCBcgoAgxsJdgCDaQtfY29kZQCCfB5hZGRpdACDAwVwYXJhbQCCeAwAhGkSAIRDDQCBNggAhGUcUE9TVCBBY2Nlc3MgVG9rZW4AhGEgAIRwEACEaQ4sAIR6EXNlY3JlAIFdIQCFHQ0APwYAhFQuAIZJDUNoZWNrAIY8BnJpZ2h0IG9mAIYrDTEuIACHJgYgUwCBGQUgbXVzAIMsBm1hdGNoIHRoYQAvBQCGRAoyLgADCgApBQAhCQCDOAYAEwpvYnRhaW5lZACHNgZyAIVyCDMuIACDbAwgY29kZSBNVVNUAG0GAIdGBQBxBnZlciBhdXRoegAzCjQuIACHPggAcgsKNQA7GU5PAIgOBmhhdmUgZXhwaXJlZACHJRYAiSwQAIN8DwCEOgcAg2UnMjAwIE9LAIkECnJlZnJlc2hfdG9rZW4AiRsKYQCEagUACwsAiRAGAAsMXwCBLwZzX2luAIh-EgCGAwUAiQAQAIpXDlJlc291cmNlAIkDCgAKCACKQRgAFwkgICAAimAFb3JpegCLEwU6IFdSQVAgAIEqDD0iAIEgDXN0ciIAihAK&#038;s=omegapple">Wrap Mobile Web Profile</a></p>
	<p>Of course, details need to be nailed down, but the basic flow should be it.</p>
	<p>People may criticize that it introduce state in the AuthzServer. It may, but it is not necessarily so. Since the AuthzServer knows what it can serve, it has constrained set of scope and may well be able to encode it into an Artifact, so that it does not need to keep the state.</p>
	<p>&#8211;<br />
(Feb 12) Fixed typo in the figure.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>CX on OAuth WRAP</title>
		<link>http://www.sakimura.org/en/modules/wordpress/cx-on-oauth-wrap/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/cx-on-oauth-wrap/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 17:53:26 +0000</pubDate>
		<author>Nat &lt;&amp;#115;akim&amp;#117;ra&amp;#64;mari&amp;#109;&amp;#98;&amp;#97;.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>
	<category>OAuth</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/cx-on-oauth-wrap/</guid>
		<description>	Like there can be OpenID GET/POST and Artifact Binding for CX, there can be WRAP binding as well. It is fairly trivial, arguably more trivial than to define OpenID bindings. 
	Send CX proposal as an additional parameter on the Verification Code Request. Use wrap_client_id as the proposer&amp;#8217;s identifier.
On the PoP ...</description>
		<content:encoded><![CDATA[	<p>Like there can be OpenID GET/POST and Artifact Binding for CX, there can be WRAP binding as well. It is fairly trivial, arguably more trivial than to define OpenID bindings. </p>
	<ol>
	<li>Send CX proposal as an additional parameter on the Verification Code Request. Use wrap_client_id as the proposer&#8217;s identifier. </li>
	<li>On the PoP verification page, display the terms and conditions included in the proposal.</li>
	<li>Create the Verification code from the signature of the proposal and some nonce and random.</li>
	<li>Web App Client sends the proposal again as an additional parameter on Access Token Request.</li>
	<li>Sign the proposal to create the contract, serialize it with Base64 without line end, and return it as the access token on Access Token Response.</li>
	</ol>
	<p>That&#8217;s all.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>Why is the Artifact 400 bytes?</title>
		<link>http://www.sakimura.org/en/modules/wordpress/why-is-the-artifact-400-bytes/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/why-is-the-artifact-400-bytes/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 13:25:02 +0000</pubDate>
		<author>Nat &lt;s&amp;#97;kim&amp;#117;&amp;#114;a&amp;#64;mari&amp;#109;ba.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/why-is-the-artifact-400-bytes/</guid>
		<description>	In the current Artifact Binding manuscript, the artifact is being defined as a string shorter than 400 bytes. Some people asked why 400 and not 512, which is the limit of some mobile browsers? 
	The answer is that we use 80 bytes in the fixed string: 
	?openid.ns=http://specs.openid.net/auth/2.0&amp;#038;openid.mode=art_res&amp;#038;openid.artifact=
	Suppose we use 400 ...</description>
		<content:encoded><![CDATA[	<p>In the current Artifact Binding manuscript, the artifact is being defined as a string shorter than 400 bytes. Some people asked why 400 and not 512, which is the limit of some mobile browsers? </p>
	<p>The answer is that we use 80 bytes in the fixed string: </p>
	<blockquote><p>?openid.ns=http://specs.openid.net/auth/2.0&#038;openid.mode=art_res&#038;openid.artifact=</p></blockquote>
	<p>Suppose we use 400 bytes in Artifact. Then, the total is 480 bytes.<br />
That leaves 32 bytes to the non-query portion of the URL.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>Attribute Type URI and Script Type</title>
		<link>http://www.sakimura.org/en/modules/wordpress/attribute-type-uri-and-script-type/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/attribute-type-uri-and-script-type/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 19:12:52 +0000</pubDate>
		<author>Nat &lt;s&amp;#97;kimur&amp;#97;&amp;#64;ma&amp;#114;imba&amp;#46;&amp;#111;&amp;#114;g&gt;</author>
		
	<category>Digital Identity</category>
	<category>XRI</category>
	<category>OpenID</category>
	<category>OAuth</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/attribute-type-uri-and-script-type/</guid>
		<description>	There has been some talk around Attribute Type URI couple of months ago in OpenID mailing lists. Unless we define a set of widely agreed Type URIs, we will not be able to transfer attributes insuperably. Chris Messina&amp;#8217;s summary document on various type URI is very helpful to compare these. ...</description>
		<content:encoded><![CDATA[	<p>There has been some talk around Attribute Type URI couple of months ago in OpenID mailing lists. Unless we define a set of widely agreed Type URIs, we will not be able to transfer attributes insuperably. <a href="http://spreadsheets.google.com/pub?key=pSGbbhtwI4kN_nJ1GXeQ7Qg&#038;output=html">Chris Messina&#8217;s summary document on various type URI</a> is very helpful to compare these. </p>
	<p>There however is one thing that these specs are missing. The Script types and the language. </p>
	<p>Unlike most Western language, some language like Japanese have many scripts within itself. For example, we use &#8220;Kanji&#8221;, &#8220;Katakana&#8221;, &#8220;Hiragana&#8221;, &#8220;Romaji (alphabet)&#8221; as four distinctive scripts. Often, we are required to supply name and address both in Kanji and Katakana or Hiragana, because without Katakana or Hiragana, you really do not know how to pronounce the Kanji in many cases. </p>
	<p>Thus, while it would probably suffice to express fullname just as </p>
	<blockquote><p>http://axschema.org/namePerson</p></blockquote>
	<p>in English, we need these in each scripts. </p>
	<p>The problem is how to express these as Type URIs. </p>
	<p>One obvious way of approaching it would be something like</p>
	<blockquote><p>http://axschema.org/namePerson#script_name/language_code</p></blockquote>
	<p>where script_name and language_code are optional. </p>
	<p>For example, </p>
	<blockquote><p>
http://axschema.org/namePerson#kanji<br />
http://axschema.org/namePerson#katakana
</p></blockquote>
	<p>would be the Kanji and Katakana version of the fullname. </p>
	<p>If the default language for those were not specified, we could further qualify them as</p>
	<blockquote><p>http://axschema.org/namePerson#kanji/ja_JP
</p></blockquote>
	<p>If there is only one script for the language, or if it does not matter, we could abbreviate like: </p>
	<blockquote><p>http://axschema.org/namePerson#/en_US
</p></blockquote>
	<p>which is the same as </p>
	<blockquote><p>http://axschema.org/namePerson
</p></blockquote>
	<p>if the default language was specified as en_US. </p>
	<p>What would you think?
</p>
]]></content:encoded>
	</item>
		<item>
		<title>Essence of Contract Exchange</title>
		<link>http://www.sakimura.org/en/modules/wordpress/essence-of-contract-exchange/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/essence-of-contract-exchange/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 18:07:09 +0000</pubDate>
		<author>Nat &lt;sak&amp;#105;m&amp;#117;&amp;#114;a&amp;#64;m&amp;#97;rim&amp;#98;a&amp;#46;or&amp;#103;&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>
	<category>OAuth</category>
	<category>CX</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/essence-of-contract-exchange/</guid>
		<description>	Abstract
This article describes the concept of (abstract) Contract Exchange, and then discusses the OpenID Binding and Use of the Contracts as Access Tokens. At the end, it also provides a mapping table to User Managed Access (UMA) Terminologies. 
	About Contract Exchange
	Contract Exchange (CX) is a protocol to exchange the signed ...</description>
		<content:encoded><![CDATA[	<h4>Abstract</h4>
	<p><em>This article describes the concept of (abstract) Contract Exchange, and then discusses the OpenID Binding and Use of the Contracts as Access Tokens. At the end, it also provides a mapping table to User Managed Access (UMA) Terminologies. </em></p>
	<h3>About Contract Exchange</h3>
	<p>Contract Exchange (CX) is a protocol to exchange the signed contract dynamically among the entities in the network. It uses Public Key based signature, so it achieves certain degree of the non-repudiation and ability to prove. Thus, e-commerce etc. should benefit from it. In addition, since it can capture the purpose of the use, condition of the use, provisioning method etc. for the data/attributes, it can be used to achieve the server to server exchange of the data. </p>
	<p>Draft OpenID CX is a binding of this Contract Exchange onto OpenID. It takes a form of OpenID Extension. Thus, it can be used over the existing OpenID Authentication 2.0, which is a GET/POST binding, as well as over the artifact binding which has been discussed since last fall. For the exchange of the proposal and contract etc., it is also using Attribute Exchange 1.1 Draft. </p>
	<h3>Basic Flow of the CX. </h3>
	<p>The basic flow of the CX has the following flow. Note that this is before binding it to a specific underlying protocol.<br />
In the below, AM stands for Authorization Manager, SP for Service Provider.  </p>
	<p>1. (SP finds Proposal Template from XRD/S of the AM)<br />
2. SP obtains the proposal Template from the AM.<br />
3. SP specifies the variables in the Proposal Template to create a Proposal.<br />
4. SP signs the Proposal to create a Signed Proposal.<br />
5. SP sends the Signed Proposal to the AM.<br />
6. AM shows the conditions to the user and obtains the authorization.<br />
7. If OK, the AM counter-signs the proposal to create a Contract.<br />
8. AM saves the Contract and sends a copy to the SP.<br />
9. SP uses the Contract to obtain data etc. and provides service to the user. </p>
	<p>The service does not necessarily require data transfer. It may even not a service over the network.<br />
However, it is expected that in majority of the cases, it will be a network based service that requires some data transfer.<br />
Under such circumstances, some data transfer protocol needs to be defined in the contract. e.g., OpenID AX, OAuth, Wrap &#8220;API Calls&#8221;.)  </p>
	<h3>Characteristics of the CX Template</h3>
	<p>CX Templates has several unique features. </p>
	<ul>
	<li>XML is the default format.</li>
	<li>The template has to have a URL of the form http://uri_of_contract_template#digest_algorithm:digest, so if the template is changed, the url will also change. </li>
	<li>Anyone can create a template, but since AM is the party that knows what data is available as well as the party which creates the permission page, AM seems to be the natural place.</li>
	<li>As the result of the Hashed URL, template cannot be edited. Thus, we have to use variables to express the portion which is given from the outside. </li>
	<li>Template variables are expressed in the form of {{variable_name}}. As the variable name, xs:id of the XML element is used, and the value will be the inner text of the Element. </li>
	</ul>
	<h3>Characteristics of the CX Contract</h3>
	<ul>
	<li>There can be as many parties as one wants. That is, we can express n-party contract. Each Party has Obligations. </li>
	<li>A Contract includes the public key of the each Parties. These can be used for the signature verification and data encryption. </li>
	<li>A Contract includes a TemplteURL and a Template. Ops and RPs can use this TemplateURL to figure out what kind of template it is. </li>
	<li>Obligation can be written in the Contract. This includes the price and damage limit. </li>
	<li>As a default data request method, AX Request is supported. Other format can be defined. </li>
	<li>Signature is done by XML Signature. Canonicalization is Exclusive Canonicalization. Since it is using the Digital Signature, the ability to proof is high even outside the system. </li>
	</ul>
	<h3>OpenID GET/POST Binding</h3>
	<p>CX can be bound to OpenID through GET/POST Binding and Artifact Binding. For the purpose of this article, which binding to use is a non-issue, so I am using simpler GET/POST binding flow. </p>
	<p>In the next diagram I am using OP (OpenID Provider) instead of AM and RP (Replying Party) instead of SP to match the OpenID terminology. In addition, UA stands for User-Agent (e.g., Web Browser). </p>
	<p><img style="width:90%;align:center;" src="http://www.websequencediagrams.com/cgi-bin/cdraw?lz=VUEtPlJQOlNlcnZpY2UgUmVxdWVzdApvcHQKICAgIG5vdGUgcmlnaHQgb2YgT1AKUHJvcG9zYWwKVGVtcGxhdGUAIgVlbmQAJgUALwVSUC0-T1A6IGZldGNoIHQAIAhlbmQKUlAAaQUgQ3JlYXRlIABFCCBmcm9tIHRoZQAkCgAiCFNpZ24AHwkKUlAtLT5VQTogU2VuZAANClVBAGwGAAgOTwAlCFBlcm1pc3Npb24gUGFnZQAmCQAOCgpPAIEtB0NvdW50ZXItAGoNIChDb250cmFjdCkAIAlTdG9yZSAAEAgKAIIYEDoAEQoAfgkAgS8FACkJAIJyBwAHDwCBbgkAQxwAgj0FAHII&#038;s=omegapple" /></p>
	<div style="text-align:center;">Fig 1: OpenID GET/POST Binding Sequence</div>
	<h3>Data Transfer using CX</h3>
	<p>In the use case that transfers data, CX Contract can be used as either the holder-of-key or bearer access token by the RP. Alternatively, if the Data Provider has the copy of the contract, then ContractID can be used as a bearer token. (In general, AM and DP are different, so the later cannot be assumed in every case.) Using such Tokens, server to server data transfer can be achieved. Data Provider (DP) checks the authenticity of the contract and then creates a dataset and encrypts it with the public key in the Contract and provides it to the requestor. Since it is encrypted by the public key of the intended recipient, it cannot be read by somebody else. </p>
	<p><img src="http://www.websequencediagrams.com/cgi-bin/cdraw?lz=UlAtPkRQOlByZXNlbnQgQ29udHJhY3QKRAASBkNoZWNrAAURRGF0YSBFbmNyeXB0aW9uCm5vdGUgcmlnaHQgb2YgRFAKICBDcmVhdGUgZGF0YXNldCBkZWZpbmVkIAogIGluIHRoZQBhCSBhbgASBWUASQYgaXQgd2l0aAAfBQogIHB1YmxpYyBrZXkAKRAKZW5kIG5vdGUKRFAtLT5SUDpTZW5kAIEPCGVkIERhdGEKUlAAFgVEZQBYBgBSCXByaXZhdGUga2V5LiAK&#038;s=omegapple"></p>
	<div style="text-align:center;">Fig 2: Data Transfer sequence when Contract was used as a Bearer Token</div>
	<p><hr /></p>
	<h4>Appendix 1: Mapping to UMA terminology</h4>
	<table style="border:1px solid grey">
	<tr style="border:1px solid grey">
<td>This Article</td>
	<td>UMA (User Managed Access)</td>
</tr>
	<tr style="border:1px solid grey">
<td>AM</td>
	<td>AM</td>
</tr>
	<tr style="border:1px solid grey">
<td>SP</td>
	<td>Host</td>
</tr>
	<tr style="border:1px solid grey">
<td>DP</td>
	<td>Protected Resource</td>
</tr>
	<tr style="border:1px solid grey">
<td>UA</td>
	<td>Requestor</td>
</tr>
	<tr style="border:1px solid grey">
<td>User</td>
	<td>Authorizing User</td>
</tr>
	</table>
]]></content:encoded>
	</item>
		<item>
		<title>OAuth Wrap Web App Profile Summary</title>
		<link>http://www.sakimura.org/en/modules/wordpress/oauth-wrap-web-app-profile-summary/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/oauth-wrap-web-app-profile-summary/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 14:06:45 +0000</pubDate>
		<author>Nat &lt;s&amp;#97;&amp;#107;imu&amp;#114;a&amp;#64;marimb&amp;#97;.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OAuth</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/oauth-wrap-web-app-profile-summary/</guid>
		<description>	Here is the Sequence Diagram of OAuth Wrap Web App Profile (Section 5.4). 
	Hope the spec to include such instead of legacy ascii diagram&amp;#8230;
websequencediagrams.com source would do. 
	Notes: 
	wrap_client_id and wrap_client_secret are provisioned from the  AuthzServer to the WebAppClient in advance.
An Access Token is an opaque string whose format ...</description>
		<content:encoded><![CDATA[	<p>Here is the Sequence Diagram of <a href="http://oauth-wrap-wg.googlegroups.com/web/WRAP-v0.9.7.2.pdf?gda=uAv-pEQAAABFB7PFAFiVedPtjcqT8uuIw3UUaV7yzsI3PxYlAJlmzRidFvlYqd_ZjmG9h9kh5-pV6u9SiETdg0Q2ffAyHU-dzc4BZkLnSFWX59nr5BxGqA">OAuth Wrap</a> Web App Profile (Section 5.4). </p>
	<blockquote><p>Hope the spec to include such instead of legacy ascii diagram&#8230;<br />
websequencediagrams.com source would do. </p></blockquote>
	<p>Notes: </p>
	<ol>
	<li>wrap_client_id and wrap_client_secret are provisioned from the  AuthzServer to the WebAppClient in advance.</li>
	<li>An Access Token is an opaque string whose format is agreed upon between the Resource and AuthzServer. It acts as a Bearer Token. </li>
	<li>All the communication is done over HTTPS so signatures are said to be unnecessary. (I am skeptical on it though. [*1]) </li>
	</ol>
	<p><img style="width:95%;" src="http://www.websequencediagrams.com/cgi-bin/cdraw?lz=VUEtPldlYkFwcENsaWVudDogU2VydmljZSBSZXF1ZXN0CgASDC0tPlVBOiBWZXJpZmljYXRpb24gQ29kACMKbm90ZSBvdmVyIFVBLCAATQwKICAgIDMwMiBSZWRpcmVjAAsGd3JhcF9jAHUFX2lkAAgLYWxsYmFjawAxBSgAGgxzdGF0ZSkADQtzY29wAAkIQWRkaXRpb25hbCBQYXJhbWV0ZXJzKQplbmQgbm90ZQpVQS0-QXV0aHpTZXJ2ZXIAgS4cABwLAIFvB1BvUCBQYWcAMxNQb1AgKFVzZXIgQXV0aGVudACCFQcpADMTAIIoFHNwb25zZQCCLw4AghUndgCDAAtfY29kZQCCFB5hZGRpdACCGwVwYXJhbQCCDBAAg3wOAINaDQCBHQkAhAMNAIF5D09TVCBBY2Nlc3MgVG9rZW4AhAUTAIRhDCwAgwELAIN8EywAhBIRc2VjcmUAgV0hAIQ1DQA_BgCDeSEAg2MMAIQVDkNoZWNrAIVTBnJpZ2h0IG9mAINiBQCBMAgxLiAAhjUGIFMAgRkFIG11c3QgAIVqBW1hdGNoIHRoYQAwBQCFXQoyLgADCgApBgAiCGUAMwYAFApvYnRhaW5lZACGTwZyAIY0CDMuIACDbgwgY29kZSBNVVNUAG0HAIZpBQBzBnZlciBhdXRoegA0CjQuIACGWQgAdAsKNQA8GU5PVACBTAZoYXZlIGV4cGlyZWQAgicWAIg_EACEAA8AhVoRAINzHTIwMCBPSwCCRwYAiCYFcmVmcmVzaF90b2tlbgCIOAphAIRvBQALCwCILQYACwxfAIEwBnNfaW4AiBsSAIYIBQCIHRAAhVsOUmVzb3VyY2U6AIoRCCAACggAhUUYABcJICAgAIgUBW9yaXoAii8FOiBXUkFQIACBKgw9IgCBIA1zdHIiAIkuCQ&#038;s=omegapple" alt="UA->WebAppClient: Service Request<br />
WebAppClient&#8211;>UA: Verification Code Request<br />
note over UA, WebAppClient<br />
    302 Redirect<br />
    wrap_client_id<br />
    wrap_callback<br />
    (wrap_client_state)<br />
    (wrap_scope)<br />
    (Additional Parameters)<br />
end note<br />
UA->AuthzServer: Verification Code Request<br />
AuthzServer&#8211;>UA: PoP Page<br />
UA->AuthzServer: PoP (User Authentication)<br />
AuthzServer&#8211;>UA: Verification Code Response<br />
note over UA,WebAppClient<br />
    302 Redirect<br />
    wrap_verification_code<br />
    (wrap_client_state)<br />
    (additonal params)<br />
end note<br />
UA->WebAppClient: Verification Response<br />
WebAppClient->AuthzServer: POST Access Token Request<br />
note over WebAppClient,AuthzServer<br />
    wrap_client_id,<br />
    wrap_client_secret<br />
    wrap_verification_code<br />
    wrap_callback,<br />
    (Additional Parameters)<br />
end note<br />
AuthzServer->AuthzServer: Check<br />
note right of AuthzServer<br />
1. Client Secret must<br />
    match that of client_id<br />
2. client_id must match the<br />
    client_id obtained over redirect<br />
3. verification code MUST match<br />
    that over authz redirect<br />
4. callback must match<br />
5. verification code MUST NOT<br />
    have expired<br />
end note<br />
AuthzServer&#8211;>WebAppClient: Access Token Response<br />
note over WebAppClient,AuthzServer<br />
    200 OK<br />
    wrap_refresh_token<br />
    wrap_access_token<br />
    (wrap_access_token_expires_in)<br />
    (Additional parameters)<br />
end note<br />
WebAppClient->Resource: Request Resource<br />
note over WebAppClient,Resource<br />
    Authorization: WRAP access_token=access_token_str<br />
end note"></p>
	<p>[*1] Security Questions</p>
	<p>It might be because I have not spent too much time on this protocol, and I was writing this (original Japanese version) at 2:00AM, I have some questions on the security characteristics. </p>
	<ol>
	<li>UA may act as the man-in-the-middle to tamper the request. (e.g., when the UA is infested by a malware.) To me, it seems that it can only be coped by either the request to be signed or something like an Artifact is used instead of the request itself. Since the target of WRAP is to remove the signature, the Artifact seems to be the way to go. </li>
	<li>To identify the client, it is using client_id and client_secret. It is essentially a username/password authentication. Thus, from the NIST SP800-63 like perspective, it is only LoA1. </li>
	<li>Access Token is another long-term secret. Moreover, it is revealed to somebody else than the client and the verifier (AuthzServer). It has some implication from the SP800-63 perspective.</li>
	<li>MITM is possible even for HTTPS. How to recognized that the counter party is the right one needs to be specified in more details. Certificate Chain verification is only a necessary condition. If it is not done correctly, it will be possible to mount token capture and replay attack. </li>
	<li>Access Token is specified only as an Opaque String. This actually needs to be specified a little more in detail. For example, randomness requirements, signature requirements etc. are needed to thwart the guessing attack and the access token forgery. </li>
	<li>Browser Swap / CSRF attack has to be thwarted. </li>
	</ol>
	<p>Much of these needs to be dealt with Section  7. Security Considerations. </p>
	<p>In addition, I have not understood  </p>
	<ol>
	<li>Why are we provisioning wrap_client_id and  wrap_client_secret out of band? The y can just be Subject and Pubkey of XRD. If we do so, the long-term client_secret problem disappears, though signature resurfaces. </li>
	<li>Why do not we standardize on Scope format? For AuthzServers, having no standard is ok, but for WebAppClients, it is much easier to code on the standard than code a proprietary request per AuthzServer.</li>
	</ol>
]]></content:encoded>
	</item>
		<item>
		<title>OpenID Provider Selection Protocol?</title>
		<link>http://www.sakimura.org/en/modules/wordpress/openid-provider-selection-protocol/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/openid-provider-selection-protocol/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 09:26:40 +0000</pubDate>
		<author>Nat &lt;sakim&amp;#117;&amp;#114;a&amp;#64;marimba.o&amp;#114;g&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/openid-provider-selection-protocol/</guid>
		<description>	In case when the site want to use OP Identifier, the site typically shows list of icons of the OPs. This list grows quickly and results in User Interface Nightmare a.k.a. &amp;#8220;Nascar Problem&amp;#8221;. 
	Various people have been working on this, such as IDIB efforts and some Infocard integration, but to ...</description>
		<content:encoded><![CDATA[	<p>In case when the site want to use OP Identifier, the site typically shows list of icons of the OPs. This list grows quickly and results in User Interface Nightmare a.k.a. &#8220;Nascar Problem&#8221;. </p>
	<p>Various people have been working on this, such as IDIB efforts and some Infocard integration, but to me, there seems to be even simpler solution. </p>
	<p>I have been wondering why nobody proposes this.<br />
It is extremely simple. </p>
	<p>Simply add your OP Identifier to the end of User Agent string, separated by semi-colon. For example, if you are using Safari, and if your OP is mixi.jp, then it would be like: </p>
	<p>Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9.1;op=mixi.jp</p>
	<p>Creating custom header in IE is a bit of problem, but the UA string is an exception and can be changed just by changing a registry entry as far as I know. Most other major browsers provide ways to set the user agents. </p>
	<p>The RP, upon receipt of the above string, extracts mixi.jp and redirects user to mixi.jp automagically. If he has a session there, which is likely, he may be returned to the site immediately. </p>
	<p>True that it reveals your OP to every site. Some people may consider it a privacy problem, and some would complain about the security implication, but how real would be an attack using that information? Not much, I think. Anti-Phishing? It should be dealt with other mechanisms.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>Sequence Diagram for Artifact Binding</title>
		<link>http://www.sakimura.org/en/modules/wordpress/sequence-diagram-for-artifact-binding/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/sequence-diagram-for-artifact-binding/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 20:29:09 +0000</pubDate>
		<author>Nat &lt;sakimur&amp;#97;&amp;#64;m&amp;#97;rimb&amp;#97;.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/sequence-diagram-for-artifact-binding/</guid>
		<description>	Based on https://openid.pbworks.com/OpenIDwithArtifactBinding
 </description>
		<content:encoded><![CDATA[	<p>Based on <a href="https://openid.pbworks.com/OpenIDwithArtifactBinding">https://openid.pbworks.com/OpenIDwithArtifactBinding</a></p>
	<p><a href="http://www.websequencediagrams.com/?lz=VXNlci0-VUE6IENsaWNrIExvZ2luClVBLT5SUDoABwdSUC0-T1A6IEdldCBYUkRTAAwFUlA6IEZpbmQgU2VydmljZQpvcHQgSWYgbm8gQXNzb2MKICAgIAAyCAANBWlhdGlvbiBSZXEAFwVPUC0AXwYADw5zCmVuZABqCURpcmVjdCBBdXRoTgA1BU8AgQUHQ3JlYXRlIEFydGlmYWN0AA8JU3RvcmUgUmVxdWVzABEFAF0HACAIUlAtAIFpBgAyCABXBWVudGljAIEWCQA2BVVBAIE0BwAJHwCBbgl0IGltbWVkaWF0ZQCBVgoAglQFcmVkZW50aWFsIElucHV0IFNjcmVlbgCCHAUAgnUKABUGACIKABkGAH4HUE9TVCBjAA4OAIIBCWhlY2sAEQxlbmQAggAPQXNzZXJ0aW9uAIILBgCBYR5zcG9uc2UAg3oJAAghAIMbEABkCACCcxIADxMAOQtSUDogVmVyaWZ5AIElCwCDJglTZXNzaW9uCg&#038;s=omegapple"><br />
<img src="http://www.websequencediagrams.com/cgi-bin/cdraw?lz=VXNlci0-VUE6IENsaWNrIExvZ2luClVBLT5SUDoABwdSUC0-T1A6IEdldCBYUkRTAAwFUlA6IEZpbmQgU2VydmljZQpvcHQgSWYgbm8gQXNzb2MKICAgIAAyCAANBWlhdGlvbiBSZXEAFwVPUC0AXwYADw5zCmVuZABqCURpcmVjdCBBdXRoTgA1BU8AgQUHQ3JlYXRlIEFydGlmYWN0AA8JU3RvcmUgUmVxdWVzABEFAF0HACAIUlAtAIFpBgAyCABXBWVudGljAIEWCQA2BVVBAIE0BwAJHwCBbgl0IGltbWVkaWF0ZQCBVgoAglQFcmVkZW50aWFsIElucHV0IFNjcmVlbgCCHAUAgnUKABUGACIKABkGAH4HUE9TVCBjAA4OAIIBCWhlY2sAEQxlbmQAggAPQXNzZXJ0aW9uAIILBgCBYR5zcG9uc2UAg3oJAAghAIMbEABkCACCcxIADxMAOQtSUDogVmVyaWZ5AIElCwCDJglTZXNzaW9uCg&#038;s=omegapple" alt="OpenID Artifact Binding " style="width:95%;border:0px;" /></a>
</p>
]]></content:encoded>
	</item>
		<item>
		<title>OpenID Process Change</title>
		<link>http://www.sakimura.org/en/modules/wordpress/openid-process-change/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/openid-process-change/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 16:07:47 +0000</pubDate>
		<author>Nat &lt;sak&amp;#105;mura&amp;#64;m&amp;#97;rimba.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/openid-process-change/</guid>
		<description>	Finally!
	I am glad to write that OpenID Foundation Board has approved the change in the OpenID Process document so that a working group can be started without membership vote. 
	The change itself requires membership vote, so the notice will go out soon, and it is a month or more away ...</description>
		<content:encoded><![CDATA[	<p>Finally!</p>
	<p>I am glad to write that OpenID Foundation Board has approved the change in the OpenID Process document so that a working group can be started without membership vote. </p>
	<p>The change itself requires membership vote, so the notice will go out soon, and it is a month or more away for the new process to get effective, but once that is done, we can spin up WGs pretty quickly. That would certainly help AX 2.0, Auth 2.1 etc.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>Re: Is OpenID User Centric?</title>
		<link>http://www.sakimura.org/en/modules/wordpress/re-is-openid-user-centric/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/re-is-openid-user-centric/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 15:59:45 +0000</pubDate>
		<author>Nat &lt;sakimura&amp;#64;&amp;#109;arim&amp;#98;&amp;#97;.org&gt;</author>
		
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/re-is-openid-user-centric/</guid>
		<description>	As I was not able to login to comment on Johannes&amp;#8217;s blog&amp;#8230;
	It is about this entry &amp;#8220;Is OpenID User Centric?&amp;#8221;. 
	Johannes&amp;#8217;s comment that OpenID being &amp;#8220;http://netmesh.info/jernst/digital_identity/is-openid-still-user-centric&amp;#8221; is very apt. This is one use case that OpenID is supposed to serve. 
	The other use case that it is serving right now ...</description>
		<content:encoded><![CDATA[	<p>As I was not able to login to comment on Johannes&#8217;s blog&#8230;</p>
	<p>It is about this entry &#8221;<a href="http://netmesh.info/jernst/digital_identity/is-openid-still-user-centric">Is OpenID User Centric?</a>&#8221;. </p>
	<p>Johannes&#8217;s comment that OpenID being &#8220;http://netmesh.info/jernst/digital_identity/is-openid-still-user-centric&#8221; is very apt. This is one use case that OpenID is supposed to serve. </p>
	<p>The other use case that it is serving right now is the Web SSO. </p>
	<p>As a &#8220;personal/business card&#8221;, you do not need privacy. You do not want privacy. You want to reveal that it was you, and you want to be tracked. </p>
	<p>In Web SSO case, you might or might not want to be tracked. </p>
	<p>For User Centric thing, I believe that the user should control one&#8217;s XRD. Then, I can use Yahoo! or Google as authentication service that provide PPID. </p>
	<p>If I want to preserve anonymity, I would use OP identifier to Yahoo! or Google. Alternatively, I could provide an XRD address that service PPID, but that would be a tall order for most people. </p>
	<p>If I want to leave my track, then I will provide my (signed) XRD address. </p>
	<p>As to the email as attribute being sent&#8230; </p>
	<p>I think we should define contact service just like XRI people do. It could be email, twitter, or authenticated something, etc. The service should be advertised in the XRD. Then we should not need to provide &#8220;physical&#8221; address like email to the RP.
</p>
]]></content:encoded>
	</item>
		<item>
		<title>OpenID BizDay #4</title>
		<link>http://www.sakimura.org/en/modules/wordpress/openid-bizday-4/</link>
		<comments>http://www.sakimura.org/en/modules/wordpress/openid-bizday-4/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 15:11:51 +0000</pubDate>
		<author>Nat &lt;&amp;#115;aki&amp;#109;ura&amp;#64;marim&amp;#98;a.org&gt;</author>
		
	<category>Digital Identity</category>
	<category>OpenID</category>		<guid isPermaLink="true">http://www.sakimura.org/en/modules/wordpress/openid-bizday-4/</guid>
		<description>	I have not been reporting this, but apart from TechNight and BizDay, we are having several discussion groups going on and meetings are getting more like &amp;#8220;weekly&amp;#8221; than &amp;#8220;monthly&amp;#8221;. OK. That is not an excuse not writing them here. I will try to be more timely. 
	Today, I want to ...</description>
		<content:encoded><![CDATA[	<p>I have not been reporting this, but apart from TechNight and BizDay, we are having several discussion groups going on and meetings are getting more like &#8220;weekly&#8221; than &#8220;monthly&#8221;. OK. That is not an excuse not writing them here. I will try to be more timely. </p>
	<p>Today, I want to report the following: </p>
	<p>OpenID BizDay #4</p>
	<p>Date: Sept. 25, 2009 (Fri) 14:30 - 16:30<br />
Venue: Vila Fontaine Shiodome Meeting room 2,3<br />
    1-9-2 Shinbashi, Minato-ku, Tokyo 105-0021<br />
    JAPAN<br />
    http://www.sumitomo-rd.co.jp/vf/shiodome/conference/map.html</p>
	<p>Program:<br />
&#8220;Application of OpenID at NTTCom&#8221;<br />
Kazuhiro Kitamura, General Manager, Net Business Div.<br />
NTT Communications Corp. </p>
	<p>&#8220;gooID that grows with customers&#8221;<br />
Yasushi Tsuruki, Manager, Service Dept., Media Div.<br />
NTT Resonant Inc.
</p>
]]></content:encoded>
	</item>
	</channel>
</rss>