Matrix Authentication Service

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen

Achtung: diese Info-Seite erfordert einen Hostmaster mit Zugriff auf die Apache-Domain-Konfigurationsdatei, mit leichter Abänderung sollte die .htaccess allerdings genauso funktionieren.

MAS beginnt die alte Authentifizierung direkt über Synapse zu ersetzen. Schon heute fällt es langsam auf, wenn der Dienst fehlt – beispielsweise weil ElementX diesen für SSO benötigt oder weil sonst der Login via QR-Code nicht unterstützt wird.

Offizielle Dokumentation

Die offizielle Dokumentation befindet sich unter element-hq.github.io/matrix-authentication-service.

Vorbereitung im Userspace

Verzeichnisstruktur (Vorschlag)

├── bin
│   ├── mas
│   └── mas-cli -> /home/pacs/xyz00/users/mas/bin/mas/mas-cli # optional
├── doms
│   └── auth.matrix.domain.de
├── etc
│   └── config.yaml
├── readme.md
├── scripts
│   └── update.sh
└── var
    └── log

Updatescript

Dieses Script ist auch schon zur Vorbereitung nützlich. Es basiert auf og. Wiki und holt sich die neueste Release und entpackt diese in bin/.

ARCH=x86_64
OS=linux
VERSION=latest

# URL to the right archive
URL="https://github.com/element-hq/matrix-authentication-service/releases/${VERSION}/download/mas-cli-${ARCH}-${OS}.tar.gz"

curl -sL "$URL" | tar xzC $HOME/bin/mas
ln -s $HOME/bin/mas/mas-cli $HOME/bin/ # optional

systemctl restart --user mas.service

Config

In Sachen Konfiguration, können wir einfach den offiziellen Anweisung des Projekts folgen. Einzig die default Ports, können bei Hostsharing so nicht genutzt werden. Als Beispiel für den http web-listener könnte sich 32802 anbieten, sofern dieser frei ist.

Systemd

[Unit]
Description=Matrix Authentication Service
After=network-online.target
After=postgresql.target

[Service]
Type=simple
WorkingDirectory=%h/bin/mas
ExecStart=%h/bin/mas/mas-cli server -c %h/etc/config.yaml

[Install]
WantedBy=default.target
# wenn alles bereit:
systemctl enable --now --user mas
# dies aktiviert den dienst für starten nach reboot und startet den dienst sofort (now)

QR Code Support in Synapse

Leicht zu übersehen ist ein zu aktivierendes MSC in Synapse um QR-Code Login zu unterstützen:

experimental_features:
    msc4108_enabled: true

Achtung! Zum testen muss Keystorage für den User aktiv sein!

Apache

Außerhalb der .htaccess (Hostmaster, FIXME)

# Wichtig, da sonst dieser Endpoint nicht funktioniert, und es zu verwirrenden Fehlern kommt.
SetEnvIf request_Uri "/_synapse/client/rendezvous" no-gzip
# FIXME: retry in .htaccess
ProxyPassMatch   "^/(_matrix/client/[^/]+/(login|logout|refresh).*)" "http://127.0.0.1:32802/$1"
ProxyPassReverse   "^/(_matrix/client/[^/]+/(login|logout|refresh).*)" "http://127.0.0.1:32802/$1"

.htaccess

DirectoryIndex disabled
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* http://localhost:32802%{REQUEST_URI} [NE,proxy]
RequestHeader set X-Forwarded-Proto "https"