This project provides a minimal subset of the WebFinger specification geared specifically towards allowing for Mastodon lookups of a username based on a Domino server's host name and directory.

Usage

Install the plugin on your server in your preferred way, such as via an NSF Update Site.

Once it's installed, add several fields to the Person document of any user you would like to make available to this service:

  • WebFingerEnable should be the text value “1” if the user should be included in WebFinger lookups at all
  • WebFingerAliases is an optional multi-value text field of URLs to include in the aliases property of the response, such as a blog URL
  • WebFingerProfile should be the main social profile page for the user, such as “https://some.mastodon/@myuser”
  • WebFingerMastodon should be the text value “1” if the below Mastodon fields should be used to generate Mastodon/ActivityPub links
  • MastodonUsername should be the base user name of the user on their Mastodon host, such as “myuser”
  • MastodonHost should be the host name or base URL of the Mastodon instance, such as “some.mastodon” or “https://some.mastodon”. When no procol is specified, “https” is assumed

When configured, the user is accessible via a URL like “https://some.domino/.well-known/webfinger?resource=acct:myuser@some.domino”. This will emit a payload like:

{
  "subject": "acct:myuser@some.domino",
  "aliases": [
    "https://some.blog"
  ],
  "links": [
    {
      "rel": "http://webfinger.net/rel/profile-page",
      "href": "https://some.mastodon/@myuser"
    },
    {
      "rel": "self",
      "href": "https://some.mastodon/users/myuser",
      "type": "application/activity+json"
    },
    {
      "template": "https://some.mastodon/authorize_interaction?uri={uri}",
      "rel": "http://ostatus.org/schema/1.0/subscribe"
    }
  ]
}

PGP Keys

Additionally, you can specify a PGP key in your user document and have it included in your WebFinger profile. To do that, specify these items:

  • pgpPublicKey should contain the full PGP public key, including the “BEGIN” and “END” lines
  • pgpFingerprint can optionally contain the shorthand fingerprint of your key
  • pgpAlgorithm can optionally contain the algorithm used for your key
  • WebFingerPGP should be set to “1” to include the entry in your profile

Additionally, when a PGP key is present, the key will be available at a URL like “https://some.domino/.webfinger-pgp-key/myuser@some.domino”.

Extensibility

The output of the profile JSON can be extended by registering an IBM-Commons-compatible extension class implementing org.openntf.webfinger.ext.WebFingerContributor. These contributor classes can request additional items to read from the directory and then append values to the result JSON to be emitted to the client.

Requirements

  • Domino 14 or above

License

This project is licensed under the Apache License 2.0.