[gelöst] Benutzer Berechtigungen in FHEM/Frontend

Begonnen von ChristianA, 10 Februar 2021, 20:32:44

Vorheriges Thema - Nächstes Thema

ChristianA

Hallo,

gibt es irgendeine Funktion oder Ansatz, eine unterschiedliche Berechtigung für Benutzer zu realisieren?

z. B. Raumbedienfunktion nur für eigene Räume. Leseberechtigung für globale Funktionen.

Kann man sowas realisieren? Der Zugriff auf FHEM müsste grundsätzlich für keinen normalen Benutzer freigegeben sein.
Es würde evtl. ausreichen den Zugriff auf das Frontend mit einer Anmeldung zu versehen?

Oder ist das eigentlich nicht vorgesehen?

Schöne Grüße
Christian

Icinger

Mehrere WEB's definieren und mit "allowed" spielen :)
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

rudolfkoenig

Muesste theoretisch auch mit einer FHEMWEB Instanz und mehreren alloweds funktionieren.

ChristianA

Da scheitere ich an der Systematik  :-[

Wenn ich einen neuen allowed definiere, dann übernimmt er die Einstellung sofort und ich habe mich bis auf das Gerät abgeschossen.

define allowed_user allowed
attr allowed_user basicAuth user password
attr allowed_user validFor WEB
attr allowedDevices GERAET_USER


Nachdem ich das allowedDevices angelegt habe, habe ich nur noch darauf Zugriff. Obwohl ich mit dem User angemeldet bin, der keine Beschränkungen hat.




rudolfkoenig

In der Voreinstellung werden die Einschraenkungen (allowedDevices, allowedCommands) "aufaddiert", das ist aus Kompatibilitaetsgruenden so.

Wenn man das Aufaddieren nicht moechte (was bei unterschiedlichen Zugangsdaten natuerlich ist), dann muss man fuer jede allowed Instanz  "allowedIfAuthenticatedByMe 1" setzen.
Die aktuelle Voreinstellung sollte vmtl. geaendert werden.

rudolfkoenig

Die allowedIfAuthenticatedByMe Voreinstellung wird ab dem naechsten FHEM Release (6.1)  1 sein.

ChristianA

Danke, für eure Hilfe, so funktionierts! ::)

define user_xyz allowed
attr user_xyz allowedCommands set,get
attr user_xyz allowedDevices DEVICE
attr user_xyz allowedIfAuthenticatedByMe 1
attr user_xyz basicAuth user passwort
attr user_xyz validFor WEB


Das allowedIfAuthenticatedByMe 1 muss man bei allen alloweds machen, damit die Berechtigung nicht auf alle übergeht.

Damit keine Änderungen an der Konfiguration durchgeführt werden können allowedCommands set,get.

Mit allowedDevices die Geräte festlegen die freigegeben sind.

Schönen Abend
Christian



rudolfkoenig

Achtung Kopierer:
- "attr user_xyz basicAuth user passwort" geht so einfach nicht, siehe commandref.
- statt dieses Attribut direkt zu setzen empfehle ich "set user_xyz basicAuth user passwort", was zwar im Endefffekt auch nur das basicAuth Attribut setzt, aber der Inhalt kann ohne Weiteres veroeffentlicht werden, da es ein SHA Hash von Salt+Benutzername+Passwort ist.