Hallo zusammen,
ich möchte mein Webfront ins Netz weiterleiten via Portforwarding. Nur, gibts eine Möglichkeit das Webfront mit Passwort zu versehen damit mir nicht jeder das Licht aus und anmachen kann?
Gruß
Kai
Hi KA2013,
zum Beispiel so:
attr WEB basicAuth { "$user:$password" eq "admin:secret" }
Siehe: http://fhem.de/commandref.html#FHEMWEB (//fhem.de/commandref.html#FHEMWEB)
Gruß
Dirk
Trag ich das in die cfg ein???
Ich bin hier noch recht neu und hab da noch nicht so den wahnsinns durchblick was ich wo reinpacken muss, mit IPS wüsste ich es blind!
Daher sorry für die doofe Frage!
Hallo,
ja, in die fhem.cfg als attr unter das define WEB ....
Grüße
Hm.
Ich muss zugeben, ICH verstehe die Commandref da nicht.
Was bei mir aber geht ist der erste Teil, der da lautet:
Zitatrequest a username/password authentication for access. You have to set the basicAuth attribute to the Base64 encoded value of <user>:<password>, e.g.:
# Calculate first the encoded string with the commandline program
$ echo -n fhemuser:secret | base64
ZmhlbXVzZXI6c2VjcmV0
fhem.cfg:
attr WEB basicAuth ZmhlbXVzZXI6c2VjcmV0
Das habe ich konkret so gemacht:
MeinNutzer:Meinpasswort (nach belieben festlegen) als kompletten String inc Doppelpunkt hier eingeben:
http://www.patshaping.de/projekte/kleinkram/base64.php (//www.patshaping.de/projekte/kleinkram/base64.php)
Codieren drücken.
Das Resultat sieht dann z.b. so aus:
TnV0emVyOlBhc3N3b3J0
(natürlich kann jede andere Methode zum Base64 coding verwendet werden, war für mich das einfachste)
Das dann unter die Definition der WEBgui (heisst bei mir auch "WEBgui") als Attr eintragen:
attr WEBgui basicAuth TnV0emVyOlBhc3N3b3J0
Fertich.
Diesen Teil der command.ref:
ZitatIf the argument of basicAuth is enclosed in {}, then it will be evaluated, and the $user and $password variable
will be set to the values entered. If the return value is true, then the password will be accepted. Example:
attr WEB basicAuth { "$user:$password" eq "admin:secret" }
Hingegen verstehe ich nicht (was meint "evaluated" hier genau?) und kriege ich auch nicht zum fliegen.
ZitatHingegen verstehe ich nicht (was meint "evaluated" hier genau?) und kriege ich auch nicht zum fliegen.
Das Bedeuted, daß der Inhalt zwischen {} Perl Code ist, und von Perl interpretiert wird. Das Ergebniss was dort steht muss "Wahr" zurück geben damit man "reingelassen" wird.
Trage einfach das aus dem Beispiel ein.
attr WEB basicAuth { "$user:$password" eq "admin:secret" }
admin:secret ersetzt du durch deinen_usernamen:dein_passwort
Gruß
Dirk
ZitatTrage einfach das aus dem Beispiel ein.
attr WEB basicAuth { "$user:$password" eq "admin:secret" }
admin:secret ersetzt du durch deinen_usernamen:dein_passwort
Ja, das hab ich ja gemacht und es funktionierte nicht.
Ich habe mehrere Kominationen getestet, am Ende beides "123"... geht einfach nicht, es kommt immer die Meldung im Browser, Username oder PW sei falsch.
Die Methode mit Base64 hingegen klappte sofort.
Also für mich ist das gelöst, mich interessiert höchstens Akademisch, warum das nicht ging. Vielleicht haben andere das selbe Problem.
Bei mir tut:
define WEB FHEMWEB 8083 global
attr WEB basicAuth { "$user:$password" eq "Hallo:Leute" }
Bitte Fehlermeldungen immer konkret mit Definitionen belegen, sonst glaubt es keiner (oder anders: es kann keiner nachvollziehen).
Hmmm...
gerade das hier mal zum Anlass genommen mein FHEM abzusichern und in die fhem.cfg direkt unterhalb von
define WEB FHEMWEB 8083 global
folgendes (1:1, also Real-Text ähm Test ;) ist also in 1 Minute auf andere Werte gesetzt) eingetragen:
attr WEB basicAuth { "$user:$password" eq "12345678:12345678" }
Dann die "fhem.cfg gesavet", anschließend "shutdown restart" + <Enter> gemacht und ...
... er fragt mich nach Username und Passwort, ich gebe für beides 12345678 ein und ... Bingo ... ;)
Grüßle
Thomas
Konkret war das Problem folgendes:
define WebGUI FHEMWEB 9097 global
attr WebGUI basicAuth TnV0emVyOlBhc3N3b3J0
restart
geht.
define WebGUI FHEMWEB 9097 global
attr WebGUI basicAuth { "$user:$password" eq "123:123" }
restart
geht nicht.
"Geht nicht" heisst, dass Safari beim Aufrufen der Webseite und nach Abfrage von User und PW als Meldung zurück gibt, User oder PW sei falsch.
Ich verwende sonst ne Menge perl in der cfg und das geht auch immer.
Da es bei Anderen prinzipiell zu gehen... ah...
... moment.
Seit wann sollte das gehen? Ich verwende noch 5.2...
habe da auch mal ne frage zu, geht das nur mit der standard adresse für fhem?
define WEB FHEMWEB 8083 global
attr WEB basicAuth { "$user:$password" eq "123:123" }
ich würde das gerne für den tablet und smartphone port nutzen. trage ich den attr befehl unterhalb vom tablet bzw. smartphone define in der fhem.cfg ein, ist alles nach einem "Save Config" weg :(
define WEBphone FHEMWEB 8084 global
attr WEB basicAuth { "$user:$password" eq "123:123" }
define WEBtablet FHEMWEB 8085 global
attr WEB basicAuth { "$user:$password" eq "123:123" }
der global wert ist an meiner fritzbox gar nicht freigeschaltet. ich habe das nur fürs smartphone und tablet gemacht, weil ich nur mit dem smartphone, eventuell tablet von unterwegs auf FHEM zugreife.
NACHTRAG:für jeden der so doof ist wie ich, die formatierung für tablet und phone sollte so aussehen:
Zitatdefine WEBphone FHEMWEB 8084 global
attr WEBphone basicAuth { "$user:$password" eq "123:123" }
define WEBtablet FHEMWEB 8085 global
attr WEBtablet basicAuth { "$user:$password" eq "123:123" }
hi,
wenn Du das für die anderen ports einstellen willst, musst beim setzen des Attributs auch den anderen port benennen. Du hast das nu 3x für WEB gemacht, aber noch gar nicht für WEBtablet und WEBphone:
attr WEBphone basicAuth { "$user:$password" eq "123:123" }
attr WEBtablet basicAuth { "$user:$password" eq "123:123" }
Wenn Du aus dem internet drauf zugreifst - per VPN?!
Gruß, Uli
danke für die schnelle antwort UliM.
eine frage habe ich noch, ist es möglich das ganze komplett ohne benutzname zu machen und nur mit passwort?
ich habe folgende formatierung probiert:
Zitatattr WEBphone basicAuth { "$password" eq "123" }
damit erreiche ich aber nur, dass der benutzername auf standard "admin" steht, nicht aber das nur das passwort einzugeben ist.
auf dem smartphone mag er für die dyndns seite die zugangsdaten nicht speichern und dann ist das etwas nervig immer gleich beides einzugeben.
Hab da mal eine andere Frage dazu:
kann man die passwortabfrage so einstellen, dass ich nur von extern das Passwort eingeben muss, sprich wenn ich in meinem eigenen Netz bin, wird das Passwort nicht abgefragt.
Danke!
Indem man zwei FHEMWEB Instanzen definiert, mit unterschidlichen Attributen.
Danke Rudi, hat geklappt
die lösung mit den zwei Instanzen ist wesentlich besser als mein wunsch ohne benutzername.
danke für die Idee und den Vorschlag :D
hallo.
leider kann man keine sonderzeichen verwenden. oder übersehe ich etwas?
@ z.b.
Hallo
das ist ein alter Thread, aber habe das alte problem:
2018.10.18 15:17:21.772 4 : Connection accepted from WEB8084PW_127.0.0.1_54890
2018.10.18 15:17:28.911 3 : Login denied by allowed_WEB8084 for admin via WEB8084PW_127.0.0.1_54890
2018.10.18 15:17:07.472 5: Loading ./FHEM/96_allowed.pm
2018.10.18 15:17:07.474 5: Cmd: >attr allowed_WEB8084 basicAuth attr WEB basicAuth { "$user:$password" eq "admin:admin" }<
2018.10.18 15:17:07.475 5: Cmd: >attr allowed_WEB8084 room 00_00test99,Fhem<
2018.10.18 15:17:07.475 5: Cmd: >attr allowed_WEB8084 validFor WEB8084PW<
2018.10.18 15:17:07.475 5: Cmd: >attr allowed_WEB8084 verbose 5<
Password abfrage kommt, aber es wird abgelehnt.
Was könnte ich falsch machen?
Danke
Thomas
Habe nun nochmal nur mit dem token gemacht, da geht es. ok das mit user und passwort so nicht denke ich