I actually can’t believe this works but …

I figured out how to use my own domain as a Dreamwidth account via OpenID, in a way that should work for any static site! I initially thought it wouldn’t be possible without installing some incredibly complex OpenID server on the VPS, but then I realised you can delegate authentication to somewhere else just by setting a couple of lines in <head> on the index page. The only problem is that DW is about the only site left that cares about OpenID so it’s very hard to find a server, especially one with frictionless open registration. DW itself has an OpenID server, but I was pretty sure I wouldn’t be able to use DW to ouroborally log into itself via OpenID, haha. Then I remembered … LiveJournal.

I set up an LJ account with the username leggation (silly vaguely Rise of the Ronin-themed low-effort wordplay) using a burner email address, then I added these two lines to the <head> in index.html:

<link rel="openid.server" href="https://www.livejournal.com/openid/server.bml">
<link rel="openid.delegate" href="https://leggation.livejournal.com">

Then I attempted to log into DW via OpenID, fully expecting it not to work, but amazingly, it did. I left a comment on someone’s journal (URL not shared to protect the innocent) and it displays tre.praze.net as the username and links to my site, aw yeahhh.

OpenID accounts can’t post journal entries, but they do seem to be able to do pretty much everything else. I’m still playing around with this, but here’s what I’ve discovered so far:

  • I can join communities but not post to them.
  • I do get the standard free account quota of 15 icons, and I can receive notifications (including to email) and track posts like any account.
  • There is no easy way to link to the profile page; the link above with the user ID needs to be used. Taking the &t=I off the end stops it working, oddly.
  • I can be granted access to other journals, and can also grant other accounts access to my journal even though it doesn’t exist, which is weird.
  • I can’t buy anything in the shop; other accounts can’t buy anyting on my behalf either.
  • The <user> tag doesn’t work for linking to my profile, but the option for external sites under “Linking” on the profile page works, i.e. <span style="white-space: nowrap;"><a href="https://www.dreamwidth.org/profile?userid=4225212&amp;t=I"><img src="https://www.dreamwidth.org/img/silk/identity/openid.png” alt="[identity profile] “ width="16” height="16” style="vertical-align: text-bottom; border: 0; padding-right: 1px;" /></a><a href="https://tre.praze.net/" rel="nofollow"><b>tre.praze.net</b></a></span>, resulting in tre.praze.net. It’s a bit misleading because the main link goes to my site instead of to the DW profile (seeing as my site effectively takes the role of the journal page), so I would maybe go for <span style="white-space:nowrap;"><a href="https://www.dreamwidth.org/profile?userid=4225212&amp;t=I"><img src="https://www.dreamwidth.org/img/silk/identity/openid.png” alt="Dreamwidth OpenID account” width="16” height="16" style="vertical-align:text-bottom;border:0;padding-right:1px;"><b>tre.praze.net</b></a></span> as a way of ensuring anyone who follows the link stays on DW.
  • Edit: turns out I can use the <user> tag in the form of the incredibly intuitive <user name="ext_2615312">, a different number from the profile “user ID” shrug emoji

Comments

You can comment on this post if you like. Comments will be posted below after moderation.