Externe Seite - URL mit Basic Authentifizierung

Hallo liebe Gemeinde :smiley:

wie kann man am besten eine externe URL in Symcon hinterlegen wo eine Authentifizierung notwendig ist.
In meinen Beispiel eine UVR16x2 mit CMI, dort kann man die Authentifizierung nicht abstellen.
die Form (http://User:Password@IP) ist erstens Sicherheitstechnisch mehr als unschön und wir auch nicht mehr von aktuellen Browsern unterstützt.

Vielen Dank schonmal vorab
Grüße Andreas

Das geht meines Wissens nach leider nicht. Eben genau das wollen die Browser-Hersteller unterbinden und somit gibt es auch keine echten Workarounds. Du kannst natürlich mit Kanonen auf Spatzen schießen und die Authentifizierung über einen ReverseProxy komplett aushebeln… :wink:

paresy

Was willst Du genau machen, eine URL aus IP-Symcon aufrufen und dabei ein User und Passwort übergeben aber ohne diese in der URL direkt mitzusenden?

Wenn Du user und password übergeben willt mit Basic Auth kannst Du das mit Curl machen mit den Parametern


curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$password");

Ansonsten müstet Du noch mal näher beschreiben was Du genau machen willst.

Steht da doch…
Er will die Seite im WebFront einbinden als ‚Externe Website‘.
Das braucht kein Script und nix.
Problem ist halt das Browser die Zugangsdaten in einer URL blocken.
Michael

Wenn es nur eine einzige Seite ist (ohne Bilder und so) kann man die Seite natürlich einlesen und z.B. als WebHook wieder einbinden.

paresy

So ganz verstanden habe ich das eben nicht, daher habe ich nochmals nachgefragt, den direkt vom Webfront schreibt er ja nix, nur externe URL in Symcon hinterlegen, das kann man ja interpretieren wie man will.

Ich vermute auch es geht um das WebFront. Ich habe es mal somit in den WebFront Bereich verschoben.

paresy

Danke für die Rege Diskussion, bin beeindruckt :slight_smile:

Ja, es geht um die Einbindung ins Webfront, sorry - hätt ich sagen können. Mit ReverseProxy hab ich auch schon überlegt, aber wie geschrieben ja recht aufwändig.
Kennwort im Browser hinterlegen geht wohl auch nicht da ich den Fully Kiosk Browser auf Android Tablets verwenden möchte und dort kein Kennwort gespeichert werden kann, zumindest soweit ich das sehe.

Vielen Dank
Andreas

Hallo zusammen,

hab eine Lösung für mich gefunden, nun doch mit Reverseproxy auf Basis nginx als Docker Container auf meiner Synology DS.

Quelle:Reverseproxy URL Basic Authentication

war somit eigentlich gar nicht so schwer, wenn man weiß wie es geht :smiley:

Öffne somit http://IP-Synology:81/schema.html -> ReverseProxy -> http://IP-CMI:80/schema.html
Meine nginx config im Falle CMI:
Standard User:Password der C.M.I. „user:user“ als Base64 im Code!

#
# reverse proxy with authentication
#

# CMI - UVR16x2
server {
  listen 81;
  listen [::]:81;

  root /var/www/html;
  index index.html index.htm;
  server_name <hostname>;

  location / {
      proxy_pass http://IP-CMI:80;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Authorization "Basic dXNlcjp1c2Vy";
  }
  access_log /var/log/nginx/access_81.log;
  error_log /var/log/nginx/error_81.log;
}

Nutze das gleiche prinzip dann gleich noch für meinen Stromzähler meines Energieversorgers :cool:

Viele Grüße
Andreas