evcc
evcc copied to clipboard
Config UI: Add authentication
Add password authentication to secure sensitive configuration data. Limited scope to one "admin" user.
- 🔐 admin password can be set via api once(!)
- 🎟️ using JWT tokens via httpOnly cookie (90d validity)
- 🔮 using bcrypt to store encrypted admin pw hash in db
addresses #6029
TODOs
- [x] login UI
- [x] pw reset via CLI ->
evcc password [set|reset]
- [x] secure all /config routes
- [x] e2e test: login, existing flow
- [x] e2e test: set password, logout
Next steps (other PRs)
- Add pw change function
Ideas for some time in the future
- Option to require auth for all evcc UI/APIs
- Support for multiple users or integration tokens
Video
https://github.com/evcc-io/evcc/assets/152287/3bb456b0-2130-4ab6-b25e-e2c9ba243347
ist das dann Zwang, oder geht es auch ohne?
Für alles, was Config-UI ist, würde ich das als "Pflicht" sehen. Das offen im Netzwerk stehen zu haben (auch im eigenen) ist keine gute Idee. Da wird ja später auch so etwas wie Scripting/Plugins drüber möglich sein.
Ah, also nur, wenn die Config betroffen ist. Nicht beim normalen Zugriff aufs UI.
admin password can be set via api once(!)
I don't think thats a good idea. First user could run any script. We should either do this during
evcc configure
or/plus add a cli command.
I don't think thats a good idea. First user could run any script. We should either do this during evcc configure
Ja, wir müssen noch über den Flow sprechen, wie das initiale Setzen des Passworts passiert. Vmtl. müssen wir das bei der Einrichtung durch die UI erzwingen. Das Passwort in die Umgebungsvariable oder evcc.yaml (via evcc configure
) zu schreiben ist keine Lösung. Unser Ziel ist es ja eine 100% via Webbrowser-Einrichtung zu ermöglichen.
Moin, da immer mehr über die UI zu konfigurieren ist wird dieses Thema immer aktueller. Da sich seit einem Monat nichts getan hat wollte ich mal vorsichtig nachfragen wie weit die Implementierung ist?
Ongoing. Mehrere Baustellen, die hier zusammenführen.
Die Rückfragen halten uns offen gesagt nur von der Arbeit ab. Wenn sich etwas tut wird es hier sichtbar...
Mandatory "Set Password" Modal (wip)
Set initial password flow.
https://github.com/evcc-io/evcc/assets/152287/ceda525e-244e-429b-856a-eca9b6d82582
Video
https://github.com/evcc-io/evcc/assets/152287/3bb456b0-2130-4ab6-b25e-e2c9ba243347
Schick, ich hab nur Kleinigkeiten.
@andig Ich hab jetzt erstmal alle UI relevanten Stellen (Passwort anlegen/aktualisieren, Login) abgeklemmt. Damit können wir diesen PR in den Master mergen. Auch die entsprechenden Tests sind erstmal geskippt. Alle Stellen sind mit einem entsprechenden TODO versehen (... once auth is released
).
Zusammen mit dem ersten echten Use-Case (https://github.com/evcc-io/evcc/pull/11739) würden wir das Feature dann komplett aktivieren.
Einzige offene Frage: jetzt rein oder kurz nach dem nächsten Release?
eine Frage, ist dieses Feature schon aktiviert da schon im Master?
Das Feature ist im Master aber aktuell noch Code-seitig auskommentiert. Wir werden es vmtl. zusammen mit dem YAML Editor aktiv schalten.