포스트가 Mastodon으로 연동(federate)되지 않는 방법을 모르겠습니다. 액터(actors)를 팔로우는 건 잘 되는데, Discourse가 포스트를 전달하려고 할 때 로그에 이런 에러가 발생합니다:
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/a93549c3c7883784eda700f30de0c96b failed to deliver to https://mstdn.party/users/staff/inbox --- !ruby/hash:ActiveSupport::HashWithIn
[Discourse Activity Pub] POST request to https://mastodon.neat.computer/users/jonah/inbox failed: Expected([200, 201, 202]) <=> Actual(401 Unauthorized)
[Discourse Activity Pub] https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce failed to deliver to https://mastodon.neat.computer/users/jonah/inbox --- !ruby/hash:ActiveSupport:
[Discourse Activity Pub] POST request to https://mstdn.party/users/staff/inbox failed: Expected([200, 201, 202]) <=> Actual(401 Unauthorized)
설정에서 Activity pub require signed requests를 비활성화하고 로깅을 활성화했으며, 그 외 설정은 모두 기본값 그대로입니다. 해당 Mastodon 인스턴스는 Cloudflare 뒤에 있지만, Cloudflare가 요청을 차단하는 것은 아니며, mastodon-web 서비스 로그를 보면 Mastodon 자체에서 401 코드를 반환하고 있는 것을 확인할 수 있습니다(다만, 그 이유를 확인하기 위해 Mastodon 로그의 상세 수준을 높이는 방법은 모르겠습니다).
이런 일이 발생하는 이유가 있을까요?
수정: Mastodon이 HTTP 서명을 싫어하는 것 같습니다. 다만 이 인스턴스는 Authorized Fetch가 활성화되어 있지 않습니다:
Mar 08 16:47:07 neat-mastodon bundle[3119591]: D, [2025-03-08T16:47:07.963455 #3119591] DEBUG -- : [e6b2bc50-09e1-464e-a937-4c43ef32bd99] Signature verification failed: Request not signed
Mar 08 16:47:07 neat-mastodon bundle[3119591]: I, [2025-03-08T16:47:07.964520 #3119591] INFO -- : [e6b2bc50-09e1-464e-a937-4c43ef32bd99] method=POST path=/users/jonah/inbox format=html controller=ActivityPub::InboxesController action=create status=401 allocations=1256 duration=9.15 view=0.69 db=1.86
수정 2: 제 Discourse 사용자의 인박스(inbox)에 접근할 수 없는 것 같습니다: https://verify.funfedi.dev/?actor_uri=jonah%40discuss.privacyguides.net
"Resolving acct:jonah@discuss.privacyguides.net using webfinger",
"Resolved to https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce",
"Running verification for alice",
"Got inbox None", [...]
그룹 액터의 경우엔 예상대로 잘 작동합니다: https://verify.funfedi.dev/?actor_uri=articles%40discuss.privacyguides.net ![]()
수정 3: https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce에 대한 GET 요청의 경우
{
"id": "https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce",
"type": "Person",
"updated": "2025-03-08T06:34:19Z",
"url": "https://discuss.privacyguides.net/u/jonah",
"name": "Jonah Aragon",
"inbox": null,
"outbox": null,
"sharedInbox": "https://discuss.privacyguides.net/ap/users/inbox",
"followers": "https://discuss.privacyguides.net/ap/actor/227cc2ddaa4ded69c2a58214031da3ce/followers",
"preferredUsername": "jonah",
"icon": {
"type": "Image",
"mediaType": "image/png",
"url": "https://forum-cdn.privacyguides.net/user_avatar/discuss.privacyguides.net/jonah/96/8151_2.png"
},
"@context": "https://www.w3.org/ns/activitystreams"
}
