user admin
This commit is contained in:
@@ -39,6 +39,14 @@ podcasts=D:\Podcasts
|
||||
|
||||
[playback-agents]
|
||||
7b4776ef27104e8eb9f7ea2c622ce76ca23de4260b0f94e6880d321017b32a0e4=true
|
||||
|
||||
[authentication]
|
||||
local-networks=127.0.0.0/8;::1/128;10.0.0.0/8;172.16.0.0/12;192.168.0.0/16
|
||||
trusted-proxies=127.0.0.0/8;::1/128
|
||||
session-seconds=43200
|
||||
|
||||
[users]
|
||||
hans=$argon2id$v=19$m=19456,t=2,p=1$...
|
||||
```
|
||||
|
||||
Start dat bestand met `racket main.rkt --config rkt-web-player.ini`. Iedere key
|
||||
@@ -46,6 +54,24 @@ onder `[libraries]` is de zichtbare bibliotheeknaam; de waarde is de lokale of
|
||||
UNC-rootmap. Het oudere `[library] paths=D:\Muziek;D:\Podcasts` blijft eveneens
|
||||
ondersteund.
|
||||
|
||||
Zodra `[users]` minstens één gebruiker bevat, toont de webinterface voor
|
||||
niet-lokale clients een eigen loginvenster. Wachtwoorden staan uitsluitend als
|
||||
Argon2id-hash in de INI. Maak zo'n hash vanuit Racket:
|
||||
|
||||
```racket
|
||||
#lang racket/base
|
||||
|
||||
(require rkt-web-player/users)
|
||||
|
||||
(displayln (make-password-hash "een lang en uniek wachtwoord"))
|
||||
```
|
||||
|
||||
`local-networks` bepaalt welke clients zonder login mogen werken.
|
||||
`trusted-proxies` bepaalt uitsluitend van welke directe peers de laatste
|
||||
`X-Forwarded-For`-waarde wordt geaccepteerd. Laat die lijst zo klein mogelijk;
|
||||
bij Apache op dezelfde machine zijn loopbackadressen voldoende. Zonder
|
||||
gebruikers is authenticatie uitgeschakeld en blijft het oude gedrag behouden.
|
||||
|
||||
## Werking
|
||||
|
||||
De interface volgt de informatiearchitectuur van `rktplayer`, maar is
|
||||
@@ -68,8 +94,16 @@ drag-and-drop verplaatst. De tabs zijn in deze versie alleen in het geheugen
|
||||
aanwezig en worden niet na een herstart hersteld.
|
||||
|
||||
De server luistert standaard alleen op localhost. Geef alleen bewust een
|
||||
LAN-adres aan `--listen-ip`; de webinterface bevat nog geen
|
||||
gebruikersauthenticatie.
|
||||
LAN-adres aan `--listen-ip`. Configureer gebruikersauthenticatie voordat de
|
||||
webinterface via een publiek bereikbare reverse proxy wordt aangeboden.
|
||||
|
||||
Externe gebruikers krijgen na succesvolle aanmelding een willekeurige 256-bit
|
||||
sessiecookie met `Secure`, `HttpOnly` en `SameSite=Strict`. Sessies verlopen na
|
||||
de ingestelde inactiviteitsduur en worden niet over een serverherstart heen
|
||||
bewaard. Na vijf mislukte pogingen vanaf hetzelfde clientadres wordt aanmelden
|
||||
vijf minuten geblokkeerd. De `/api/agent/*`-routes gebruiken geen
|
||||
gebruikerssessie: daarvoor blijft de afzonderlijke playback-agent-allowlist
|
||||
gelden.
|
||||
|
||||
## Windows playback agent
|
||||
|
||||
@@ -132,6 +166,6 @@ geen TLS heeft.
|
||||
## Controleren
|
||||
|
||||
```console
|
||||
raco test private/library.rkt private/player.rkt
|
||||
raco test private/users.rkt private/library.rkt private/player.rkt
|
||||
raco setup --check-pkg-deps rkt-web-player
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user