@nokitakaze webfinger для случая, когда надо получить этот URL из простого username@domain. И, строго говоря, он не является официально частью ActivityPub. И мастодон нарушает спецификацию в этой части — он считает username@domain главным идентификатором пользователя, а должен считать как раз URL, который указан в поле id в объекте актора (и который возвращает webfinger). У меня эта часть правильно реализована, могу даже сделать изменяемые юзернеймы, но пока не делал.
@nokitakaze если что, спецификация вот
https://www.w3.org/TR/activitypub/