WebFinger

{{short description|Protocol for the discovery of information about people and things identified by a URI}}

File:WebFinger Logo.svg

WebFinger is a protocol specified by the Internet Engineering Task Force IETF in RFC 7033 that allows for discovery of information about people and things identified by a URI.{{cite web

| url = http://tools.ietf.org/html/rfc7033

| title = RFC 7033: WebFinger

| first1 = Paul E. | last1 = Jones | first2 = Gonzalo | last2 = Salgueiro | first3 = Michael B. | last3 = Jones

| first4 = Joseph | last4 = Smarr |date=September 2013

}} Information about a person might be discovered via an acct: URI, for example, which is a URI that looks like an email address.

WebFinger is specified as the discovery protocol for OpenID Connect,{{Cite web |title=Final: OpenID Connect Discovery 1.0 incorporating errata set 1 |url=https://openid.net/specs/openid-connect-discovery-1_0.html |access-date=2022-12-19 |website=openid.net}} which is a protocol that allows one to more easily log in to various sites on the Internet.{{Cite web |date=2011-08-01 |title=OpenID Connect {{!}} OpenID |url=https://openid.net/connect/ |access-date=2022-12-19 |language=en-US}}

The WebFinger protocol is used by federated software, such as GNU social,{{cn|date=March 2023}} Diaspora,{{Cite web |last=Clemens |date=2011-09-17 |title=How Diaspora Connects Users |url=http://www.sarahmei.com/blog/2011/09/17/how-diaspora-connects-users/ |access-date=2022-12-19 |website=Sarah Mei |language=en-US}} or Mastodon,{{Cite web |title=WebFinger - Mastodon documentation |url=https://docs.joinmastodon.org/spec/webfinger/ |access-date=2022-12-19 |website=docs.joinmastodon.org |language=en-us}} to discover users on federated nodes and pods, as well as the remoteStorage protocol.[https://datatracker.ietf.org/doc/draft-dejong-remotestorage/ remoteStorage protocol draft at the IETF website.]

As a historical note, the name "WebFinger" is derived from the old ARPANET Finger protocol, but it is a very different protocol designed for HTTP.[http://hueniverse.com/2009/08/20/introducing-webfinger/ Introducing WebFinger]

The protocol payload is represented in JSON format.

Example

= Basic example with profile page and business card =

File:WebFinger example.svg

Client request:

GET /.well-known/webfinger?resource=acct%3Abob%40example.com HTTP/1.1

Host: example.com

Server response:

{

"subject": "acct:bob@example.com",

"aliases": [

"https://www.example.com/~bob/"

],

"properties": {

"http://example.com/ns/role": "employee"

},

"links": [

{

"rel": "http://webfinger.example/rel/profile-page",

"href": "https://www.example.com/~bob/"

},

{

"rel": "http://webfinger.example/rel/businesscard",

"href": "https://www.example.com/~bob/bob.vcf"

}

]

}

= Usage on Mastodon =

On Mastodon, any federated servers can look up users by sending a request to the WebFinger endpoint on other servers. Here is an example for the user@Mastodon@mastodon.social:

Client request:

GET /.well-known/webfinger?resource=acct%3AMastodon%40mastodon.social HTTP/1.1

Host: mastodon.social

Server response:

{

"subject": "acct:Mastodon@mastodon.social",

"aliases": [

"https://mastodon.social/@Mastodon",

"https://mastodon.social/users/Mastodon"

],

"links": [

{

"rel": "http://webfinger.net/rel/profile-page",

"type": "text/html",

"href": "https://mastodon.social/@Mastodon"

},

{

"rel": "self",

"type": "application/activity+json",

"href": "https://mastodon.social/users/Mastodon"

},

{

"rel": "http://ostatus.org/schema/1.0/subscribe",

"template": "https://mastodon.social/authorize_interaction?uri={uri}"

}

]

}

See also

References