Blogikirjoitus
CORS virheilmoituksia
Tietoturvaa olisi helppo syyttää tästäkin vaivasta, mutta kyseessä on seuraus siitä, että käyttäjän verkkoselailusta pyritään tekemään turvallisempaa. Syynä on siis mahdolliset väärinkäytökset, joita avoimista ovista voi seurata.
https
Kuten on jo aikaisemmassa kirjoituksessa kerroimme, ArcGIS on alkanut vaatimaan https protokollaa tietoliikenteen salaamiseksi. Tämä ei rajoita palveluiden käyttöä eri sovellusten välillä, koska selainympäristöön on tehty eri lähteistä tulevien sovellusten ja palveluiden käyttöä rajoittava mekanismi (Cross-Origin), joka on vain huomioitava palveluita julkaistaessa.
Lisätietoja löydät täältä: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
CORS − allow origin
Mahdollistaa palveluiden käytön rajoittamisen vain toivotuista osoitteista ladattujen sovellusten käyttöön silloin kun selain, jolla sovellusta suoritetaan toteuttaa ehtojen tarkastuksen.
ArcGIS Online organisaatio ja ArcGIS Enterprise (Portal for ArcGIS) asetuksissa voidaan määritellä, mistä osoitteista avattujen sovellusten kautta palveluiden käyttö on sallittua ("Allow origins").
ArcGIS luotetut palvelimet
ArcGIS Online organisaatio ja ArcGIS Enterprise (Portal for ArcGIS) asetuksissa voidaan määritellä, mihin osoitteisiin käyttäjän kirjautuminen sallitaan ("Trusted servers"). Eli jos WMS tai WMTS palvelu vaatii käyttäjältä basic autentikaatiota (http vastauksessa status koodi 401), tulee se lisätä luotetuksi palvelimeksi.
CORS - http palvelimen header asetukset
Jos ja kun haluamme sallia palveluidemme käytön jostakin osoitteesta avattua sovellusta käytettäessä, palvelimen tulee kertoa se palvelun käyttäjälle (selaimelle, josta pyyntö tulee). Helpoimmillaan se on tehty palvelun asetuksissa sallimalla käyttö kaikkialta:
Header set Access-Control-Allow-Origin "*"
Mutta kun samaan aikaan haluamme käyttäjätunnuksen, käyttäjä saa virheilmoituksen:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource (Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’)
Seuraavaksi kun Access-Control-Allow-Origin on asetettu sovelluksen osoitteen mukaiseksi käyttäjä saattaa saada virheilmoituksen:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource (Reason: expected 'true' in CORS header 'Access-Control-Allow-Credentials').
Joten asetetaan myös se palvelun asetuksiin.
Näin saadaan basic autentikaatiota vaativasta WMS palvelusta kartta ArcGIS kartta (viewer) -sovellukseen ja verkossa navigointi on taas hieman turvallisempaa.
Tosin pieniä murheita näyttää olevan käytettäessä ArcGIS Online sivustoa Chromen incognito moodissa, jolloin käyttäjätunnistautuminen ei onnistu.
Näiden tilanteiden selvittämisessä muista:
- selaimen uudelleen käynnistys ja selailu historian tyhjennys
- selaimen Developer Tools (network ja console), jotta löydetään oikea virheilmoitus
- kokeilla eri yhdistelmiä (esim. Chrome/Edge/Firefox).
Jari Siiskonen
GIS Professional
Esri Finland