Hulp gezocht bij debuggen van QGIS bij laden van ArcGIS REST Server Layers (Esri Feature Services) met Esri Token Based Authentication

Hoi Geoforum,

Naast mijn reguliere werk doe ik al aantal jaren vrijwilligerswerk op gebied van GIS/geospatial voor Sensing Clues, zie https://sensingclues.org. Sensing Clues maakt gebruik van commerciële GIS software gesponsord door de leveranciers en daarnaast ook van open source software voor hun mission critical online nature conversation platform. QGIS wordt daarbij ook gebruikt, niet alleen intern maar ook door de organisaties die van de diensten van Sensing Clues gebruik maken.

We zoeken nu gericht een vrijwilliger die kan helpen met debuggen van QGIS bij laden van ArcGIS REST Server Layers (Esri Feature Services) met Esri Token Based Authentication. Deze services zijn opgezet met de Koop JavaScript toolkit en werken zonder problemen bij laden in ArcGIS en ArcGIS Online. In QGIS lukt het probleemloos om ArcGIS REST Server Layers zonder authenticatie te laden, maar met authenticatie wil niet en we hebben niet genoeg kennis om QGIS debugging en logging goed werkend te krijgen om er voldoende info uit te halen zodat we snappen waarom. In principe een eenmalige taak maar als je daarna(ast) zin hebt om meer te doen dan is dat natuurlijk mogelijk :slight_smile:

Wie of wie kan hierbij behulpzaam zijn? Vrijdagmiddag 23 september gaan we proberen dit in een gezamenlijke sessie te tackelen, je kan hieraan onsite of remote meedoen. Dus als je iemand weet of zelf zin hebt dan hoor ik het graag!

Groeten,

Emil

Hoi, wat lukt er precies niet? Deze blogpost lijkt het redelijk helder uit te leggen:

maar ik lees daar ook wel dat het ‘de QGIS ondersteuning niet great is’, heeft natuurlijk ook te maken met het (blijkbaar) steeds wisselen van het token? Ik stel me zo voor dat het een beetje werkt als OAuth? Dat een token verloopt na verloop van tijd? En dat je dan een nieuwe moet ophalen?

Wij (de OpenGeoGroep.nl) hebben die vrijdag een soort technische DOE-dag, ik kan evt wel proberen om even mee te kijken (mail me even de gegevens).

De uiteindelijke oplossing is om evt dit te (laten) bouwen, Nyall Dawson is dan de man die je moet hebben, die heeft ook de rest van de Esri-koppelingen gemaakt… ik weet zelf nog heel weinig van deze specifieke Esri authenticatie af, ook al omdat dit soort zaken meestal NIET open bereikbaar/te gebruiken zijn…

FYI Ik heb even Nyall een vraagje gesteld, en hij kwam met het volgende antwoord:

The “ESRI token based authentication” method is quite old now, and I doubt that any relatively recent ArcGIS server will still be using that method. The recommended approach instead would be to use OAUTH.

I wrote this up a while back: Securely accessing enterprise ArcGIS Portal sites through QGIS – North Road . I’d give that process a try first, and let me know if you run into any issues! (That blog is due for an update, I’ve had a few questions about it and next to clarify a few points there…)

Hoi Richard, bedankt voor je antwoord en aanbod om mee te kijken (ik kom bij je terug met de info hiervoor). Laden van een publieke ArcGIS feature layers met ‘No Authentication’ lukt in QGIS (nu 3.26.2, ook getest met 3.22.x). Laden van een eigen ArcGIS feature layer geserveerd door Koop met Esri token authentication in QGIS lukt niet, terwijl deze zelfde service wel probleemloos in ArcGIS en ArcGIS Online geladen kan worden. In QGIS Data Source Manager zie ik meldingen als ‘Connection Failed: Parsing error’ en ‘Connection Failed: Error 499’, maar ik kom niet verder met precies zien welke request eruit gaat en hoe token daarbij zit, en wat er terugkomt. Al wat geprobeerd met Wireshark maar nog geen suces, en volgens mij moet die logging/debugging ook in QGIS kunnen?

Ik weet niet of het netwerkverkeer via de standaard qt routes gaan, maar dan moet je via F12 (Network logging monitor) url’s kunnen zien (en evt naspelen met curl of browser).

Een ander alternatief wat ik dan de 23e zou doen: is zelf QGIS-master bouwen en debuggen in QtCreator om te zien wat er precies wordt gedaan.

Als je me (evt prive: richard@duif.net) wat connectie informatie stuurt (en evt screenie wat de gewenste output is) dan wil ik evt wel even kort kijken.

Ah merci, ik had moeite om die network logging te vinden, maar heb het nu aanstaan dus ga daar induiken, urls checken zoals je zegt. En ik stuur je sowieso ook een mail.

Ok, meteen een stuk verder. QGIS stuurt het token niet mee in de url maar als header. Dat verwacht de Koop provider blijkbaar niet, of hebben we niet juist geconfigureerd.

QGIS stuurt:

https://test.geoservices.sensingclues.org/marklogic/rest/services/default/FeatureServer?f=json

in plaats van

https://test.geoservices.sensingclues.org/marklogic/rest/services/default/FeatureServer?f=json&token=abc123

En de header

X-Esri-Authorization: Bearer abc123

Daarmee kan ik in ieder geval verder, hetzij via Koop configuratie, hetzij doorgeven request parameters aanpassen in Nginx die ertussen zit.

Nyall meldde me net nog dat hij de POST heeft geupdate met nieuwe info:

1 like