обновлённый webfinger

почти пять лет назад я писал о том, как добавить для своего почтового адреса поддержку WebFinger. С тех пор он довольно сильно изменился. Во-первых, опубликовали официальную RFC7033 WebFinger. Во-вторых, переключились с XML на модный JSON. В-третьих, начали использовать в нескольких ещё менее известных системах

впрочем, суть его осталась та же, и добавить поддержку WebFinger всё так же просто: достаточно отдавать небольшой JSON-файлик по адресу https://example.com/.well-known/webfinger?resource=acct:email@example.com. Чуть сложности добавляет только то, что сам емейл теперь — параметр в адресе (и некоторые клиенты вопреки стандартам не экранируют в нём спецсимволы).

nginx:

include mime.types;
types { application/jrd+json jrd; }

location = /.well-known/webfinger {
    if ($arg_resource = 'acct%3Aemail%40example.com') {
        rewrite .* /.well-known/email@example.com.jrd break;
    }
}

email@example.com.jrd:

{
  "subject": "acct:email@example.com",
  "aliases": ["https://example.com/"],
  "links": [
    {
      "rel": "http://webfinger.net/rel/avatar",
      "href": "https://example.com/favicon.svg"
    },
    {
      "rel": "http://webfinger.net/rel/profile-page",
      "href": "https://example.com/"
    }
  ]
}

здесь для примера приведены только два типа ссылок, можно использовать и все остальные существующие значения rel

Артемий Трегубенко,

comments powered by Disqus