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
License
This project is licensed under the Apache License 2.0.