API Calls aus einer Webanwendung

patsche

New Member
Dec 28, 2020
5
0
1
34
Hallo zusammen,

ich bin aktuell dabei API Calls aus meiner VueJS Webanwendung zu machen. Das Problem ist das ich aufgrund der CORS Poilcy geblockt werde. Der Proxmox Webserver auf dem die GUI läuft muss mir einen Parameter mitsenden. Weiß einer von euch wo die config Files liegen? Oder kann dieser seitens Proxmox hinzugefügt werden?

Es fehlt der Access-Control-Allow-Origin Header. Da ich den API Call von einer anderen Domain aus absende, als der auf der der Proxmoxserver läuft, werden die Anfragen geblockt. Daher müsste dieser als Wildcard in der Webserver Config gesetzt werden.

Auch den OPTIONS Request nimmt der Webserver der GUI/API nicht an.

vielen Dank schonmal im voraus :)
 
du solltest mit deiner vuejs app einfach API requests machen können (sofern die nicht auf firewall/netzwerk ebene geblockt werden). deine app muss sich halt einloggen (oder ein API token hinterlegt haben) und kann nicht ein bestehendes cookie von der PVE web GUI recyclen.
 
hi,
hier sind mal zwei Screenshots aus den Entwicklertools. Da die CORS Kopfzeile im Antwortheader fehlt bekomme ich die Meldung. Das ganze wird vom Browser selber überprüft und ggf. geblockt.
 

Attachments

  • Proxmox_Cors_1.PNG
    Proxmox_Cors_1.PNG
    17.7 KB · Views: 14
  • Proxmox_Cors_2.PNG
    Proxmox_Cors_2.PNG
    23.9 KB · Views: 15
ah, hätte den ersten post genauer lesen sollen ;) in dem fall kannst du als workaround
- deine webapp nicht im browser laufen lassen (vermutlich keine option), oder
- einen reverse proxy zwischen deine app und the PVE API hängen (die den entsprechenden header einfügt)

du kannst natürlich auch einen enhancement request auf bugzilla.proxmox.com erstellen, um diese header konfigurierbar zu machen (z.b. über /etc/default/pveproxy)
 
Hi Fabian,
danke für deine Antwort. Ich habe das ganze jetzt mal mit einem ReverseProxy getestet. So konnte ich die CORS Thematik umgehen und auch den OPTIONS Request abfangen. Jedoch habe ich das Problem, das ich den Auth Cookie nicht mitsenden kann da ich die Webanwendung über eine andere Domain aufrufe als der PVE Server läuft.

Die einzigste Lösung die ich bis jetzt hatte um erfolgreich Calls abzusetzten war der Login und das Speichern des Cookies. Jedoch muss ich dann per Hand das Feld Domain bearbeiten und auf die URL der PVE Servers setzen. Dann klappen alle Calls.

PS: Schön wäre es, wenn der PVE Server Token erstellen würde, sodass diese einfach dem Header hinzugefügt werden können und das ganze nicht per Cookie :)
 
Hi Fabian,
danke für deine Antwort. Ich habe das ganze jetzt mal mit einem ReverseProxy getestet. So konnte ich die CORS Thematik umgehen und auch den OPTIONS Request abfangen. Jedoch habe ich das Problem, das ich den Auth Cookie nicht mitsenden kann da ich die Webanwendung über eine andere Domain aufrufe als der PVE Server läuft.

Die einzigste Lösung die ich bis jetzt hatte um erfolgreich Calls abzusetzten war der Login und das Speichern des Cookies. Jedoch muss ich dann per Hand das Feld Domain bearbeiten und auf die URL der PVE Servers setzen. Dann klappen alle Calls.

PS: Schön wäre es, wenn der PVE Server Token erstellen würde, sodass diese einfach dem Header hinzugefügt werden können und das ganze nicht per Cookie :)

diese funktionalität gibt es bereits ;) https://pve.proxmox.com/pve-docs/pve-admin-guide.html#pveum_tokens
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!