homelab-docker-compose/matrix/docs/user-management.md
2026-03-05 12:49:03 +00:00

127 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# User & Token Verwaltung
Registrierung ist nicht offen neue User können nur über Einladungstokens beitreten.
## Access Token holen
Für alle Admin-API-Aufrufe wird ein Access Token benötigt.
Nach dem Login mit dem Admin-Account:
```bash
curl -X POST 'http://localhost:8008/_matrix/client/v3/login' \
-H 'Content-Type: application/json' \
-d '{
"type": "m.login.password",
"user": "admin",
"password": "DEINPASSWORT"
}'
```
Den `access_token` aus der Antwort für alle weiteren Befehle verwenden.
---
## Einladungstokens
### Token erstellen (Einmalnutzung)
```bash
curl -X POST 'http://localhost:8008/_synapse/admin/v1/registration_tokens/new' \
-H 'Authorization: Bearer DEIN_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"uses_allowed": 1}'
```
### Token mit Ablaufdatum erstellen
```bash
curl -X POST 'http://localhost:8008/_synapse/admin/v1/registration_tokens/new' \
-H 'Authorization: Bearer DEIN_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"uses_allowed": 1,
"expiry_time": 1800000
}'
```
> `expiry_time` ist ein Unix-Timestamp in Millisekunden.
### Alle aktiven Tokens anzeigen
```bash
curl 'http://localhost:8008/_synapse/admin/v1/registration_tokens' \
-H 'Authorization: Bearer DEIN_ACCESS_TOKEN'
```
### Token löschen
```bash
curl -X DELETE \
'http://localhost:8008/_synapse/admin/v1/registration_tokens/TOKEN_HIER' \
-H 'Authorization: Bearer DEIN_ACCESS_TOKEN'
```
### Einladungslink an Freund schicken
```
https://matrix.theocloud.dev/#/register?token=TOKEN_AUS_DEM_ERSTELL-BEFEHL
```
Der Freund öffnet den Link in einem Matrix-Client (z.B. Element Web) und kann sich damit registrieren.
---
## User direkt per CLI anlegen
Ohne Einladungstoken direkt über den Container (braucht `registration_shared_secret` in `.env`):
```bash
docker exec -it synapse register_new_matrix_user \
-u BENUTZERNAME \
-p INITIALPASSWORT \
http://localhost:8008
```
Mit Admin-Rechten:
```bash
docker exec -it synapse register_new_matrix_user \
-u BENUTZERNAME \
-p INITIALPASSWORT \
--admin \
http://localhost:8008
```
---
## User über Admin-API verwalten
### User anlegen oder Passwort setzen
```bash
curl -X PUT \
'http://localhost:8008/_synapse/admin/v2/users/@BENUTZERNAME:matrix.theocloud.dev' \
-H 'Authorization: Bearer DEIN_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"password": "NEUESPASSWORT",
"admin": false
}'
```
### User deaktivieren
```bash
curl -X POST \
'http://localhost:8008/_synapse/admin/v1/deactivate/@BENUTZERNAME:matrix.theocloud.dev' \
-H 'Authorization: Bearer DEIN_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"erase": false}'
```
### Alle User auflisten
```bash
curl 'http://localhost:8008/_synapse/admin/v2/users?from=0&limit=100' \
-H 'Authorization: Bearer DEIN_ACCESS_TOKEN'
```