[vz-dev] Testing Pull Request 659 / jwt - Add basic login capabilities

Andreas Goetz cpuidle at gmail.com
Sat Jan 20 13:49:52 CET 2018


Servus,

> On 20. Jan 2018, at 11:40, Frank Richter <frank.richter83 at gmail.com> wrote:
> 

> Moin Andreas,
> 
> hab ich doofe Fragen gestellt? Sollte eigentlich eine konstruktive Diskussion werden...
> 
> Viele Grüße
> Frank

Da bin ich einmal nicht so schnell :O

> On 18. Jan 2018, at 13:29, Frank Richter <frank.richter83 at gmail.com> wrote:
> 
> Hallo Andreas,
> 
> Am 18. Januar 2018 um 09:17 schrieb Andreas Goetz <cpuidle at gmail.com <mailto:cpuidle at gmail.com>>:
> Hallo Zusammen,
> 
> leider scheint sich das Thema mal wieder tot gelaufen zu haben. Von mir aus könnten wir mergen- das dürfte dann aber viele Anwender überfordern.
> 
> ich hatte am 25.12.2017 im ursprünglichen Thread noch einige Fragen formuliert, über die wir vor einem Merge vielleicht zumindest mal sprechen sollten (Kurzform: Umgang mit plain middlware requests, vzlogger in einem Setup mit Firewall, demo.vz.org <http://demo.vz.org/>, Abschaffung public/private chnannels). Leider ist die Diskussion danach in Richtung Image abgeglitten.

Dann greifen wir die Punkte doch auf:

> Am 25.12.2017 12:43 schrieb "Andreas Goetz" <cpuidle at gmail.com <mailto:cpuidle at gmail.com>>:
> Servus,
> 
> Der PR steht hier zur Verfügung: https://github.com/volkszaehler/volkszaehler.org/pull/659 <https://github.com/volkszaehler/volkszaehler.org/pull/659>
> 
> Vor Merge wär unabhängiger Test gut. Für die Installation im Image sind zwei Punkte wichtig:
> 
> 1. unbeschränkten Zugang gibts jetzt nur noch von localhost und localnet
> 2. es werden ein secretkey (salt) und user/passwort für Schreibzugriffe benötigt, ggf -secretkey im installer automatisch erzeugen
> 
> da fällt mir unsere alte Diskussion um manuelle, d.h. nicht vom Frontend abgesetzte API-Requests von extern ein. Diese funktionieren dann nicht mehr, weil man keine Möglichkeit hat, dem Request das nötige Authentifizierungs-Token mitzugeben. Das könnte ein Problem sein für alle, die ihren vz extern hosten.
> Auch vzlogger könnte Stand heute nicht zu einer externen, abgesicherten Installation loggen, oder? Außer man erlaubt POST standardmäßig, aber das macht ja die Absicherung irgendwie witzlos.

Ich sehe zwei Möglichkeiten (da würde mich auch die Meinung von Justin interessieren):

1) wir erlauben die Erstellung von long-lived Tokens und bringen vzlogger bei so einen Token als curl Header mitzuschicken. Ist trivial, hat aber einen Nachteil: kommt so ein Token abhanden kann jeder damit machen was er will. Das ließe sich noch abmildern wenn wir dem Token eingeschränkte Rechte verpassen, z.B. nur POST oder nur für einzelne Kanäle. Das Grundproblem bliebe aber- Token weg, Tür offen.

2) Man erlaubt tatsächlich POST von außen, und zwar nur auf /data:

	[	
		'path'		=> ‘/data',
		'methods'	=> 'POST',
		'action'	=> 'allow'
	],

damit lassen sich ausschließlich Daten schreiben, aber zumindest keine Löschen (m.E. auch nicht ändern, wäre zu testen). Wenn dazu noch GET verboten wird:

	[
		'methods'	=> 'GET',
		'action'	=> ‘auth'
	],

gibts auch ohne Login keine Möglichkeit mehr Daten oder Kanäle abzufragen. Das würde es mal deutlich schwieriger machen irgendwelche UUIDs rauszubekommen um dort Daten zu überschreiben.

Variante 2) lässt sich heute per Config machen. Reicht das? In jedem Fall wirds nicht schlimmer als heute da die Systeme aktuell ja komplett auf sind.

Wenn ich momentan Services ins Internet hänge stelle ich übrigens immer Traefik als Reverse Proxy davor- da lässt sich ganz einfach auch SSL und Basic Auth mit einschalten, auch das wären zusätzliche Absicherungsmöglichkeiten vor einer VZ Installation.

> 
> Letztlich bleibt dann die Frage ob es die ganze “public” Channel Mimik noch braucht oder die weggeschmissen werden sollte. Wer keinen Zugriff will kann ja einfach die Installation privat halten und hinter U//P verstecken. 
> 
> Du würdest also alle Kanäle so behandeln wie die die heutigen public channels? Wäre für mich okay, allerdings funktioniert damit demo.volkszaehler.org <http://demo.volkszaehler.org/> nicht mehr in der heutigen Form.

Das stimmt uns ist auch noch nicht implementiert. Für Demo müsste es dann einen automatisch eingeloggten `guest` user geben der im Falle von Demo eben mehr Rechte als normalerweise bekäme.

> 
> Der letzte konsequente Schritt wäre dann eine echte Userverwaltung statt Konfigurationsdatei und damit auch “Owner” von Kanälen und Sichtbarkeitssteuerung. Aber das ist noch eine ganz andere Diskssuion und bräucht ein wenig Spec bevor losgecodet wird.
> 
> Das wäre zumindest eine Lösung für o.g. Problem mit demo.
> 

Aktuell relevant ist egtl. nur der Punkt mit vzlogger. Also was tun- rein damit und per Config lösen?

@justin?

Viele Grüße, Andreas

..snip..
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20180120/d4672094/attachment.html>


More information about the volkszaehler-dev mailing list