Matrix Authentication Service
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), für die Domain des Synapse homeservers(!).
# 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 für MAS:
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"