FEP-2c59: Discovery of a Webfinger address from an ActivityPub actor

I know in the Fediverse we often use “Webfinger ID” to refer to the user@domain form, but strictly the spec is about looking up metadata for any URI that can be bound to a domain, so I don’t think its good terminology here.

I think several people (including myself) have at different times suggested using xrd:Alias for this - as I suggested then, and still suggest now:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "xrd": "http://docs.oasis-open.org/ns/xri/xrd-1.0#",
      "aliases": {
        "@id": "xrd:Alias",
        "@type": "@id",
        "@container": "@list"
      },
    }
  ],
  "id": "https://social.example.com/user/bob",
  "aliases": ["acct:bob@example.com"]
}

(this continues the long tradition of RDF syntaxes stealing directly from their XML cousins)

and the producing implementation would sort aliases in order of preference - so, basically, if you’re looking for the user@domain form of a user, you look for the first acct: URI in user

There are some nice advantages to this:

  • It diectly equates the WebFinger XRD/JRD values with the value in the AS2 representation
  • It indicates that its directly semantically equivalent to a property already used as part of these lookups anyway
  • It prepares us for any future extensions - as other people have proposed, DID based schemes and similar (we might hit the semantic confusion issue caused by DID ill-advisedly reusing as:alsoKnownAs here; but that’s a problem for another time…)

Defining a dedicated “webfinger” field for this purpose seems strictly less capable.

3 Likes