Helge's blog

by helge@mymath.rocks

Powered by longhorn, an ActivityPub Client based blog. This means an existing Fediverse account is used to federate blog entries. The entire thing is based on bovine and the corresponding ActivityPub server.

Atom Feed


Identity in the FediVerse

I rant about Identity in the FediVerse. It’s mostly written, so I have a text to test various things. Also I’m building a blog, where texts like this belong. The blog is going to be an ActivityPub Client. While building this, I realized that I need to implement 2 to 1 below, and it annoys me.

The identity objects

There at least 4 identifiers used for various things in the Fediverse

  1. The fediverse handle, e.g. @helge@mymath.rocks
  2. The actor id e.g. https://mymath.rocks/endpoints/SYn3cl_N4HAPfPHgo2x37XunLEmhV9LnxCggcYwyec0
  3. The public key id e.g. https://mymath.rocks/endpoints/SYn3cl_N4HAPfPHgo2x37XunLEmhV9LnxCggcYwyec0#serverKey
  4. The actual public key e.g.
-----END PUBLIC KEY-----

One can translate from various things to various others. In most cases, 2 and 3 are basically the same. 2 and 3 imply knowledge of 4. Nobody with 4 can look up anything, without effort.

If you have 1, you can use webfinger gymnastics, essentially

GET https://mymath.rocks/.well-known/webfinger?resource=acct:helge@mymath.rocks

to get 2. If you have 2, you can fetch the actor and obtain the preferredUsername. Then you can compute the domain from the actor url, e.g. urlparse(actor["id"]).netloc in python, and combined these two with an @ to get 1.

You can reply to this post using your favorite FediVerse Application. For this look up the object
in it and just reply. Depending on how your FediVerse Application handles Articles, this post may appear different.