Blogikirjoitus
Käyttäjätunnusten hallinta skripteissä
ArcGIS Pro, Online ja Portal ympäristössä oleva Notebook osaa käyttää selaimessa tai ArcGIS Prossa kerran tehtyä kirjautumista palveluun, mutta jos halutaan yhteys toiseen ympäristöön tai ajaa Python skripti ajastettuna tehtävänä, käyttäjätunnus joudutaan tallentamaan johonkin. Tässä bloggauksessa kerron, miten se kannattaa tehdä.
Tarve
Toisinaan tulee tarve tallentaa käyttäjätunnus skriptiin (#python). Miten se tehdään järkevästi niin, että salasana ei ole sellaisenaan tekstitiedostossa kaikkien luettavissa?
Riittääkö, jos rajoittaa pääsyn tiedostoon, jolloin kaikki eivät pääse sitä lukemaan? Epäilen, sillä miten käy koodin versionhallinnan, monistettavuuden ja jakamisen, jos siinä on salaisuuksia.
On myös monia muita syitä, miksi salasanan kirjoittaminen skriptiin ei ole hyvä tapa. Joten käytetään jotakin parempaa ratkaisua. Esimerkiksi tiedonsiirto, jossa luetaan ArcGIS Monitor API rajapinnasta ja tallennetaan ArcGIS Online tauluun. Koodi ja asennusohje löytyy versionhallinnasta: https://github.com/esri-jasi/monitor-report-to-dashboard
Ratkaisu
Käytettävissä on keyring yleisratkaisuna ja ArcGIS Profile ArcGIS Online ja Portal yhteyksille. Salasana on tällöin Windows käyttöjärjestelmässä olevassa tunnistetietojenhallinnassa (credential manager) ja poissa skriptin lähdekoodista.
Tallenna salasana (keyring) tai luo ArcGIS profiili
Ylläolevia ei tallenneta skriptiin, tarvittavat komennot suoritetaan osana asennusta, jonka jälkeen skriptissä voidaan käyttää koodia, josta salasana ei ole luettavissa.
Hae salasana tai ArcGIS profiili skriptistä
GIS oliosta voi lukea lisää ArcGIS API for Python dokumentaatiosta: https://developers.arcgis.com/python/guide/using-the-gis/
Jari Siiskonen
GIS Professional
Esri Finland