Activant OAuth en Peertube / Discourse

Documentant públicament les tasques internes #898 - OAuth binding between media.exo.cat and farga.exo.cat i #900 document OAuth binding from peertube to farga .

https://media.eXO.cat - Peertube i https://farga.eXO.cat

Des de l’implementació de farga.exo.cat l’estem fent servir com a proveïdor de SSO per serveis eXO (veure per exemple Com activo el CI en farga.eXO.cat?).

Per la Battlemesh v15 al 2023, de la qual la eXO ha sigut sponsor fiscal, vam decidir executar un projecte que teníem aparcat des fa molt de temps, que era canviar l’antic servei de vídeos per un Peertube propi.

La motivació ha sigut que les eines per executar la Battlemesh v15 eren 100% lliures, excepte el servei de streaming, que anava a ser privatiu.

Seguint la línia d’autenticar serveis nous contra https://farga.eXO.cat, abans de donar accés a l’equip de la Battlemesh ens mirem l’autenticació amb OAuth.

Autenticació OAuth amb Peertube (esborrany, documentació sobre la marxa adjustada)

En aquest moment, si no canviem res més els logs diuen:

Auth method oauth2 of plugin peertube-plugin-auth-oauth2 did not provide a valid username

Revisem a la documentació de gitea/forgejo com és la implementació específica de OAuth2 i canviem els valors de forma acorde. Entenem que a la config del plugin de Peertube required for AWS Cognito també és required for pretty much anything, així que millor activar-la directament:

image

Amb aquesta config funciona correctament:

Coses a revisar

Si es fa servir un proveïdor d’OAuth2 different a gitea/forgejo, cal revisar la documentació del proveïdor OAuth2, en particular els scopes, les URLs i el nom dels camps en l’endpoint userinfo.

El mateix aplica per qualsevol altre servei, per exemple discourse(!)

Activant OAuth a Discourse

1 'M'agrada'