Matrix Authentication Service setup
Este directorio contiene la configuración base para desplegar Matrix Authentication Service (MAS) junto al stack de Synapse/Element. MAS es el componente necesario para poder delegar el inicio de sesión al flujo OIDC moderno y activar el acceso mediante código QR (MSC4108) desde Element móvil.
Estructura
mas/
├── config.example.yaml # Plantilla de configuración
├── config.yaml # (generado) Config en uso por el contenedor
├── keys/ # Claves de firma de OIDC (no se versionan)
├── scripts/bootstrap.sh # Script para generar secretos/clave y copiar la config
└── secrets/ # Secretos usados tanto por MAS como por Synapse
Los archivos dentro de keys/ y secrets/ están ignorados en git para evitar
exponer credenciales. El script scripts/bootstrap.sh genera la estructura
mínima necesaria y solo debe ejecutarse una vez (puedes volver a lanzarlo si
algún archivo falta).
Pasos rápidos
-
Copia la plantilla de configuración y genera secretos/clave privada:
cd mas ./scripts/bootstrap.shEsto crea:
config.yaml(copiado desdeconfig.example.yaml).secrets/encryption.key: clave hex de 32 bytes para cifrado interno.secrets/shared_secret.txt: token compartido con Synapse (MAS API).keys/mas_signing.key: clave RSA 2048 bits para firmar tokens OIDC.
-
Edita
config.yamly ajusta:http.public_base: dominio público donde expondrás MAS (ej.https://auth-af2f3d.organic-machine.com/).matrix.homeserver: nombre del servidor Matrix si cambia.- El string de conexión a Postgres si usas credenciales distintas.
-
Copia el contenido de
secrets/shared_secret.txty pégalo ensynapse_data/homeserver.yamldentro dematrix_authentication_service.secret(agregado en este PR). -
Publica MAS detrás de tu reverse-proxy/Coolify redirigiendo
/_matrix/client/*/(login|logout|refresh)hacia el puerto del servicio.
Consulta la guía en la raíz (README.md) para reiniciar los contenedores con
docker compose. Una vez que Synapse y MAS estén en marcha verás el flag
org.matrix.msc4108: true al consultar
https://matrix-af2f3d.organic-machine.com/_matrix/client/versions y Element
mostrará el inicio de sesión por QR.
Reverse proxy / Coolify
- Publica MAS en un subdominio (p.ej.
auth-af2f3d.organic-machine.com) que apunte al puerto8083definido endocker-compose.yml. - Copia las rutas de compatibilidad:
Ajusta la IP/puerto si usas otra red interna o si el reverse proxy corre en otro host. En Coolify puedes crear una regla HTTP adicional que apunte al contenedor
location ~ ^/_matrix/client/(.*)/(login|logout|refresh) { proxy_pass http://10.10.10.7:8080; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; }mas. - Expón el endpoint de rendezvous en
https://auth.../_matrix/client/unstable/org.matrix.msc4108/rendezvouspara que el valor coincida conmsc4108_delegation_endpointensynapse_data/homeserver.yaml.