NEWS
[Gelöst] Simple-API mit Authentifizierung
-
Ich versuche, den ioBroker mit den neuen Apple-Kurzbefehlen zu steuern.
Damit ist es möglich, ein Makro direkt vom HomeScreen des iPhones auszuführen.
Dazu möchte ich die Simple-API nutzen.
Ich nutze in meiner Docker-Installation 2 Web-Instanzen, bei beiden ist das "Eingebaute Simple-API" aktiviert:
- Eine ohne Anmeldung für die interne Nutzung (Port 8083)
- Eine weitere mit Authentifikation für den externen Zugriff (Port 8082).
Das Setzen einer Variable auf der internen Instanz aus dem eigenen Netz funktioniert einwandfrei:
http://<ip>:8083/set/javascript.0.btn.AppleKurzbefehl?value=Test1</ip>
Bei der geschützten Instanz bleibe ich allerdings immer im Anmeldefenster hängen obwohl ich die Anmeldedaten wie auf https://github.com/ioBroker/ioBroker.simple-api beschrieben mitgebe:
https://<ip>:8082/set/javascript.0.btn.AppleKurzbefehl?user=<user>&pass=<pass>&value=Test2</pass></user></ip>
Wenn ich mich einmal manuell anmelde, funktioniert es auch. Kann also eigentlich kein Rechte-Problem sein.
Hat irgendwer ein Idee wo ich suchen kann?
Danke, Ralf
-
Wo genau hast du die auth eingeschaltet? Web Instanz? Das geht dann so nicht.
Web brauch einen Login.
Faktisch musst du Web ohne auth machen und dann bei simple-api Diensten mitgeben bzw bei simple api kannst du sagen als welcher User die Instanz laufen soll.
Bzw was genau willst du tun?
Hast du vor den Web Port mit auth im Internet verfügbar zu machen und so deine iobroker Installation ins Internet zu stellen? Puhhh … davon würde ich abraten.
Dann eher Datenaustausch über die Cloud. Die pro Cloud kann GET requests weiterreichen.
Gesendet vom Handy ...
-
Wo genau hast du die auth eingeschaltet? Web Instanz? Das geht dann so nicht.
Web brauch einen Login. `
Ja genau, in der Web-Instanz.Faktisch musst du Web ohne auth machen und dann bei simple-api Diensten mitgeben bzw bei simple api kannst du sagen als welcher User die Instanz laufen soll. `
Guter Ansatz, das habe ich jetzt umgesetzt:- Eigene Instanz simple-api.0 aufgesetzt
- Eigenen User eingerichtet und einer Rolle zugeordnet die nur Schreibrechte hat
- Schreibrecht für die Rolle nur auf den einen State eingerichtet
Jetzt kann ich via https://<ip>/set/javascript.0.AppleKurzbefehl?value=SimpleAPITest</ip> den State von außen ändern
Bzw was genau willst du tun?
Hast du vor den Web Port mit auth im Internet verfügbar zu machen und so deine iobroker Installation ins Internet zu stellen? Puhhh … davon würde ich abraten.
Dann eher Datenaustausch über die Cloud. Die pro Cloud kann GET requests weiterreichen. `
Ich habe den ioBroker heute bereits heute mit einem ReverseProxy und LetsEncrypt-Zertifikaten veröffentlicht. Wo liegen da die Risiken?Mit dem Cloud-Adapter im Vergleich dazu habe ich mich noch nicht beschäftigt. Ich dachte der ist nur bei Einsatz von Alexa notwendig.
Hast Du einen Einstieg wo ich mich in die Unterschiede / Vorteile einlesen kann?
Danke, Ralf
-
Ich habe den ioBroker heute bereits heute mit einem ReverseProxy und LetsEncrypt-Zertifikaten veröffentlicht. Wo liegen da die Risiken? `
Naja das Risiko ist das keiner ein Security Audit gemacht hat oder so. Du musst das Risiko also selbst abschätzen.
Mit dem Cloud-Adapter im Vergleich dazu habe ich mich noch nicht beschäftigt. Ich dachte der ist nur bei Einsatz von Alexa notwendig.
Hast Du einen Einstieg wo ich mich in die Unterschiede / Vorteile einlesen kann? `
Ein paar Infos unter: https://github.com/ioBroker/ioBroker.cloud#services
Effektiv erlaubt es die Cloud Daten zu deinem ioBroker zu pushen (also genau die "nur schreibrichtung" die Du willst). Die landen dann in einem Datenpunkt vom cloud adapter und du kannst Sie per Javascript checken und ggf dahin weiterreichen wo Sie hin müssen.
Ohne Reverse-proxy, ohne Userrechte kram und so