JSON RPC - Blocked by CORS policy

Antworten
Tjark
Beiträge: 9
Registriert: 07 Dez 2023, 17:05

JSON RPC - Blocked by CORS policy

Beitrag von Tjark »

Moin,

aktuell bin ich dabei ein kleines Webtool zu entwickeln zum vereinfachten registrieren von Geräten in unserem Unternehmen.
Dafür versuche ich mithilfe der JSON-RPC Schnittstelle eine anfrage an unseren Configserver zu schicken.

Meine anfrage sieht wie folgt aus (JavaScript):

Code: Alles auswählen

const data = JSON.stringify({
    id: 1,
    jsonrpc: '2.0',
    method: 'host_createOpsiClient',
    params: [
        'apiDummy.<<domain>>',
        null,
        'Beschreibung',
        null,
        '00:11:22:33:44:55',
        '0.0.0.0',
        null,
        null,
        null,
        null,
        null
    ]
});

const req = new XMLHttpRequest();
req.withCredentials = true;

req.addEventListener('readystatechange', function () {
    if (this.readyState === this.DONE) {
        console.log(this.responseText);
    }
});

req.open('POST', 'https://<<configserver>>:4447/rpc?');
req.setRequestHeader('Content-Type', 'application/json');
req.setRequestHeader('Authorization', 'Basic' + btoa("<<username>>:<<password>>"));

req.send(data);
Anscheinend werden meine Anfragen aber vom Server von CORS blockiert:
Access to XMLHttpRequest at 'https://<<configserver>>:4447/rpc?' from origin 'http://172.16.31.45' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'http://<<configserver>>:4447' that is not equal to the supplied origin.
Benutzeravatar
n.doerrer
uib-Team
Beiträge: 408
Registriert: 23 Okt 2020, 16:11

Re: JSON RPC - Blocked by CORS policy

Beitrag von n.doerrer »

Moin,

aktuell wird für Anfragen im opsiconfd
der "Access-Control-Allow-Origin" header auf "{origin_scheme}://{host}:{origin_port}" gesetzt.
Daher wird sich ein browser immer beschweren, wenn der origin ein anderer ist. Außer man deaktiviert CORS-enforcement (--disable-web-security).


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Tjark
Beiträge: 9
Registriert: 07 Dez 2023, 17:05

Re: JSON RPC - Blocked by CORS policy

Beitrag von Tjark »

Moin n.doerrer,

vielen Dank für deine Antwort.
Ich habe es nun ausprobiert über das deaktivieren von CORS-enforcement über den Parameter --disable-web-security. Leider auch das ohne Erfolg. Selbst mit deaktivierter Web Security scheint die CORS Policy erzwungen zu werden.

Besteht die Möglichkeit den "Access-Control-Allow-Origin" Header anzupassen bzw. zu erweitern um die Adresse meines Webservers?

Mit freundlichen Grüßen
Tjark
Benutzeravatar
j.schneider
uib-Team
Beiträge: 2044
Registriert: 29 Mai 2008, 15:14

Re: JSON RPC - Blocked by CORS policy

Beitrag von j.schneider »

Hallo,

ab opsiconfd-Version 4.3.31.1 kann man den Access-Control-Allow-Origin-Header über die Option "--cors-origin" auf einen beliebigen Wert setzen. Die neue Version ist hier zu finden:

https://software.opensuse.org/download. ... =opsiconfd

Grüße
Jan Schneider


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Antworten