superseriousbusiness / gotosocial

Fast, fun, small ActivityPub server.
https://docs.gotosocial.org
GNU Affero General Public License v3.0
3.71k stars 319 forks source link

[feature] GoToSocial as Keyoxide service provider #858

Closed tsmethurst closed 1 month ago

tsmethurst commented 2 years ago

We should investigate what is required to allow people to validate their profiles using Keyoxide.

Keyoxide is a privacy-friendly tool to create and verify decentralized online identities.

Just like passports for real life identities, Keyoxide can be used to verify the online identity of people to make sure one is interacting with whom they are supposed to be and not imposters. Unlike real life passports, Keyoxide works with online identities or "personas", meaning these identities can be anonymous and one can have multiple separate personas to protect their privacy, both online and in real life.

See here -- https://docs.keyoxide.org/advanced/for-service-providers/

CDN18 commented 6 months ago

Keyoxide now supports unified ActivityPub verification, so GTS profiles could get verified in this way.

However, Keyoxide seems cannot federate with GTS right now, with their actor get denied by GTS due to "response username does not match input".

timestamp="09/03/2024 23:04:12.866" func=server.glob..func1.Logger.func13.1 level=ERROR latency="180.76772ms" userAgent=doipjs/1.2.9 method=GET statusCode=500 path=/users/<username> clientIP=65.108.220.97 pubKeyID=https://keyoxide.org/users/keyoxide#main-key errors="Error #01: AuthenticateFederatedRequest: error dereferencing account https://keyoxide.org/users/keyoxide: enrichAccount: error webfingering remote account keyoxide.org@keyoxide.org: fingerRemoteAccount: response username does not match input for @keyoxide.org@keyoxide.org: %!w(<nil>)\n" requestID=htp7a9ce0400115e35h0 msg="Internal Server Error: wrote 54B"

It seems that keyoxide is providing keyoxide.org as the username in the endpoint /users/keyoxide, which caused the mismatch. I've opened a post and an issue on their side.

tsmethurst commented 6 months ago

Neat, thanks for investigating :)

CDN18 commented 1 month ago

Update: The issue has been fixed on their side, released with keyoxide 5.0 and available on the main instance keyoxide.org. Maybe we can go ahead and close this issue if there aren't any more questions :)

Here's an example of my account: Keyoxide Gotosocial Verification Demo

tsmethurst commented 1 month ago

Oh cool :) Thanks for the update!