<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: The Tripartite Identity Pattern</title>
	<atom:link href="http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/feed/" rel="self" type="application/rss+xml" />
	<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/</link>
	<description>Cyberspace. Virtual communities. Online games. Distributed systems.   Opinion, history, advice, and silliness from two guys who&#039;ve been building this stuff for a long, long time.</description>
	<lastBuildDate>Sat, 03 Dec 2011 16:57:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: EJ</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-586</link>
		<dc:creator>EJ</dc:creator>
		<pubDate>Tue, 14 Dec 2010 10:02:16 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-586</guid>
		<description>Thanks for the detailed response :)</description>
		<content:encoded><![CDATA[<p>Thanks for the detailed response :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Randy Farmer</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-585</link>
		<dc:creator>Randy Farmer</dc:creator>
		<pubDate>Mon, 13 Dec 2010 21:38:16 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-585</guid>
		<description>EJ,

Thanks for your comment. You raise several issues - many of which have important and subtle arguments.

&quot;It’s wrong to say that spoofing is a small problem.&quot; then you say &quot;In aggregate it may be...&quot; So you understand my context. Then you go on &quot;but if you’re user being spoofed, it’s a huge problem&quot; - that is also true. Though I don&#039;t agree with &quot;it’s trivial to impersonate the writer of a post&quot;, at least I don&#039;t agree by design, if not the actual implementation. In order to explain, I&#039;ll quote from the end of your comment:

&quot;Facebook comes along two years later and encourages users to publicly identify themselves everywhere, adds a identifying information like initial network, and clamps down on users spoofing other users, and they win the war. That was the approach Yahoo! should have taken.&quot; - All I can do is strongly agree with this statement - and Yahoo! was on this path until the abandoned all efforts to unify their social graphs (YIM, Yahoo 360, etc.) - which I explained in the Quora post on this matter. Identity IS &lt;i&gt;context&lt;/i&gt;, not a string, unique or not. When Yahoo! stopped caring about building a rich persona/profile behind the user, they lost the war before it started. Note that Facebook lets you change your name &quot;trivially&quot;, but because of deep contextual connections you can tell all the &quot;John Smith&quot;s apart. Facebook names are &lt;i&gt;not&lt;/i&gt; unique.

Perhaps you didn&#039;t understand that CoreID was only a part (as described in this post) of the needed steps to build robust identity at Yahoo!, not the entire solution (it was never intended to be.) You should feel free to suggest that an incremental approach to this problem would have never worked (and has some of the problems you detail.) Again, in hindsight, I would agree - but there were no other options, except to give up before we started, I guess.

The one thing we will probably always disagree on is that the use of a users email address, instant messenger id, and 1/2 their login credentials (aka the YID) as a public identifier for user generated content is appropriate in most contexts.

The users told us this over and over. Of this I have no doubts.</description>
		<content:encoded><![CDATA[<p>EJ,</p>
<p>Thanks for your comment. You raise several issues &#8211; many of which have important and subtle arguments.</p>
<p>&#8220;It’s wrong to say that spoofing is a small problem.&#8221; then you say &#8220;In aggregate it may be&#8230;&#8221; So you understand my context. Then you go on &#8220;but if you’re user being spoofed, it’s a huge problem&#8221; &#8211; that is also true. Though I don&#8217;t agree with &#8220;it’s trivial to impersonate the writer of a post&#8221;, at least I don&#8217;t agree by design, if not the actual implementation. In order to explain, I&#8217;ll quote from the end of your comment:</p>
<p>&#8220;Facebook comes along two years later and encourages users to publicly identify themselves everywhere, adds a identifying information like initial network, and clamps down on users spoofing other users, and they win the war. That was the approach Yahoo! should have taken.&#8221; &#8211; All I can do is strongly agree with this statement &#8211; and Yahoo! was on this path until the abandoned all efforts to unify their social graphs (YIM, Yahoo 360, etc.) &#8211; which I explained in the Quora post on this matter. Identity IS <i>context</i>, not a string, unique or not. When Yahoo! stopped caring about building a rich persona/profile behind the user, they lost the war before it started. Note that Facebook lets you change your name &#8220;trivially&#8221;, but because of deep contextual connections you can tell all the &#8220;John Smith&#8221;s apart. Facebook names are <i>not</i> unique.</p>
<p>Perhaps you didn&#8217;t understand that CoreID was only a part (as described in this post) of the needed steps to build robust identity at Yahoo!, not the entire solution (it was never intended to be.) You should feel free to suggest that an incremental approach to this problem would have never worked (and has some of the problems you detail.) Again, in hindsight, I would agree &#8211; but there were no other options, except to give up before we started, I guess.</p>
<p>The one thing we will probably always disagree on is that the use of a users email address, instant messenger id, and 1/2 their login credentials (aka the YID) as a public identifier for user generated content is appropriate in most contexts.</p>
<p>The users told us this over and over. Of this I have no doubts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: EJ</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-584</link>
		<dc:creator>EJ</dc:creator>
		<pubDate>Mon, 13 Dec 2010 09:33:20 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-584</guid>
		<description>It&#039;s wrong to say that spoofing is a small problem. In aggregate it may be, but if you&#039;re user being spoofed, it&#039;s a huge problem. If you look at most of Yahoo!&#039;s blogs, it&#039;s trivial to impersonate the writer of a post because it&#039;s so easy to change one&#039;s Core ID nickname. Coloring a blogger&#039;s posts Green and the spoofer&#039;s post Red does nothing to solve the problem because the a third party will not know the pattern used for each. Only if a site (like Y! Sports) uses a special demarcation reserved for Authors can users really know who is who. And for individual users, all hope is lost if someone starts acting like someone else.

This tripartite identity model as implemented at Y! took something real (YID&#039;s) and replaced it with something easily fungible and encouraged users to change it on a whim. It encouraged replacing one handle with another that much worse. This was the absolute wrong approach. It created a world of anonymous users with no ability to prevent spoofing nor encouraged users to invest in their identity. One example was my fantasy leagues. I had gotten to know users by their YID&#039;s, and core id ruined this experience. Who a user was could change at a whim, and even playing among close friends, I often don&#039;t know who is who. A suggestion to remedy this problem was to create property specific nicknames that could not be easily changed and must be unique. This was rejected by the folks implementing this spec. 

Facebook comes along two years later and encourages users to publicly identify themselves everywhere, adds a identifying information like initial network, and clamps down on users spoofing other users, and they win the war. That was the approach Yahoo! should have taken. It&#039;s not right to blame slow adoption of this model as the reason Yahoo! failed at social.</description>
		<content:encoded><![CDATA[<p>It&#8217;s wrong to say that spoofing is a small problem. In aggregate it may be, but if you&#8217;re user being spoofed, it&#8217;s a huge problem. If you look at most of Yahoo!&#8217;s blogs, it&#8217;s trivial to impersonate the writer of a post because it&#8217;s so easy to change one&#8217;s Core ID nickname. Coloring a blogger&#8217;s posts Green and the spoofer&#8217;s post Red does nothing to solve the problem because the a third party will not know the pattern used for each. Only if a site (like Y! Sports) uses a special demarcation reserved for Authors can users really know who is who. And for individual users, all hope is lost if someone starts acting like someone else.</p>
<p>This tripartite identity model as implemented at Y! took something real (YID&#8217;s) and replaced it with something easily fungible and encouraged users to change it on a whim. It encouraged replacing one handle with another that much worse. This was the absolute wrong approach. It created a world of anonymous users with no ability to prevent spoofing nor encouraged users to invest in their identity. One example was my fantasy leagues. I had gotten to know users by their YID&#8217;s, and core id ruined this experience. Who a user was could change at a whim, and even playing among close friends, I often don&#8217;t know who is who. A suggestion to remedy this problem was to create property specific nicknames that could not be easily changed and must be unique. This was rejected by the folks implementing this spec. </p>
<p>Facebook comes along two years later and encourages users to publicly identify themselves everywhere, adds a identifying information like initial network, and clamps down on users spoofing other users, and they win the war. That was the approach Yahoo! should have taken. It&#8217;s not right to blame slow adoption of this model as the reason Yahoo! failed at social.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Orthomentor</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-266</link>
		<dc:creator>Orthomentor</dc:creator>
		<pubDate>Thu, 04 Mar 2010 21:22:21 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-266</guid>
		<description>So I can trust my identity morph to you or manage it myself, right?</description>
		<content:encoded><![CDATA[<p>So I can trust my identity morph to you or manage it myself, right?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: F. Randall Farmer</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-195</link>
		<dc:creator>F. Randall Farmer</dc:creator>
		<pubDate>Wed, 12 Nov 2008 15:01:54 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-195</guid>
		<description>Thanks Kevin! I&#039;ll try to corner Joseph when I see him later today.</description>
		<content:encoded><![CDATA[<p>Thanks Kevin! I&#8217;ll try to corner Joseph when I see him later today.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Marks</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-194</link>
		<dc:creator>Kevin Marks</dc:creator>
		<pubDate>Wed, 12 Nov 2008 00:39:10 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-194</guid>
		<description>This seems to map quite well to the account element in PortableContacs/OpenSocial/SGNodeMapper where username and userid are used for the two parts you call Login ID and Account ID, and displayName is used for what you call Public ID
&lt;a href=&quot;http://portablecontacts.net/draft-spec.html#account_element&quot; rel=&quot;nofollow&quot;&gt;http://portablecontacts.net/draft-spec.html#account_element&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>This seems to map quite well to the account element in PortableContacs/OpenSocial/SGNodeMapper where username and userid are used for the two parts you call Login ID and Account ID, and displayName is used for what you call Public ID<br />
<a href="http://portablecontacts.net/draft-spec.html#account_element" rel="nofollow">http://portablecontacts.net/draft-spec.html#account_element</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Reed</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-193</link>
		<dc:creator>Reed</dc:creator>
		<pubDate>Mon, 20 Oct 2008 13:33:45 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-193</guid>
		<description>Thanks, the changed image makes it much clearer.  I wasn&#039;t sure if you meant that there could simultaneously be more than one ID, or whether there were multiple options for what form that ID could take.
I would make the internal account ID be either completely private (so you can change it someday if needed), or give it some globally unique property (i.e. based on a URI or a GUID or whatever) (so you wouldn&#039;t have to change it).
For public APIs, you can generate a key or id from the account ID, specifically for the user to give to another application that is going to use the API.  You can generate a new key like this for each third party service, which would also allow the user to disable them selectively or set different access options for each of them. So this would be a third branch of external identifiers.</description>
		<content:encoded><![CDATA[<p>Thanks, the changed image makes it much clearer.  I wasn&#8217;t sure if you meant that there could simultaneously be more than one ID, or whether there were multiple options for what form that ID could take.<br />
I would make the internal account ID be either completely private (so you can change it someday if needed), or give it some globally unique property (i.e. based on a URI or a GUID or whatever) (so you wouldn&#8217;t have to change it).<br />
For public APIs, you can generate a key or id from the account ID, specifically for the user to give to another application that is going to use the API.  You can generate a new key like this for each third party service, which would also allow the user to disable them selectively or set different access options for each of them. So this would be a third branch of external identifiers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: F. Randall Farmer</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-192</link>
		<dc:creator>F. Randall Farmer</dc:creator>
		<pubDate>Sat, 18 Oct 2008 17:27:56 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-192</guid>
		<description>Reed&#039;s scanning error was common when I first published this model inside of Yahoo! I was in a hurry to post the article in time for an upcoming identity standards related event and used an accurate, but perhaps oversimplified,image.
This has been corrected.
Now if you only look at the picture instead of reading the text completely, you&#039;ll be able to see that the pattern supports multiple Login IDs and Public IDs.</description>
		<content:encoded><![CDATA[<p>Reed&#8217;s scanning error was common when I first published this model inside of Yahoo! I was in a hurry to post the article in time for an upcoming identity standards related event and used an accurate, but perhaps oversimplified,image.<br />
This has been corrected.<br />
Now if you only look at the picture instead of reading the text completely, you&#8217;ll be able to see that the pattern supports multiple Login IDs and Public IDs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: F. Randall Farmer</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-191</link>
		<dc:creator>F. Randall Farmer</dc:creator>
		<pubDate>Sat, 18 Oct 2008 16:16:46 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-191</guid>
		<description>Reed,
Glad you liked the post. It may be short, but folds in almost 5 years of refinement and insight.
1. I agree, as I said in the post above &lt;em&gt;&quot;Lastly, a service could provide the opportunity to attach multiple different login identifiers to a single account&quot;&lt;/em&gt; and also &lt;em&gt;&quot;A ... service... may wish to offer multiple public identifiers when a specific context requires&quot;&lt;/em&gt;
2. Actually, the Account ID is a key that can be shared for API use, hashed for URLs, etc. &lt;em&gt;as long as it has no inherent capabilities.&lt;/em&gt; Spoofing is a minor threat, and the account ID could be used to differentiate without displaying it.
For example if two folks with the public ID James (and the same photo, age, location, etc.) post to a forum, the page display logic could differentiate them as James(1) and James(2) consistently.
Of course, the community might have something to say about anyone who is trying to spoof another person.</description>
		<content:encoded><![CDATA[<p>Reed,<br />
Glad you liked the post. It may be short, but folds in almost 5 years of refinement and insight.<br />
1. I agree, as I said in the post above <em>&#8220;Lastly, a service could provide the opportunity to attach multiple different login identifiers to a single account&#8221;</em> and also <em>&#8220;A &#8230; service&#8230; may wish to offer multiple public identifiers when a specific context requires&#8221;</em><br />
2. Actually, the Account ID is a key that can be shared for API use, hashed for URLs, etc. <em>as long as it has no inherent capabilities.</em> Spoofing is a minor threat, and the account ID could be used to differentiate without displaying it.<br />
For example if two folks with the public ID James (and the same photo, age, location, etc.) post to a forum, the page display logic could differentiate them as James(1) and James(2) consistently.<br />
Of course, the community might have something to say about anyone who is trying to spoof another person.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Reed Hedges</title>
		<link>http://habitatchronicles.com/2008/10/the-tripartite-identity-pattern/comment-page-1/#comment-190</link>
		<dc:creator>Reed Hedges</dc:creator>
		<pubDate>Sat, 18 Oct 2008 11:47:05 +0000</pubDate>
		<guid isPermaLink="false">http://brass.fudco.com/wordpress/?p=68#comment-190</guid>
		<description>Hi Randy,
Two observations:
1. There could be multiple login IDs associated with an account ID, right? This would allow services or users to easily reuse external authentication services (OpenID) but not be locked in to them.  This also facilitates mergers of different services into the same user pool (due to acquisition, service redesign, etc.)
There could also be multiple public IDs, used in different contexts.
2. Should the account ID never be shown publicly? If the only publicly shown identifier is the user-controlled public ID, then it&#039;s easy for trolls etc to manipulate what others think their identity is.   (Though different communities will have different needs here and different weights for this potential problem.)</description>
		<content:encoded><![CDATA[<p>Hi Randy,<br />
Two observations:<br />
1. There could be multiple login IDs associated with an account ID, right? This would allow services or users to easily reuse external authentication services (OpenID) but not be locked in to them.  This also facilitates mergers of different services into the same user pool (due to acquisition, service redesign, etc.)<br />
There could also be multiple public IDs, used in different contexts.<br />
2. Should the account ID never be shown publicly? If the only publicly shown identifier is the user-controlled public ID, then it&#8217;s easy for trolls etc to manipulate what others think their identity is.   (Though different communities will have different needs here and different weights for this potential problem.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

