Wêrom’t in Apps Script jo ynterne app net berikke kin fia VPN
Apps Script rint op it netwurk fan Google, net op ’e laptop dêr’t de VPN yn sit. Untwerp it gegevenspaad foar de masine dy’t it fersyk stjoerd.
It dashboard iepent goed yn ’e browser op ’e laptop, mar deselde rekkenblêdskripsje mislearret mei in flater oer in net beskikber adres. De VPN oan- of út sette feroaret neat, omdat it fersyk de laptop hielendal net ferlit. Apps Script útfiert op ’e ynfrastruktuer fan Google en iepent dêr syn eigen ferbining. Dat iene feit bestimt it hiele ûntwerp.
Skied twa fragen foar’t jo eat feroarje: hokker masine stjoerd it fersyk, en hokker bewiis de ûntfanger akseptearret.
It fersyk begjint nea op jo laptop
In browser-ljep stjoerd fan ’e laptop, troch de VPN-adapter, it ynterne DNS-achterheaksel en yn it privee subnetsje. UrlFetchApp stjoerd fan in host dy’t Google beheart, dus it sjocht de resolvers fan Google, de útgongsadressen fan Google en gjin ien fan jo split-tunnel-rûtes. De twa paden diele in rekkenblêd dokumint, net in netwurkplak. Yn it tagongslog fan ’e applikaasje ferskynt de poging fan ’e skripsje as in Google-adres yn stee fan in adres út ’e VPN-pool, en dat is de fluchste befêstiging dy’t jo krije.
Dêrom dogge lokale reparaasjes neat. De laptop nei in oare resolver wize, de VPN-klient opnij starte of in hosts-ynfier tafoegje feroaret it paad fan ’e browser en lit it paad fan ’e skripsje krekt sa’t it wie.
Wat dat útslút
In allinich yntern einpunt is net berikber fanút Apps Script, en in list fan tastiene IP’s is op dit plak in swak ferfanger foar tagongskontrôle. De útgongsberikken fan Google binne breed, wurde dield mei oare klanten en kinne net oan ien skripsje bûn wurde. De UrlFetchApp-referinsje seit dat fersiken út ’e IP-pool fan Google komme, wat de gesachhawwende ferzje fan dy bewearing is. De ynterne app foar dy berikken iepenje lit ferkear ta dat jo net taskriuwe kinne.
Browsersesjes gedrage har itselde. In cookie of in SSO-sesje yn ’e browser fan ’e laptop reizget net mei it fersyk, dat in nije HTTPS-klient sûnder sesjestatus is. Alles wat ôfhinklik is fan in SSO-omlieding yn ’e browser einiget by dy omlieding yn stee fan by jo gegevens.
Twa útfierbere foarmen
De earste foarm jout de skripsje in goedkarde API. Publisearje de ynterne tsjinst efter in poarte dy’t de oanropper autentisearret, en lit de skripsje dan in bewiis oanbiede dat de poarte akseptearret, lykas in tsjinstaccount-token. Yn Apps Script betsjut dat in OAuth2-bibleteek of ScriptApp.getOAuthToken(), plus in list fan tastiene oanropperidentiteiten oan ’e API-kant yn stee fan in IP-list.
De twadde foarm keart de rjochting om. In ynterne taak freget it priveesysteem en publisearret in kontrolearre resultaat nei in Sheet, in Cloud Storage-objekt of in BigQuery-tabel dy’t de skripsje lêst. In Cloud Run-taak, in lokale plener of in besteande ETL-stap kinne allegear dy taak wêze, en gjin fan harren hoecht in ynkommende ferbining te akseptearjen. It rekkenblêd konsumearret dan in dataset yn stee fan in ynterface.
Hokker foarm wint hinget ôf fan frisheid, kontrôle op fjildnivo en wa’t de lêzer auditearje kinne moat.
Wat it publisearre resultaat befetsje moat
In feed yn ’e omkearde rjochting hat in útdruklik kontrakt nedich: de fjilden dy’t it draacht, it ferfarskingsynterval, de lêzersgroep en wat der bart as de ynterne taak mislearret. Sûnder dy fjouwer lit it rekkenblêd stil de sifers fan juster sjen. Foegje in generearre tiidstimpel-kolom en in riggetelling ta, sadat in ferâldere of dieltsje publikaasje sichtber is yn it blêd sels, sûnder dat immen in log iepenet.
De API-rjochting hat ek in kontrakt nedich: hokker bewiis de poarte akseptearret, hokker scopes it token draacht en hokker oanropperidentiteiten tastien binne. In 200-antwurd mei in oanmeldside is gjin suksesfolle oprop, dus kontrolearje it lichem en net allinnich de statuskoade.
Lês de flater fan ’e goede kant
Apps Script meldt in net berikbere host as in útsûndering fan net beskikber adres, wat net de berjocht fan ’e browser oer wegere ferbining is. In 403 fan ’e poarte betsjut dat it fersyk oankaam en dat in bewiis of belied wegere waard. In HTML-oanmeldside betsjut dat it fersyk in ynteraktyf laach berikte dy’t in skripsje net foltôgje kin. Trije ferskillende mislearrings mei trije ferskillende eigners.
Hâld it log fan ’e skripsje neist it resultaat fan ’e browser yn stee fan it iene troch it oare te ferfangen. De oerbleaune fraach is dan in gewoane yntegraasjebeslissing: jou dy omjouwing de tagong dy’t it nedich hat, of leverje it in kontrolearre resultaat.