<?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>=nat</title>
	<atom:link href="http://nat.sakimura.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://nat.sakimura.org</link>
	<description>Digital Identity et al.</description>
	<lastBuildDate>Wed, 15 May 2013 01:08:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>More on Personal Data working group report</title>
		<link>http://nat.sakimura.org/2013/05/15/more-on-personal-data-working-group-report/</link>
		<comments>http://nat.sakimura.org/2013/05/15/more-on-personal-data-working-group-report/#comments</comments>
		<pubDate>Wed, 15 May 2013 01:08:50 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[eic2013]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=634</guid>
		<description><![CDATA[So, during the Kantara Initiative&#8217;s Information Sharing working group call, which happend between 1:30am and 2:30am here in Munich, Joe Andreu kindly pointed out that an English version of the press release is available at: http://www.meti.go.jp/english/press/2013/0510_01.html For the content of the report, you can go directly to the section 3 of...]]></description>
				<content:encoded><![CDATA[<p>So, during the Kantara Initiative&#8217;s Information Sharing working group call, which happend between 1:30am and 2:30am here in Munich, Joe Andreu kindly pointed out that an English version of the press release is available at: <a href="http://www.meti.go.jp/english/press/2013/0510_01.html">http://www.meti.go.jp/english/press/2013/0510_01.html</a></p>
<p>For the content of the report, you can go directly to the section 3 of the release. In it, it talks about three topics:</p>
<p style="padding-left: 30px;">1) Methods and approaches to user-friendliness</p>
<p style="padding-left: 30px;">2) Utilization of information-providing organizations</p>
<p style="padding-left: 30px;">3) Selection of disclosable information by consumers</p>
<p>The topic 1) is about how to show the users the nature of the personal data offering that they are making. Showing them 30pages ToS would not help, nor repeated consent dialogue would. It would just be a &#8220;click training&#8221; turning the internet dog into the Pavlov&#8217;s dog. We should suppress the consent dialogue whenever appropriate. For example, if the case falls into one of the &#8220;conditions for processing&#8221;, then, as one of the working group member advocated (not me), &#8220;the consent dialogue MUST NOT be shown.&#8221; (Now, this was too radical and did not quite made into the report, but I think it is something we need to explore.)</p>
<p>The report discusses what would be effective ways to convey what is important to the consumers, and give Information Sharing Label as an example. Further, it discusses about &#8220;iconified&#8221; version of it, since that would be even easier for the users, and would be able to overcome the language barrier.</p>
<p>The translated title of topic 2) is a bit misleading. At the first sight, you may think that it is talking about the attribute providers. It is not. It is talking about the metadata providers: metadata about the recipient of the personal data.</p>
<p>Consumer in general faces great deal of information asymmetry that they are unable to assess if the data receiver is trustworthy. A metadata provider, which is typically an entity that inspects the receiving entity in one way or another would be able to help them. It could be completely private sector, or could be blessed by the respective authority such as privacy commissioner. In a way, it is a privacy trust framework.</p>
<p>Item 3) is about letting the user select what attribute to share. Sounds familiar? Well, may be not. The proposal is to provide the consumer the purpose of the use for each attribute. That&#8217;s not very conventional. I have not seen many of them.</p>
<p>I would further argue that it should tell the consumer what is the consequence of data sharing, but that is not in the report.</p>
<p>Some of the things that did not quite made into the report (perhaps because the report writer was not there during the discussion) but I think is very important is about the d<span style="line-height: 14px;">irection of consent. In the real life that we live, it is reversed. We daily agree to companies&#8217; terms of service and privacy policy, but that actually does not make sense because the entity that licenses the personal data is us, the consumer, and not the recipient. It is the corporations that has to agree to your licensing terms. <a href="http://www.amazon.com/gp/product/1422158527?ie=UTF8&amp;camp=213733&amp;creative=393185&amp;creativeASIN=1422158527&amp;linkCode=shr&amp;tag=marimbaorg&amp;qid=1368579947&amp;sr=8-1&amp;keywords=intention+economy">Doc Searls&#8217; &#8220;The Intention Economy&#8221;</a> was also quoted in the working group. </span></p>
<p>By the way, I am at the European Identity Conference this week, and so is Doc Searls. It might be a good opportunity to connect if you are at the EIC2013.</p>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2013/05/15/more-on-personal-data-working-group-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Info Sharing Label became the top story of Nikkei newspapers in Japan!</title>
		<link>http://nat.sakimura.org/2013/05/10/info-label-win/</link>
		<comments>http://nat.sakimura.org/2013/05/10/info-label-win/#comments</comments>
		<pubDate>Fri, 10 May 2013 09:25:55 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=628</guid>
		<description><![CDATA[Ministry of Economy, Trade and Industry (METI) of Japan announced the publishing of the report on the personal data usage by corporations[0] . It is the outcome of the government working group [1] that I was a member of. The major portion of it is about the meaningful consent, and...]]></description>
				<content:encoded><![CDATA[<p>Ministry of Economy, Trade and Industry (METI) of Japan announced the publishing of <a href="http://www.meti.go.jp/press/2013/05/20130510002/20130510002.html">the report on the personal data usage by corporations[0]</a> . It is the outcome of <a href="http://www.meti.go.jp/committee/kenkyukai/mono_info_service.html#it_yugo_forum">the government working group [1] </a>that I was a member of. The major portion of it is about the meaningful consent, and the Standard Information Sharing Label[2].</p>
<div>This is significant, but even more significant is that it apparently [3] became the top story of the top three newspapers (Nikkei, Asahi, and Yomiuri) on the morning edition of Friday, May 10, 2013. Yes. THE TOP STORY. In Nikkei newspaper, it is taking over the top 1/3 of the front page.</div>
<div><span style="font-size: 13px;"> </span></div>
<div>The discussion at the working group did not stop there and went further. We have talked about &#8220;<a href="http://nat.sakimura.org/2013/03/01/explicit-consent-turning-internet-dog-into-pavlovs-dog/">the problem of turning the internet dog into the Pavlov&#8217;s dog</a>&#8221; and importance of the &#8220;implicit consent&#8221; based on the context. Further, we have discussed the problem of the reversed direction of the consent: Currently, it is customary that the user give consent to the terms specified by the companies. When you think about it, it is very weird. It is the user who is licensing the personal data to the companies. It is the companies who should agree to the license, not the other way round.</div>
<div></div>
<div>As to the Pavlov&#8217;s dog problem, the discussion went further that perhaps we should ban the explicit consent dialog when all the data obtained conforms to the data minimization requirement and no further sharing requirement. That way, we can prevent the most common attack on the privacy: hiding high privacy impact terms among the low privacy impact terms. Yes. We are running to the opposite direction to what proposed EU legislation is heading to, but I believe that is the right way to go.</div>
<div></div>
<div>I may want to discuss all these topics at the KI workshop at the EIC.</div>
<div></div>
<div>The other aspect that made into the top story of the Nikkei newspaper was the selective sharing with itemized purpose of the use. In most cases that I have seen till now, though sometimes user was give the choice to provide individual claims/attributes but the purpose of the use of that particular attribute has not been shown, though in some cases, the purpose of the use for the entire set of claims were shown.</div>
<div>This is another good move, though we need to figure out the right user interface.</div>
<div></div>
<div>Having the report in the top story of major newspaper is very rare. Now that we have achieved it, I am hoping that the working group continues this fiscal year also to further the discussion and potential regulation.</div>
<div></div>
<div></div>
<div>[0] <a href="http://www.meti.go.jp/press/2013/05/20130510002/20130510002.html">http://www.meti.go.jp/press/2013/05/20130510002/20130510002.html</a></div>
<div>[1] METI Personal Data Working Group. I was a member of it representing Kantara Initiative.</div>
<div>[2] Selective sharing and &#8220;easy to understand label&#8221; are some of the major component of the report.</div>
<div>[3] Since I am in the US attending NSTIC meeting, I can only see Nikkei Newspaper electronic edition, so only Nikkei Newspaper is verified.</div>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2013/05/10/info-label-win/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Explicit Consent &#8211; Turning Internet Dog into Pavlov&#8217;s Dog</title>
		<link>http://nat.sakimura.org/2013/03/01/explicit-consent-turning-internet-dog-into-pavlovs-dog/</link>
		<comments>http://nat.sakimura.org/2013/03/01/explicit-consent-turning-internet-dog-into-pavlovs-dog/#comments</comments>
		<pubDate>Fri, 01 Mar 2013 00:46:51 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[OpenID Connect]]></category>
		<category><![CDATA[OpenID Foundation]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=611</guid>
		<description><![CDATA[People like me who is working on internet identity space is trying to solve so called &#8220;Internet Dog Problem.&#8221; You surely must have seen this picture &#8212; InternetDog.jpg : On the internet, nobody knows you&#8217;re a dog. This is a hard enough problem that we have long been trying to...]]></description>
				<content:encoded><![CDATA[<p>People like me who is working on internet identity space is trying to solve so called &#8220;Internet Dog Problem.&#8221;</p>
<p>You surely must have seen this picture &#8212; InternetDog.jpg : On the internet, nobody knows you&#8217;re a dog.</p>
<div class="wp-caption aligncenter" style="width: 310px"><img class=" " title="Internet Dog" alt="" src="http://upload.wikimedia.org/wikipedia/en/f/f8/Internet_dog.jpg" width="300" height="335" /><p class="wp-caption-text">Internet Dog. Peter Steiner&#8217;s cartoon, as published in The New Yorker.</p></div>
<p>This is a hard enough problem that we have long been trying to solve.</p>
<p>At the same time, to promote the identity federation and API economy, privacy problems also had to be solved, so identirati has long been trying to solve the privacy problems. Things like psudonymous identifier and partially unlinkable authentication etc. are prime example of such things. But above all, the most important thing is to how to get a meaningful consent and we have been trying to solve it. The consent screen you are so familiar with these days were actually created on the way.</p>
<p>Since a few years ago, however, I started to doubt if that is a good model. Do people read the consent screen? Do they read privacy policy and terms of service? Of course not. Then how could such a consent screen be meaningful? Are we not just training the users to click &#8220;accept&#8221;.</p>
<p>And here comes the &#8220;explicit consent requirement&#8221; that EU promotes. Oh, no. That&#8217;s a disaster.</p>
<p><span style="font-size: 24pt;">We are now <span style="color: #ff0000;">turning the Internet dog into Pavlov&#8217;s Dog. </span></span></p>
<div id="attachment_614" class="wp-caption aligncenter" style="width: 447px"><a href="http://nat.sakimura.org/wp-content/uploads/2013/03/internet-pavlovs-dog.png"><img class=" wp-image-614  " alt="Turning Internet Dog into Pavlov's Dog - based on IIW dog. " src="http://nat.sakimura.org/wp-content/uploads/2013/03/internet-pavlovs-dog.png" width="437" height="100" /></a><p class="wp-caption-text">Turning Internet Dog into Pavlov&#8217;s Dog &#8211; based on IIW dog.</p></div>
<p>We are doing the Pavlovian conditioning to the users to click &#8220;accept&#8221;. Then, the  attackers can easily hide the privacy attack in the forest of the seemingly benign privacy policy clauses and have the user click &#8220;accept&#8221;.</p>
<p>Actually, I would think that the current consent model is completely broken.</p>
<p>The direction of the consent is the reverse of what it should be.</p>
<p>It should be the service providers who agrees to the individual&#8217;s privacy policy because it is us who is letting them use our personal data.</p>
<p>One way of implementing it is to create a small set of consent like Creative Commons license. Typical one would be something like:</p>
<p>Minimal &#8211; No Share &#8211; Single Transaction (min-no-1 license)</p>
<p>standing for</p>
<ul>
<li><span style="font-size: 13px;">Minimal &#8211; minimal data (only the minimum amount of data is requested to fulfill the transaction)</span></li>
<li><span style="font-size: 13px;">No sharing &#8211; do not give the data except for outsourcing to a data processor, in which case the data controller should have full responsibility for it; </span></li>
<li><span style="font-size: 13px;">Single Transaction &#8211; The license to the personal data is valid only for this transaction thus once the transaction is complete and some required retention period has passed, the data will be deleted;</span></li>
</ul>
<p>It can be graphical like</p>
<p><a href="http://nat.sakimura.org/wp-content/uploads/2013/03/min-no-1.png"><img class="size-full wp-image-612 aligncenter" alt="min-no-1" src="http://nat.sakimura.org/wp-content/uploads/2013/03/min-no-1.png" width="316" height="130" /></a></p>
<p>&nbsp;</p>
<p>The user can set this preference in the identity provider. If the relying party / service provider agrees to it, <strong>the consent screen MUST NOT be shown</strong>. It removes the friction for the service provider, and prevents the user trained as a Pavlov&#8217;s Dog.</p>
<p>This way, if the consent screen type of thing appears, user will know that something unusual is happening and they should be very careful about it.</p>
<p>Now then, the problem becomes of the issue of whether the service provider tells a truth. For example in min-no-1 license, does the service provider really only asking for the minimum data?</p>
<p>There comes the assessor. Accredited assessor of a <strong>Privacy Trust Framework</strong> shall examine the request and determines if it complies to min-no-1 license. If it does, then s/he will sign the request file. Then, the service provider can register the location of the file to the IdP. The IdP fetches the file, validate the signature, and decide whether it is good for its user. If it determines so, it will let the request to come.</p>
<p>Is there a protocol that achieves it?</p>
<p>Yes. OpenID Connect. OpenID Connect has a facility for registering something called request_uri. This is exactly what is described above. So the technology is there. What we do not have is the policy template and the trust framework that assesses the service provider requests.</p>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2013/03/01/explicit-consent-turning-internet-dog-into-pavlovs-dog/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Alice to Bob resource sharing</title>
		<link>http://nat.sakimura.org/2013/03/01/alice-to-bob-resource-sharing/</link>
		<comments>http://nat.sakimura.org/2013/03/01/alice-to-bob-resource-sharing/#comments</comments>
		<pubDate>Thu, 28 Feb 2013 19:02:09 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[OpenID Connect]]></category>
		<category><![CDATA[uma]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=607</guid>
		<description><![CDATA[So I was in UMA call today and that reminded me of this use case. How does Alice share her protected resources (like medical test result) to Bob? I may have bloged in the past, but here is another try. The requirements:  Alice needs to give permission to Bob to...]]></description>
				<content:encoded><![CDATA[<p>So I was in UMA call today and that reminded me of this use case.</p>
<p>How does Alice share her protected resources (like medical test result) to Bob?</p>
<p>I may have bloged in the past, but here is another try.</p>
<p>The requirements:</p>
<ol>
<li><span style="font-size: 13px;"> Alice needs to give permission to Bob to access her resource; </span></li>
<li>The resource needs to be able to find out the fact that Alice has given the permission. (policy);</li>
<li>The resource needs to make sure the entity that accessing it is Bob;</li>
</ol>
<p>Assumption:</p>
<ol>
<li><span style="line-height: 14px;">Alice and Bob has OpenID Connect Identity provider (OP) of their own; </span></li>
<li>The resource has been registered at Alice&#8217;s authorization server and the accounts at the resource and the authorization server is linked somehow.;</li>
<li>Alice has to know Bob&#8217;s identifier in Alice initiated flow, and Bob has to know Alice&#8217;s identifier in Bob initiated flow.</li>
</ol>
<p>There can be two kind of work flow:</p>
<ol>
<li><span style="line-height: 14px;">Alice initiated flow (Alice giving the permission to Bob and Bob access the resource); </span></li>
<li>Bob initiated flow (Bob requests the claim; Alice approves it; Bob access the resource);</li>
</ol>
<h2>WF1: Alice initiated flow (Alice giving the permission to Bob and Bob access the resource)</h2>
<p>This is an Alice initiated flow. In this workflow, it proceeds as follows:</p>
<ol>
<li><span style="line-height: 14px;">Alice access the endpoint that let her create the policy / authorization (AM in UMA?) for Bob to access her resource;</span></li>
<li>Alice is redirected to her OP and gets authenticated and bounced back to the AM;</li>
<li>The AM shows Alice the URL that Bob can use to access the resource. (Note: URL may have the policy encoded in it so that the servers can be stateless) In Link-Rel terminology, the type of the resource (e.g., the medical test result) is &#8216;rel&#8217; and the URL is the &#8216;link&#8217;;</li>
<li>Alice sends the URL somehow to Bob (e.g., email);</li>
<li>Bob access the URL;</li>
<li>Since URL is protected, Bob is bounced to his OP. (Note: At this point, the resource server has to be registered at Bob&#8217;s OP as a client.) ;</li>
<li>OP authenticates Bob and bounces him back to the registered redirect URI, say with &#8216;code&#8217;;</li>
<li>The resource accesses the token endpoint of Bob&#8217;s OP to get his ID Token;</li>
<li>The resource examines the ID Token and finds out that the person accessing is Bob through the &#8216;iss&#8217; and  &#8217;sub&#8217; claim;</li>
<li>The resource returns Alice&#8217;s medical test result to Bob&#8217;s browser;</li>
</ol>
<p>The trick here is the &#8216;link&#8217;. The &#8216;link&#8217; has to contain some state information that can be used to look up the policy that Alice has set. It could either be completely encoded in the URI or the resource server may resolve the policy from the state. Apart from that, there is nothing special. It is just the standard OpenID Connect repeated twice; one each for Alice and Bob. Also, it would be worth noting that to achieve this, Alice somehow has to know Bob&#8217;s identifier, such as email so that Bob can prove that he is the legitimate holder of that identifier.</p>
<h2>WF2: Bob initiated flow (Bob requests the claim; Alice approves it; Bob access the resource)</h2>
<p>This is Bob initiated flow.</p>
<ol>
<li>Bob does a lookup through Webfinger etc. to find out Alice&#8217;s AM endpoint;</li>
<li>Bob requests access to &#8216;medical test claim&#8217; to Alice&#8217;s AM endpoint;</li>
<li>Since Bob is not authenticated, he is redirected to his OP. (He may have to chose one in the Account Chooser etc.) ;</li>
<li>The OP authenticates Bob and get him back to the endpoint with &#8216;code&#8217;;</li>
<li>The AM resolves &#8216;code&#8217; and gets Bob&#8217;s ID Token;</li>
<li>The AM returns the page saying &#8216;Authorization Pending&#8217; etc. with the link URL that he can use to access the resource once Alice authorizes.</li>
<li>The AM sends the notification to Alice with a link via email, SMS, etc. (SPAM is a problem here.) ;</li>
<li>Alice gets the notification and clicks on the link (AM).</li>
<li>The link (AM) bounces Alice back to her OP to get her authenticated after which she returns with a &#8216;code&#8217;;</li>
<li>The AM resolves &#8216;code&#8217; to get ID Token and finds out that it is Alice;</li>
<li>The AM shows the authorization consent page to Alice;</li>
<li>Once Alice agrees, notification is sent to Bob.</li>
<li>The rest is the same as the WF1: Step 5 and after.</li>
</ol>
<p>OK?</p>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2013/03/01/alice-to-bob-resource-sharing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Call for Papers &#8211; Open Identity Summit 2013 &#8211; Deadline: May 15th, 2013</title>
		<link>http://nat.sakimura.org/2013/01/28/call-for-papers-open-identity-summit-2013-deadline-may-15th-2013/</link>
		<comments>http://nat.sakimura.org/2013/01/28/call-for-papers-open-identity-summit-2013-deadline-may-15th-2013/#comments</comments>
		<pubDate>Sun, 27 Jan 2013 15:18:31 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[OpenID Foundation]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=602</guid>
		<description><![CDATA[Dear Ladies and Gentlemen, please be invited to submit a paper or abstract to the &#8220;Open Identity Summit&#8221;. Furthermore we would be delighted to meet you at the picturesque Kloster Banz in September. Please forward this mail to other colleagues, which might be interested in Identity Management, Open Source and Cloud Computing. BR, dh...]]></description>
				<content:encoded><![CDATA[<p>Dear Ladies and Gentlemen,</p>
<p>please be invited to submit a paper or abstract to the &#8220;Open Identity Summit&#8221;.<br />
Furthermore we would be delighted to meet you at the picturesque Kloster Banz in September.</p>
<p>Please forward this mail to other colleagues, which might be interested in Identity Management, Open Source and Cloud Computing.</p>
<p>BR,<br />
dh</p>
<p>******************************<wbr />******************************<br />
Call for Papers &#8211; Open Identity Summit 2013<br />
******************************<wbr />******************************<br />
September 10th &#8211; 11th 2013, Kloster Banz, Germany<br />
Deadline for electronic submissions: May 15th, 2013<br />
******************************<wbr />******************************<br />
The aim of Open Identity Summit 2013 is to link practical experiences and requirements with academic innovations. Focus areas will be Research and Applications in the area of Identity Management and Open Source with a special focus on Cloud Computing.<br />
******************************<wbr />*****************************<br />
More information: <a href="http://openidentity.eu/" target="_blank">http://openidentity.eu</a><br />
******************************<wbr />*****************************</p>
<p>The topics of the workshop include but are not limited to:<br />
***********************************************************<br />
Identity Management<br />
***********************************************************</p>
<ul>
<li>Security, interoperability as well as legal, economic and privacy aspects of identity management, credential technologies and</li>
<li>electronic identity tokens.</li>
<li>Security analysis and proofs for authentication protocols and federated identity management protocols based on SAML, OpenID, WS-* and OAuth for example.</li>
<li>Concepts for and practical experiences with components, systems, services, processes and applications for identity management.</li>
<li>Novel identity management technologies, mobile aspects of identity management and alternative identity tokens.</li>
<li>Identity management standards, interoperability aspects and interoperable identity management solutions.</li>
<li>Provable secure identity management for cloud computing.</li>
<li>International, global and long term aspects of identity management.</li>
</ul>
<p>***********************************************************<br />
Open Source<br />
***********************************************************</p>
<ul>
<li>Security, interoperability as well as legal and economic aspects of open source in the area of security and identity management.</li>
<li>Concepts and practical experiences with open source components related to security, identity management and cloud computing.</li>
<li>Integration of identity management solutions in existing open source libraries or frameworks.</li>
<li>Open source tools for distributed specification, development, quality assurance and dissemination of project results.</li>
<li>Aspects related to open source community development and federated social media.</li>
<li>New open source projects and news from existing open source projects in the area of security, identity management and cloud computing.</li>
</ul>
<p>******************************<wbr />*****************************<br />
Open Identity Partners<br />
******************************<wbr />*****************************<br />
*   Gesellschaft für Informatik e.V.<br />
- BIOSIG &#8211; Biometrics and Electronic Signatures (<a href="http://www.biosig.org/" target="_blank">www.biosig.org</a>)<br />
- CRYPTO &#8211; Applied Cryptology (<a href="http://fg-krypto.gi.de/" target="_blank">fg-krypto.gi.de</a>)<br />
- PET &#8211; Privacy-Enhancing Technologies (<a href="http://fg-pet.gi.de/" target="_blank">fg-pet.gi.de</a>)<br />
- Regional Chapter Upper Franconia<br />
*   FutureID Project (<a href="http://www.futureid.eu/" target="_blank">www.futureid.eu</a>)<br />
*   Open eCard Team (<a href="http://www.openecard.org/" target="_blank">www.openecard.org</a>)<br />
*   BITKOM (<a href="http://www.bitkom.org/" target="_blank">www.bitkom.org</a>)<br />
*   CAST Forum (<a href="http://www.cast-forum.de/" target="_blank">www.cast-forum.de</a>)<br />
*   Deutsche Wolke (<a href="http://www.deutsche-wolke.de/" target="_blank">www.deutsche-wolke.de</a>)<br />
*   European Association for eIdentity and Security (EEMA) (<a href="http://www.eema.org/" target="_blank">www.eema.org</a>)<br />
*   Open Cloud Initiative (OCI) (<a href="http://www.opencloudinitiative.org/" target="_blank">www.opencloudinitiative.org</a>)<br />
*   OpenID Foundation (<a href="http://www.openid.net/" target="_blank">www.openid.net</a>)<br />
*   Open Identity Exchange (OIX) (<a href="http://www.openidentityexchange.org/" target="_blank">www.openidentityexchange.org</a>)<br />
*   Open Source Business Alliance (OSBA) (<a href="http://www.osb-alliance.de/" target="_blank">www.osb-alliance.de</a>)<br />
*   Open Source Integration Initiative (OSII) (<a href="http://www.osi-initiative.com/" target="_blank">www.osi-initiative.com</a>)<br />
*   SkIDentity Project (<a href="http://www.skidentity.de/" target="_blank">www.skidentity.de</a>)<br />
*   TeleTrusT (<a href="http://www.teletrust.de/" target="_blank">www.teletrust.de</a>)<br />
*   Trusted Cloud Program (<a href="http://www.trusted-cloud.de/" target="_blank">www.trusted-cloud.de</a>)</p>
<p>******************************<wbr />*****************************<br />
Program Committee<br />
******************************<wbr />*****************************<br />
*   John Bradley (Ping, USA)<br />
*   Arslan Brömme (GI/BIOSIG, DE)<br />
*   Bud Bruegger (Fraunhofer IAO, DE)<br />
*   Hartje Bruns (bos, DE)<br />
*   Christoph Busch (CAST-Forum, DE)<br />
*   Victor-Philipp Busch (Uni HH, DE)<br />
*   Roger Dean (EEMA, UK)<br />
*   Jos Dumortier (KU Leuven, BE)<br />
*   Torsten Eymann (Uni BT, DE)<br />
*   Hannes Federrath (Uni HH, DE)<br />
*   Arno Fiedler (Nimbus, DE)<br />
*   Lothar Fritsch (NR, NO)<br />
*   Jens Fromm (Fraunhofer FOKUS, DE)<br />
*   Walter Fumy (Bundesdruckerei, DE)<br />
*   Ulrich Greveler (HS RW, DE)<br />
*   Thomas Groß (UNEW, UK)<br />
*   Oliver Hinz (TU DA, DE)<br />
*   Olaf Herden (DHBW, DE)<br />
*   Gerrit Hornung (Uni Passau, DE)<br />
*   Moritz Horsch (TU DA, DE)<br />
*   Detlef Houdeau (Infineon, DE)<br />
*   Detlef Hühnlein (ecsec, DE)<br />
*   Jan Jürjens (TU DO, DE)<br />
*   Stefan Katzenbeisser (CASED, DE)<br />
*   Andreas Kuckartz (W3C FSW CG)<br />
*   Andreas Kühne (Trustable, DE)<br />
*   Herbert Leitold (A-SIT, AT)<br />
*   Luigi Lo Iacono (FH Cologne, DE)<br />
*   Nils Magnus (LinuxTag, DE)<br />
*   Tarvi Martens (SK, EE)<br />
*   Pablo Mentzinis (BITKOM, DE)<br />
*   Wolf Müller (HU Berlin, DE)<br />
*   Anja Lehmann (IBM, CH)<br />
*   Peter Lipp (TU Graz, AT)<br />
*   Johannes Loxen (SerNet, DE)<br />
*   Holger Mühlbauer (TeleTrusT, DE)<br />
*   Alexander Nouak (Fraunhofer IGD)<br />
*   Axel Nennker (DTAG, DE)<br />
*   Sebastian Pape (TU DO, DE)<br />
*   René Peinl (HS Hof, DE)<br />
*   Sachar Paulus (FH Brandenburg, DE)<br />
*   Henrich C. Pöhls (Uni Passau, DE)<br />
*   Marco von der Pütten (bos, DE)<br />
*   Kai Rannenberg (JWG Uni, DE)<br />
*   Volker Roth (FU Berlin, DE)<br />
*   Alexander Roßnagel (Uni Kassel, DE)<br />
*   Heiko Roßnagel (Fraunhofer IAO)<br />
*   Ahmad-Reza Sadeghi (CASED, DE)<br />
*   Ivonne Scherfenberg (HPI, DE)<br />
*   Johannes Schmölz (ecsec, DE)<br />
*   Jörg Schwenk (RU Bochum, DE)<br />
*   David Simonsen (WAYF, DK)<br />
*   Tobias Wich (ecsec, DE)<br />
*   Don Thibeau (OIDF, USA)<br />
*   Thomas Uhl (OSBA, DE)<br />
*   Thomas Wieland (HS Coburg, DE)<br />
*   Alex Wiesmaier (AGT, DE)<br />
*   Klaus-Dieter Wolfenstetter (DTAG)<br />
*   Xuebing Zhou (Fraunhofer IGD, DE)<br />
*   Jan Zibuschka (Fraunhofer IAO, DE)<br />
*   Frank Zimmermann (Novartis, CH)</p>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2013/01/28/call-for-papers-open-identity-summit-2013-deadline-may-15th-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re: Limitations of the OAuth 2.0 definition of “Client”</title>
		<link>http://nat.sakimura.org/2012/12/30/re-limitations-of-the-oauth-2-0-definition-of-client/</link>
		<comments>http://nat.sakimura.org/2012/12/30/re-limitations-of-the-oauth-2-0-definition-of-client/#comments</comments>
		<pubDate>Sun, 30 Dec 2012 06:25:30 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[OAuth]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=600</guid>
		<description><![CDATA[Thomas Hardjono has a very good blog entry &#60;&#60;Limitations of the OAuth 2.0 definition of &#8220;Client&#8221;&#62;&#62;. The essence of the entry is that, the definition of “client” in OAuth 2.0 (RFC6749) is too limiting and does not fit with many current use of the specification. Here is the definition: client An...]]></description>
				<content:encoded><![CDATA[<p>Thomas Hardjono has a very good blog entry &lt;&lt;<a href="http://www.findthomas.net/blog/2012/12/29/limitations-of-the-oauth-2-0-definition-of-client/">Limitations of the OAuth 2.0 definition of &#8220;Client&#8221;</a>&gt;&gt;.</p>
<p>The essence of the entry is that, the definition of “client” in OAuth 2.0 (<a title="RFC6749" href="http://tools.ietf.org/html/rfc6749" target="_blank">RFC6749</a>) is too limiting and does not fit with many current use of the specification.</p>
<p>Here is the definition:</p>
<blockquote><p><strong>client<br />
</strong>An application making protected resource requests <strong>on behalf of</strong> the resource owner and with its authorization.</p></blockquote>
<p>This excludes many useful cases. The client simply may not be acting on behalf of the resource owner, even though it may be doing something good for the resource owner.</p>
<p>The <a title="UMA Core (draft-06)" href="http://www.ietf.org/id/draft-hardjono-oauth-umacore-06.txt" target="_blank">UMA (draft-06)</a> definition of the “client” is much better:</p>
<blockquote><p><strong>client</strong><br />
An application making protected resource requests with the resource owner’s authorization and <strong>on the requesting party’s behalf</strong>.</p></blockquote>
<p>Note that the &#8220;requesting party&#8221; is a defined term:</p>
<blockquote><p><strong>requesting party</strong><br />
An end-user, or a corporation or other legal person, that uses a client to seek access to a protected resource. The requesting party may or may not be the same party as the resource owner.</p></blockquote>
<p>and also that &#8220;resource owner&#8221; is a defined term, and does not have to &#8220;own&#8221; the resource:</p>
<blockquote><p><strong>resource owner<br />
</strong>An entity capable of granting access to a protected resource. When the resource owner is a person, it is referred to as an end- user.</p></blockquote>
<p>&nbsp;</p>
<p><a title="UMA Core (draft-06)" href="http://www.ietf.org/id/draft-hardjono-oauth-umacore-06.txt" target="_blank">UMA (draft-06)</a> definition of the &#8220;client&#8221; is much better than <a title="RFC6749" href="http://tools.ietf.org/html/rfc6749" target="_blank">RFC6749</a>. It is something that needs to be considered for an early revision or errata, IMHO.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2012/12/30/re-limitations-of-the-oauth-2-0-definition-of-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hyperlinked OAuth</title>
		<link>http://nat.sakimura.org/2012/12/13/hyperlinked-oauth/</link>
		<comments>http://nat.sakimura.org/2012/12/13/hyperlinked-oauth/#comments</comments>
		<pubDate>Wed, 12 Dec 2012 15:43:00 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[OAuth]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=598</guid>
		<description><![CDATA[I just published a new I-D on the hyperlinked oauth that I talked at IETF 85. Since it was pointed out that the &#8220;_links&#8221; member is actually holding metadata about the response, I named the document accordingly. It is fairly short, only 9 pages long. It is something to be...]]></description>
				<content:encoded><![CDATA[<p>I just published a new I-D on the hyperlinked oauth that I talked at IETF 85. Since it was pointed out that the &#8220;_links&#8221; member is actually holding metadata about the response, I named the document accordingly. It is fairly short, only 9 pages long. It is something to be discussed at the oauth wg list.</p>
<p>In this -00 draft, I have just written down what I <a href="http://nat.sakimura.org/2012/08/29/hal-enhanced- oauth-2-0-response/">bloged in the past</a>. Defining some additional relationships such as the public key etc. may be useful as well.</p>
<p>Have fun.</p>
<hr />
<p>A new version of I-D, draft-sakimura-oauth-meta-00.<wbr />txt</p>
<p>has been successfully submitted by Nat Sakimura and posted to the<br />
IETF repository.</p>
<p>Filename:        draft-sakimura-oauth-meta<br />
Revision:        00<br />
Title:           JSON Metadata for OAuth Responses<br />
Creation date:   2012-12-12<br />
WG ID:           Individual Submission<br />
Number of pages: 9<br />
URL:             <a href="http://www.ietf.org/internet-drafts/draft-sakimura-oauth-meta-00.txt" target="_blank">http://www.ietf.org/internet-<wbr />drafts/draft-sakimura-oauth-<wbr />meta-00.txt</a><br />
Status:          <a href="http://datatracker.ietf.org/doc/draft-sakimura-oauth-meta" target="_blank">http://datatracker.ietf.org/<wbr />doc/draft-sakimura-oauth-meta</a><br />
Htmlized:        <a href="http://tools.ietf.org/html/draft-sakimura-oauth-meta-00" target="_blank">http://tools.ietf.org/html/<wbr />draft-sakimura-oauth-meta-00</a></p>
<p>Abstract:<br />
This specification defines an extensible metadata member that may be<br />
inserted into the OAuth 2.0 responses to assist the clients to<br />
process those responses.  It is expressed as a member called &#8220;_links&#8221;<br />
that is inserted as the top level member in the responses.  It will<br />
allow the client to learn where the members in the response could be<br />
used and how, etc.  Since it is just a member, any client that does<br />
not understand this extension should not break and work normally<br />
while supporting clients can utilize the metadata to its advantage.</p>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2012/12/13/hyperlinked-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[OAuth] Resource Owner != Client User</title>
		<link>http://nat.sakimura.org/2012/12/12/oauth-resource-owner-client-user/</link>
		<comments>http://nat.sakimura.org/2012/12/12/oauth-resource-owner-client-user/#comments</comments>
		<pubDate>Wed, 12 Dec 2012 00:59:49 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[OAuth]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=595</guid>
		<description><![CDATA[I have been preaching this numerous time, but let me do it once more. There seems to be a very common misperception that in OAuth that the Resource Owner (the entity who gives permission for the resource access, aka &#8220;authorization&#8221;) and the client user at the resource access time is...]]></description>
				<content:encoded><![CDATA[<p>I have been preaching this numerous time, but let me do it once more.</p>
<p>There seems to be a very common misperception that in OAuth that the Resource Owner (the entity who gives permission for the resource access, aka &#8220;authorization&#8221;) and the client user at the resource access time is the same. It is plainly wrong.</p>
<p>In OAuth, there are two distinctive phases.</p>
<ul>
<li>phase 1: Permission Phase</li>
<li>phase 2: Resource Access Phase</li>
</ul>
<p>Permission Phase gets the access token to the (OAuth) client, while in Resource Access Phase, the client uses the access token to access the resource.</p>
<p>In &#8220;phase 1: Permission Phase&#8221;, typically, the Resource Owner delivers access token to the client directly (e.g., implicit flow) or indirectly (e.g., code flow). The Resource Owner will be both at the authorization endpoint and the client&#8217;s redirection endpoint.</p>
<p>In &#8220;phase 2: Resource Access Phase&#8221;, the client accesses the protected resource using the access token. Many people seem to think that this client as &#8220;Alice&#8221; the resource owner. This is not correct. It could be anybody who controls the client. If  and only if the client is used exclusively by Alice the resource owner, then we can safely assume that the user of the client is Alice. This is generally not true, especially when the client is a web service.</p>
<p>It is better to think of OAuth as Alice to Bob information sharing, where Bob is the controller/user of the client at the Resource Access Phase. There can be cases that Alice == Bob, but that is an exception.</p>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2012/12/12/oauth-resource-owner-client-user/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Supporting IMAP etc. poor-man&#8217;s way</title>
		<link>http://nat.sakimura.org/2012/11/29/supporting-imap-etc-poor-mans-way/</link>
		<comments>http://nat.sakimura.org/2012/11/29/supporting-imap-etc-poor-mans-way/#comments</comments>
		<pubDate>Thu, 29 Nov 2012 00:07:07 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[PEOFIAMP]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=588</guid>
		<description><![CDATA[There are multiple efforts that are going on to bring the federated identity to non-web protocols. At IETF, it is done in the kitten WG and here are projects like Moonshot that deals with GSS-API etc. That is the right way to go in the long run. At the same...]]></description>
				<content:encoded><![CDATA[<p>There are multiple efforts that are going on to bring the federated identity to non-web protocols. At IETF, it is done in the kitten WG and here are projects like Moonshot that deals with GSS-API etc. That is the right way to go in the long run.</p>
<p>At the same time, there is a question on what shall we do in the interim, before GSS-API support gets ubiquitous among the different clients.</p>
<p>In PEAFIAMP project, we are trying to address it as well.</p>
<p>The basic idea is to put the access token in the password field.</p>
<p>There are other pre-requisites such as:</p>
<ol>
<li>Mapping the local user (e.g., mail user ) in the system to the federated user.</li>
<li>Federating the permission within the password length limitation.</li>
</ol>
<p>The first issue is dealt at the first time account federation (on-the-fly provisioning). The service, e.g., MAIL provider, should provide a web interface to let the user federate the accounts.</p>
<p><img class="alignnone" title="Federated Account Provisioning" src="http://www.websequencediagrams.com/cgi-bin/cdraw?lz=dGl0bGUgRmVkZXJhdGVkIEEvQyBQcm92aXNpb25pbmcgZm9yIE1haWwgc2VydmVyCgpVc2VyLT5NYWlsV2ViOiBMZXQgbWUgZgA7BwoAEgctLT5Vc2VyOiBXaGF0IGlzIHlvdXIgZW1haWwgYWRkcmVzcyBhbmQgcGFzc3dvcmQARxBtYWlsYQAhBisAGwoATRBBY2NvdW50IENob29zZXIgVUkAgQ8QABQGACEIAIENEXJlZGlyZWN0aW5nIHRvLi4uAIFYB0lkUDogdGhlIElkUApJZFAAECEAggcJaWRfdG9rZW4AggAJAIIhCk1hcACBeggAgTEHdG8AJwkvSWRQAIFOEi9DIGxpbmtpbmcgc3VjY2Vzcwo&amp;s=omegapple" alt="" width="453" height="446" /></p>
<p>Now that the email account is linked to the federated account, user can actually ask for the client specific &#8220;password (access token)&#8221;.</p>
<p>It starts with the MailWeb again. This time, the user goes to the get password page. There he inputs the name of the client that he can remember (e.g., &#8220;my iPhone&#8221;), and press the &#8220;request password&#8221; button. Since the MailWeb already knows the federated user, and thus the identity provider, it redirects the user to the identity provider with id_token as the user_hint.</p>
<p>Then, (if the user does not have the session) the user gets authenticated at the IdP, and instead of sent back to the site, the access_token is shown on the web page, which he is instructed to copy and paste to the mail user agent&#8217;s account settings.</p>
<p>The access token in this case is a pseudo-opaque string (TBD: if it can hold the IdP address, it will make it possible to use multiple identity providers) that acts as an artifact / reference to the permission list. When the mail server receives it and send it to the PAM module, the PAM module sends it to the token introspection endpoint at the IdP to get the validity and scope (read, read+send, (read+delete, read+delete+send)).</p>
<p>This scheme can also be used for other clients, such as SSH, or in the case of high performance computing platform, it may provide the PEM encoded X.509 certs as the access_token.</p>
<p>True, it is a hack. But it solves the current problems, till the proper way propagates.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2012/11/29/supporting-imap-etc-poor-mans-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Count Up API</title>
		<link>http://nat.sakimura.org/2012/11/24/count-up-api/</link>
		<comments>http://nat.sakimura.org/2012/11/24/count-up-api/#comments</comments>
		<pubDate>Sat, 24 Nov 2012 06:17:42 +0000</pubDate>
		<dc:creator>Nat</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[PEOFIAMP]]></category>

		<guid isPermaLink="false">http://nat.sakimura.org/?p=581</guid>
		<description><![CDATA[As part of the PEAFIAMP project, we are supposed to come up with a way to provide the service providers (SP, RP) to find out how many times the service was provided to the entity. Note that I used entity and not identity here. An entity may have any number...]]></description>
				<content:encoded><![CDATA[<p>As part of the PEAFIAMP project, we are supposed to come up with a way to provide the service providers (SP, RP) to find out how many times the service was provided to the entity. Note that I used entity and not identity here. An entity may have any number of identities, some of which may even be anonymous. (Here, anonymous means that the identity is valid only during the session and anyone but the OP cannot correlate the identities.)</p>
<p>Having this kind of capability aids the services to provide more aggressive special offers.</p>
<p>I had a discussion with Roland Hedberg today at the University of Umea and came up with the following:</p>
<ol>
<li>Registration Endpoint Discovery</li>
<li>Offer registration API</li>
<li>Add Count API</li>
<li>Set Count API</li>
<li>Count get API</li>
<li>Offer deletion API</li>
</ol>
<h2>1. Registration Endpoint Discovery</h2>
<p>We have to always bootstrap the process somehow: i.e., get the initial link. If the IdP provides this service, it MUST provide the following JSON at a .well-known/count_up_service. (Note: I am still debating whether I should go with JSON Schema or HAL. Here, I am using extended HAL, adding &#8220;method&#8221;and  &#8221;Authorize&#8221; to signify HTTP method and HTTP Authorize header respectively. However, it is trivial to convert it to JSON Schema. The reverse, by the way, is not true &#8211; a reason to do it in HAL for the time being.)</p>
<pre>{
  "_links":{
    "offer-registration-endpoint":{
      "href":"https://fully.qualified.url/of/offer_registration_endpoint{?offer_name,exp}",
      "method":"POST",
      "templated":true,
      "_properties":{
        "offer_name":{
          "required":true,
          "type":"String",
          "description":"User friendly name of this campaign/offer"
        },
        "exp":{
          "required":true,
          "type":"Datetime",
          "description":"Time expressed in YYYY-MM-DDTHH:MM:SSZ format."
        }
      }
    }
  }
}</pre>
<h2>2. Offer registration API</h2>
<p>One of the basic requirement of the setting up of the &#8220;offer&#8221; is to register the offer meta-data to the server and obtain the offer identifier.It can be done by HTTPS POSTing the following parameters to the offer registration endpoint.</p>
<ul>
<li>offer_name REQUIRED. String that represent a user friendly name of the offer</li>
<li>exp REQUIRED. Date and time representing the timing of the expiry of the offer. e.g., 2013-01-31T00:00:00Z</li>
</ul>
<div>It actually is fully described in the Discovery document. The request, if successful, will set up the registry that records the per core-user-identifier counts.</div>
<div></div>
<div>The successful response would return the following JSON.</div>
<pre>{
  "_links":{
    "_self"{
      "href":"https://fully.qualified.uri/of/offer_info_endpoint{?offer_id}, 
      "method":"GET",
      "Authorize":Bearer {access_token}"
    },  
    "add_count_endpoint":{
      "href":"https://fully.qualified.uri/of/single_countup_endpoint{?offer_id,id_token,n}",
      "method":"POST",
      "Authorize":"Bearer {access_token}",
      "templated":true,
      "description":"Add n the registered number for the entity that id_token maps.",
      "_properties":{
        "id_token":{"description":"id_token of the user in question."},
        "n":{
           "required":false,
           "type":"integer",
           "description":"A positive or negative integer to be added to the count of the user."
      }, 
    },
    "set_count_endpoint":{
      "href":"https://fully.qualified.uri/of/set_count_endpoint{?offer_id,n}",
      "Authorize":"Bearer {access_token}",
      "templated":true,
      "description":"Set the count for the user to n.", 
      "_properties":{
        "n":{"description":"An integer to which the count for the user is set to."}
      }
    },
    "get_count_endpoint":{
       "href":"https://fully.qualified.url/of/get_count_endpoint{?offer_id,id_token},
       "method":"GET",
       "Authorize":"Bearer {access_token}",
       "templated":true
    },
    "delete_offer_endpoint":{
       "href":"https://fully.qualified.url/of/delete_offer_endpoint{?offer_id},
       "Authorize":"Bearer {access_token}",
       "templated":true
    }
  },
  "offer_id":"string.representing.offer.id",
  "access_token":"string.representing.access.token"
}</pre>
<p>Note that this information can always obtained from the URI in &#8220;self&#8221; relation returned here. It is idempotent.</p>
<h2>3. Add count API, 4. Set Count API, 5. Count Get API</h2>
<p>These shares the same response. The will let the server to identify the user from the id_token, then applies the operation to the record in the count registry that maps to the core-identifier of the user identified by id_token. For example, in the case of Add count API, it will be like:</p>
<p>SP-&gt;Add_EP: offer_id, id_token, n<br />
Add_EP-&gt;Add_EP: Map id_token to the core user_id<br />
Add_EP-&gt;Add_EP: user_id:count+=n<br />
Add_EP-&gt;SP:n</p>
<p><img class="alignnone" title="Add Counts" src="http://www.websequencediagrams.com/cgi-bin/cdraw?lz=dGl0bGUgQWRkIENvdW50cwoKU1AtPkFkZF9FUDogb2ZmZXJfaWQsIGlkX3Rva2VuLCBuCgAYBgAcCk1hcAAXCSB0byB0aGUgY29yZSB1cwA5BQAgEQARBzpjb3VudCs9AEgKU1A6dXNlcgATCCAobikgCg&amp;s=omegapple" alt="" width="310" height="305" /></p>
<p>The requests are defined in the response of offer registration API. So, we only need to talk about the response. In every case, the pseudonymous or anonymous user_id in the id_token will be mapped to the core entity id in the count up registry and the operation is applied to the record.</p>
<p>The successful response is the following JSON.</p>
<pre>{
  "n":5, 
  "_properties":{
    "n":{"description":"The number of the count after the addition."}
  }
}</pre>
<p>An error response would be like:</p>
<pre>{
  "error_id":"invalid_token",
  "_properties":
    {
      "enum":["invalid_token","bad_request"]
    }
}</pre>
<h2>6. Delete Offer API</h2>
<p>The final API is the Delete offer API. Again, the request is completely specified in the response stated in section 2., so I will just talk about the response.</p>
<p>Successful response would return HTTP code 200 with the following JSON in the body:</p>
<pre>{
  "Status":"successfully deleted", 
  "offer_id":"offer id of the deleted offer"
}</pre>
<p>Error resonse would be:</p>
<pre>{
  "status":"no_such_offer", 
  "offer_id":"offer id of the deleted offer"
  "_properties":{
    "status":{
      "description":"signifies the status of the response.",
      "enum":["success", "no_such_offer", "bad_request", "invalid_token"]
  }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://nat.sakimura.org/2012/11/24/count-up-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
