<?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>jalf.dk &#187; facebook</title>
	<atom:link href="http://jalf.dk/blog/tag/facebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://jalf.dk/blog</link>
	<description>Musings and thoughts on programming and other geeky stuff</description>
	<lastBuildDate>Sun, 25 Mar 2012 09:51:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dear games industry. Grow up</title>
		<link>http://jalf.dk/blog/2012/01/dear-games-industry-grow-up/</link>
		<comments>http://jalf.dk/blog/2012/01/dear-games-industry-grow-up/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 15:42:18 +0000</pubDate>
		<dc:creator>jalf</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Meanwhile]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[games-industry]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://jalf.dk/blog/?p=912</guid>
		<description><![CDATA[Sony Sony Again Nintendo Epic CodeMasters Bethesda BioWare Square Enix Sega BioWare EA 2011 was the year of the games industry, as a whole, getting hacked. Dear games industry; huge international publishers and development studios: are you seriously going to tell me you didn’t see this coming? For the last several years, the games industry [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.wired.com/gamelife/2011/04/playstation-network-hacked/">Sony</a></li>
<li><a href="http://www.joystiq.com/2011/05/02/sony-hit-with-second-attack-loses-12-700-credit-card-nu/">Sony Again</a></li>
<li><a href="http://arstechnica.com/security/news/2011/06/lulz-security-takes-on-nintendo-fbi-sony-fbi-fights-back.ars">Nintendo</a></li>
<li><a href="http://www.bluesnews.com/s/122640/epic-hacked">Epic</a></li>
<li><a href="http://www.engadget.com/2011/06/13/codemasters-website-hacked-tens-of-thousands-of-personal-acco/">CodeMasters</a></li>
<li><a href="http://arstechnica.com/gaming/news/2011/06/hacker-group-lulzsec-demands-hats-threatens-release-of-brink-user-data.ars">Bethesda</a></li>
<li><a href="http://arstechnica.com/gaming/news/2011/06/bioware-hacked-data-taken-from-decades-old-neverwinter-forum.ars">BioWare</a></li>
<li><a href="http://www.computerandvideogames.com/301202/anonymous-accused-of-hacking-eidos-deus-ex-websites/">Square Enix</a></li>
<li><a href="http://www.computerandvideogames.com/307915/news/madness-continues-sega-hacked-personal-data-stolen/">Sega</a></li>
<li><a href="http://www.rockpapershotgun.com/2011/06/24/bioware-hacked/">BioWare</a></li>
<li><a href="http://www.rockpapershotgun.com/2011/06/26/lulzsec-over-release-battlefield-heroes-data/">EA</a></li>
</ul>

<p>2011 was the year of the games industry, <em>as a whole</em>, getting hacked.</p>

<p>Dear games industry; huge international publishers and development studios: are you seriously going to tell me you didn’t see this coming?</p>

<p>For the last several years, the games industry has been been infested by a plague of account systems. EVERY company wanted their customers to sign up for THEIR unique account, marketplace, community and download central, preferably with separate accounts for each. And then another account for support requests, of course. And the more of these accounts can be associated with credit card information, the better. And of course, in true games industry fashion, as much as possible should be developed in-house.</p>

<p>Every games company wants me to create a unique account <em>just for them</em>. Every games company wants my password. And apparently, nearly as many let their security be handled by Joe the Intern who does their website on weekends.</p>

<p>It’s absurd. And not just because you are getting hacked en masse, and your users have their sensitive information leaked to hackers courtesy of you and your incompetence and your stubborn insistence on acquiring sensitive information that you have no need of, no business storing, and are not qualified to handle and safeguard.</p>

<p>It is also absurd because, even when you are not being hacked, it is infuriating your users. I don’t want to have to invest in your imaginary currency (which can only be bought in bulk, in quantities conveniently designed to force you to spend more money up front than the price of the item you wanted to buy), in order to purchase DLC for my games. I don’t want to have to remember 47 different account usernames and passwords. I don’t want to have to remember which email address I signed up with two years ago on the company you bought 6 months ago and whose account database you have now integrated into yours.</p>

<p>I don’t want to have to guess whether I am supposed to log in with my Bioware account or my EA account when unlocking stuff for my Bioware game  (published by EA).
I don’t want to have to log in to both Steam and GfWL to play a game. I don’t want to have to log in to Rockstar Games Social Club. Sega, was it <em>worth</em> it to make me sign up for a Sega Pass? Did you get enough value out of yet another username in your database to justify my password now being in the hands of hackers?</p>

<p>All of you, do you really <em>need</em> me to sign up for anything <em>at all</em>? Or is this just your vanity and your 20-year-old habit of prompting users to “please fill in your registration card while you wait for the installer”, updated to the internet era for no reason whatsoever?</p>

<p>The rest of the world has, by and large, learned a couple of important lessons over the last years:</p>

<ul>
<li>online security is hard, and</li>
<li>users have plenty of accounts everywhere already, and they don’t want to have to sign up for <em>your</em> exclusive site any more than they want to sign up for the 400 other sites they visited recently.</li>
</ul>

<p>Thus, quite a lot of serious websites now “outsource” the account security business to those who are qualified to handle it. We have Facebook Connect, relying on the assumption that Facebook, a site with 400 million users, and a <em>very</em> tempting target for hackers, is able to deal securely with authentication, and we have OpenID, relying on the assumption that users themselves will use a provider that they trust among the countless different ones available.</p>

<p>What these have in common is that they allow you, the company hosting a website and an online service, to provide all the benefits of a personal user account to your users, but without you ever <em>seeing</em> a password, and without you being able to lose quite as much sensitive data <em>when</em> you get hacked. It also provides the convenience benefit of allowing the user (without <em>forcing</em> the user to do so) to reuse the same user ID across multiple sites, and it even offers the potential for exchanging (with the users’ consent, of course) information <em>between</em> different game companies.</p>

<p>And you know what? Steam is an OpenID provider. You could implement OpenID-based authentication, and people would be able to log in with their Steam ID (or their GMail account, or any of the dozens of other OpenID providers, of course), and <em>you wouldn’t have to worry about protecting their passwords</em>.</p>

<p>You could, practically in your lunch break, write a login system which allows GMail users, Steam users and Facebook users to log in using their credentials from <em>those</em> services, handled securely by <em>those</em> services, where you get all the benefit of juicy direct and “exclusive” access to the user, without the headaches of “how do we store the users’ username and password, and without hassling the user with “please come up with a username and password for <em>yet another</em> site.</p>

<p>So, dear games industry. I’m sure that pretty much anyone who has played a game over the last decade has already had his username, password, pet name, address and credit card info leaked by now, thanks to you.</p>

<p>But how about putting a stop to it from now on? How about leaving security to the companies that actually invest in it, and who make it their business? How about, along the way, getting rid of the current account <em>hell</em> where every user has to, for every game, every development studio and every publisher, remember a unique combination of URL (where your “service” is hosted <em>this month</em>, after the latest relaunch, the latest merger or the latest “let’s just start over because our previous system sucked”), and username, password and email address to log in to said URL?</p>

<p>How about making your jobs easier, while also treating your customers better and giving less information away to hackers?</p>

<p>How about growing up and catching up?</p>

<p>A common sentiment when these hacks really exploded this past summer was “these hackers need to be stopped”, but that’s missing the point. They’re only showing how absolutely trivial it is to hack a huge number of websites. Arresting them, torturing them for a few years at Gitmo or condemning them to the deepest pit of Hell doesn’t matter, because your websites are still vulnerable, and in a world of 7 billion people, <em>someone</em> is going to try to exploit it.</p>

<p>Yes, the hackers need to be held accountable, but <em>so do you</em>. <em>You</em> are the ones who chose to start hoarding user information, and <em>you</em> are the ones who didn’t even care enough about your users to do so securely. You are the ones who betrayed your users. You are the ones who failed to live up to the responsibility you wouldn’t even have <em>had</em> if you’d stuck to your actual business: making games, rather than collecting usernames and passwords.</p>

<p>Grow up. Start storing only the data you actually need, and make sure that what you <em>do</em> store is kept absolutely goddamn secure. If you ever even <em>see</em> my password, encrypted, hashed and salted or otherwise, <em>you are doing it wrong</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jalf.dk/blog/2012/01/dear-games-industry-grow-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Privacy: Or why I don’t trust Google with my personal information</title>
		<link>http://jalf.dk/blog/2010/02/privacy-or-why-i-dont-trust-google-with-my-personal-information/</link>
		<comments>http://jalf.dk/blog/2010/02/privacy-or-why-i-dont-trust-google-with-my-personal-information/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 01:50:14 +0000</pubDate>
		<dc:creator>jalf</dc:creator>
				<category><![CDATA[Meanwhile]]></category>
		<category><![CDATA[buzz]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://jalf.dk/blog/?p=506</guid>
		<description><![CDATA[So Google launched their Twitter/MySpace/Facebook killer, Buzz, and apparently subscribed every GMail user to it without asking anyone for permission. The result is that a lot of people now have sensitive personal information floating around in public. An example of this (found via ArsTechnica) is this woman, who starts her post like this: I use [...]]]></description>
			<content:encoded><![CDATA[<p>So Google launched their Twitter/MySpace/Facebook killer, Buzz, and apparently subscribed every GMail user to it without asking anyone for permission.</p>

<p>The result is that a lot of people now have sensitive personal information floating around in public.<span id="more-506"></span> An example of this (found via <a href="http://arstechnica.com/tech-policy/news/2010/02/a-frustrated-user-lashes-out.ars">ArsTechnica</a>) is <a href="http://fugitivus.wordpress.com/2010/02/11/fuck-you-google/">this woman</a>, who starts her post like this:</p>

<blockquote>
  <p>I use my private Gmail account to email my boyfriend and my mother.</p>
  
  <p>There’s a BIG drop-off between them and my other “most frequent” contacts.</p>
  
  <p>You know who my third most frequent contact is?</p>
  
  <p>My abusive ex-husband.</p>
  
  <p>Which is why it’s SO EXCITING, Google, that you AUTOMATICALLY allowed all my most frequent contacts access to my Reader, including all the comments I’ve made on Reader items, usually shared with my boyfriend, who I had NO REASON to hide my current location or workplace from, and never did.</p>
</blockquote>

<p>Ouch.</p>

<p>Others, with less at stake personally, are <a href="http://news.cnet.com/8301-31322_3-10451428-256.html">also pissed</a>:</p>

<blockquote>
  <p>See, I love the idea of neat new tech innovations that lead to streamlined communication, real-time updating, in-line video and photo posting, and supersimple friend and contact integration. I do not, however, like a product that bursts through my door like a tornado and opts me in to wanton in-box clutter and spam (or, more precisely, bacn) publicly reveals my personal contact list without asking me, threatens to broadcast my e-mail address anytime someone wants to @ me in a Buzz, and even appears to grab photos off my Android phone that I’ve never uploaded.</p>
</blockquote>

<p>or <a href="http://ventspace.wordpress.com/2010/02/10/i-have-google-buzz-now-apparently/">this one</a></p>

<blockquote>
  <p>So…yeah, I guess I’m on Google Buzz. It’s linked to my Picasa and WordPress accounts, so you can follow everything I do. Cause that’s not creepy or anything. The best part is that the defaults for everything are public, and you end up broadcasting to a bunch of random people unless you sit down and sort through. I’m expecting this to backfire for a bunch of people, and not just eventually but almost immediately. It might not be a bad idea to start a betting pool on when the first child porn charges are filed as some highschool student accidentally sends herself to the entire school.</p>
</blockquote>

<p>I could go on, but I really don’t want this to turn into some kind of link farm.</p>

<p>I’m not personally affected by this. I do have a GMail account, and yes, they opted me in to Buzz, but the account contains no personal information whatsoever, and no personal emails. I use it exclusively as a dumping ground for spam,  and form mails I don’t want cluttering up my <em>real</em> email inbox. I’ve never even sent an email from the account.</p>

<p>I use the Google search engine, but I am not signed in to it, and have never created a profile or a customized homepage on it. I’m sure they could still identify me just by examining cookies or my IP address, but at least they’d have to work for it. And it’s not like my Google searches are state secrets anyway. As long as people are not able to search for my name and bring up a list of everything I’ve searched for, I’m satisfied.</p>

<p>I also use Google Analytics for this blog. I feel OK about that because this blog is already my public face on the internet. Google already knows a lot about it simply by indexing it for their search engine. I have no problem with them generating statistics on where my visitors come from, as long as they make the information available to me too. The only sensitive information associated with this blog is my login password, and I’m pretty sure Google doesn’t have that. And they’re not getting it, even if they launched a GPassword service tomorrow.</p>

<p>I use the WordPress software, but not hosted on WordPress.com. I don’t use Picasa or Google Reader. I don’t use Google Documents.</p>

<p>So all in all, yes, Google certainly knows a lot of fragments of information about me. Google searches can turn up quite a bit, they can collect a few more bits and pieces through cookies when I use their search engine, and they have a lot of statistics on who reads my blog. But they can’t read my emails. They don’t have any really sensitive information about me. Nothing related to my work, personal life or studies is tied to Google.</p>

<p>And this brings us to the point of this post:</p>

<h1>Don’t blame Buzz, blame GMail</h1>

<p>A lot of people are furious at Google for the mixture of incompetence and indifference towards users’ privacy with which Buzz was launched, and while that might be justified, it is missing a fundamental point.</p>

<p>Buzz is just doing what Google does best, what they’ve always done, and what they <em>should</em> be doing. Here’s what Google’s own <a href="http://www.google.com/corporate/">website</a> has to say on the company’s mission:</p>

<blockquote>
  <p>Google’s mission: to organize the world’s information and make it universally accessible and useful</p>
</blockquote>

<p>Google is dedicated to making information <em>universally accessible</em>. For a lot of information, that’s a good thing. Their search engine turned the internet upside down — for the first time ever, users were able to actually <em>find</em> the information they needed. Google is good at this, and we’ve benefited hugely from it.</p>

<p>And social networking is right up Google’s alley as well: Social networking is all about making information about you and me accessible to the world in an organized manner. A lot of Facebook’s popularity relies on their ability to analyze our existing relations, friendships and networks, and use this to suggest new friends. My Twitter would be useless if I couldn’t follow the people I wanted to keep up with, and if others couldn’t find my tweets through searches. Buzz is simply more of the same, and there is nothing wrong with that. It’s another social networking service, and Google is <em>exactly</em> the right company to do something like this. No one is better at organizing information and telling us exactly what we want to know.</p>

<p>The problem is that another of their services is not so well suited for the company. Email is something almost everyone considers personal and private. Even the US government, in its desperate war on people who wear turbans, speak funny and pray to Allah, has only given itself permission to sniff the subject lines of people’s mails sent over GMail. This is considered the equivalent of reading the envelope, without opening it and looking at the letter inside. Because that letter is personal. And so are the bodies of our emails.</p>

<p>But if we consider our emails to be sensitive personal information, then <em>why do so many people entrust them to a company whose stated mission is “to make the world’s information universally accessible”</em>?</p>

<p>A company like that should <em>never</em> be entrusted with our sensitive information.</p>

<p>Facebook has made some major blunders regarding privacy, but their mission seems to be something like “can’t we just all get along”. In Facebook’s perfect world, everyone are friends with everyone else. This doesn’t excuse their privacy issues, but at least it tells us that they’re not directly opposed to the idea of privacy. They’re just clumsy and don’t think things through.</p>

<p>Google, however, is different. In the perfect Google world, <strong>privacy does not exist</strong>. In Google’s dream world, I could go take a look at Bill Gates’ emails or Steve Jobs’ search history. or Bono’s shopping list. It is information. It should be made available to the world.</p>

<p>So no, there’s nothing wrong with Google Buzz. It should absolutely broadcast everything Google knows about us to the world. The problem is that Google has been given sensitive information <em>in the first place</em>. Google shouldn’t know anything about us that can’t safely be published through Buzz. If GMail had never existed, Google would not know that the woman in the first example has received emails from her abusive ex-husband, and so they couldn’t have caused her any problems. The only things Buzz would have known about us would be what we told it.</p>

<p>Imagine if Twitter or Facebook had been built by Google, based on their search engine and their ability to categorize and organize information. That is what Buzz could potentially become, and that’d be nothing short of amazing. At least as long as we all take care to keep our emails and other sensitive information <em>far</em> away from Google.</p>

<p>Don’t opt out of Buzz because of privacy concerns. Opt out of GMail instead. Expect every new service Google launches to do as Buzz. Their mission is to make all information available to the world, and they’re going to keep trying. You’re fighting a losing battle. You can keep opting out of their services till the cows come home. It’s always a temporary solution at best. Instead, fix the root issue: Make sure Google is not given any sensitive information about you in the first place.</p>
]]></content:encoded>
			<wfw:commentRss>http://jalf.dk/blog/2010/02/privacy-or-why-i-dont-trust-google-with-my-personal-information/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OpenID 2.0 and HTTP redirects</title>
		<link>http://jalf.dk/blog/2009/12/openid-2-0-and-http-redirects/</link>
		<comments>http://jalf.dk/blog/2009/12/openid-2-0-and-http-redirects/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 23:48:36 +0000</pubDate>
		<dc:creator>jalf</dc:creator>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false">http://jalf.dk/blog/?p=417</guid>
		<description><![CDATA[Ever since I signed up on StackOverflow.com roughly a year ago, I’ve had an OpenID. On the whole, I think it’s a great concept, and I wish more sites would allow me to sign in with it. However, a few things have been bothering me about it. When I first signed up, I did a [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since I signed up on <a href="http://stackoverflow.com/">StackOverflow.com</a> roughly a year ago, I’ve had an OpenID. On the whole, I think it’s a great concept, and I wish more sites would allow me to sign in with it.</p>

<p>However, a few things have been bothering me about it.<span id="more-417"></span></p>

<p>When I first signed up, I did a bit of research, and found out that you can use your own domain as your OpenID. You simply enter the following in a <code>&lt;head&gt;</code> of a HTML page you control:</p>

<pre><code>&lt;link rel="openid.server" href="http://myopenidprovider" /&gt;
&lt;link rel="openid.delegate" href="http://myopenid-at-that-provider/" /&gt;
</code></pre>

<p>And the URI of that HTML page can now be used as your OpenID. It will forward authentication requests to the specified provider. This gave me a nice clean URI to use as my OpenID, and as a bonus, it meant that I could change my OpenID provider and keep my ID, just by editing this HTML.</p>

<p>Of course, I quickly found out there was a downside as well. When I created this blog, I placed it in <code>http://jalf.dk/blog</code>. I figured I could easily add a redirect from <code>http://jalf.dk</code> and so it wouldn’t matter in the long run.</p>

<p>When I tried adding this redirect, I realized that this of course would also redirect any OpenID requests. My OpenID provider would then see a login attempt from <code>http://jalf.dk/blog</code> instead, and all hell would break loose.</p>

<p>So I removed the redirect, and instead placed this message in <code>http://jalf.dk/</code> along with the OpenID <code>&lt;link&gt;</code> tags:</p>

<blockquote>
  <p>Please go <a href="http://jalf.dk/blog/">here</a> for my blog. Sorry for the lack of a proper redirect.</p>
</blockquote>

<p>Not very elegant, but it worked. OpenID requests were handled correctly, and readers of my blog could follow the link, or just bookmark <code>/blog</code> in the first place.</p>

<p>Today, a friend asked me why I didn’t have a redirect, and I explained the above problem. I didn’t think about it any further until half an hour ago, when I realized that Facebook can be tied to an OpenID account. As I said before, the more services I can log in to with my OpenID, the better, so I attempted to add my OpenID… And got a nasty error message telling me that my OpenID only supported version 1.1, and Facebook required 2.0.</p>

<p>Geez, I hadn’t even realized there were multiple versions.</p>

<p>So I went hunting for a solution. And it turned out to be pretty simple, and have the nice side effect of solving the redirection problem as well!</p>

<p>It turns out that the <code>&lt;link&gt;</code> tags embedded in HTML only work for OpenID 1.0 and 1.1. For 2.0, you have to provide a YADIS XML file when a request is sent with the MIME-type <code>application/xrds+xml</code>.</p>

<p>Unfortunately, there seems to be very few examples online of what this file should <em>look like</em>.
I did find a nice example of using a YADIS file for OpenID 1.0 <a href="http://blog.paulisageek.com/2009/06/easy-openid-delegation-with-yadis.html">here</a>, which got me started. The Wikipedia article on <a href="http://en.wikipedia.org/wiki/Yadis">YADIS</a> held another example, but again only with OpenID 1.0. However, it also shows how to specify LID 2.0, so while I have no clue what LID is for, at least it gave a hint of how to support multiple versions.</p>

<p>Finally, diving into the <a href="http://openid.net/specs/openid-authentication-2_0.html">specification for OpenID 2.0</a>, I discovered the correct URI to specify as <code>&lt;Type&gt;</code> in the YADIS file: <code>http://specs.openid.net/auth/2.0</code>. Of course they just <em>had</em> to change the URI format between versions 1.1 and 2.0. Nothing is ever that easy.</p>

<p>But with this, the last piece fell into place. I created an <code>openid.xml</code> file looking like this:</p>

<pre><code>< ?xml version="1.0" encoding="UTF-8"?>
&lt;xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"
xmlns:openid="http://openid.net/xmlns/1.0"&gt;
  &lt;XRD&gt;
    &lt;Service priority="50"&gt;
      &lt;Type&gt;http://specs.openid.net/auth/2.0/signon&lt;/Type&gt;
      &lt;URI&gt;http://myopenidprovider&lt;/URI&gt;
      &lt;openid:Delegate&gt;http://myopenid-at-that-provider/&lt;/openid:Delegate&gt;
    &lt;/Service&gt;
    &lt;Service priority="20"&gt;
      &lt;Type&gt;http://openid.net/signon/1.1&lt;/Type&gt;
      &lt;URI&gt;http://myopenidprovider&lt;/URI&gt;
      &lt;openid:Delegate&gt;http://myopenid-at-that-provider/&lt;/openid:Delegate&gt;
    &lt;/Service&gt;
    &lt;Service priority="10"&gt;
      &lt;Type&gt;http://openid.net/signon/1.0&lt;/Type&gt;
      &lt;URI&gt;http://myopenidprovider&lt;/URI&gt;
      &lt;openid:Delegate&gt;http://myopenid-at-that-provider/&lt;/openid:Delegate&gt;
    &lt;/Service&gt;
  &lt;/XRD&gt;
&lt;/xrds:XRDS&gt;
</code></pre>

<p>and using the PHP snippet from <a href="http://blog.paulisageek.com/2009/06/easy-openid-delegation-with-yadis.html">paulisageek</a>, which, if the content-type <code>application/xrds+xml</code> is detected, returns the contents of the <code>YADIS</code> file (and for any other content-type, simply forwards to <code>/blog</code>).</p>

<pre><code>< ?php
if (strpos($_SERVER['HTTP_ACCEPT'], "application/xrds+xml") !== FALSE) {
  header("Content-Type: application/xrds+xml");
  echo file_get_contents("openid.xml");
}
else {
  header("Location: http://jalf.dk/blog");
}
?>
</code></pre>

<p>I now have:</p>

<ul>
<li>The same nice, short, easy-to-remember OpenID URI I always had</li>
<li>My blog accessible form <code>http://jalf.dk</code></li>
<li>My Facebook account linked to my OpenID</li>
<li>Support for OpenID version 2.0</li>
</ul>

<p>All in all, I’m happy. And now that I’ve documented the process, perhaps the next person who runs into this problem may be a bit happier too.</p>
]]></content:encoded>
			<wfw:commentRss>http://jalf.dk/blog/2009/12/openid-2-0-and-http-redirects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

