Procedura consigliata per condividere le credenziali dell'API dell'unità google per l'utilizzo da parte di uno script?

0

In poche parole: condivido credenziali oauth2 nel nostro codice sorgente con lo scopo dell'accesso completo in scrittura a un disco google da un google dedicato per un solo scopo -account?

quindi, ho scritto uno script python che salva alcuni dati in un file google-sheets preesistente o crea un nuovo file google-sheets in una determinata cartella di google drive (entrambi sono pubblicamente modificabili a scopo di condivisione tra squadre).

Per questo ho seguito i passaggi e le esercitazioni delineati da google e da altre fonti in seguito ottenuto credenziali oauth2 necessarie per l'autenticazione dell'autenticità del mio script con l'unità google e l'API google sheets.

Tali credenziali derivano da un account google per singolo scopo che ho creato per questo script.

Ora vorrei condividere questo script con altri membri del team ma non sono sicuro su come procedere riguardo alle credenziali; o:

A.) Vorrei incorporare il flusso di lavoro di Google suggerito che consentirebbe all'utente di autenticarsi dell'autenticazione, ovvero l'utente avvia lo script, quindi viene indirizzato al weblogin di autenticazione google, autentica lo script e quindi lo script salva e utilizza quelli credenziali dell'utente per la scrittura di dati in un file google-sheets pubblico (non necessariamente privato di proprietà dell'utente).

Questo ha gli svantaggi che:

  • l'utente si fiderebbe del mio script con credenziali che potrebbero consentirgli di leggere / scrivere tutti i dati dell'account di guida dell'utente. Anche se non intendo alcun danno, ovviamente sembra ancora troppo chiedere e essere responsabile per
  • rompe il flusso di lavoro diretto e diretto del mio script.
  • non è affatto necessario dal punto di vista tecnico, perché lo script deve scrivere solo in file di file / cartelle pubbliche; quindi perché dovrebbe essere necessario l'accesso in scrittura a tutti i file di guida dell'utente?.

B). hardcode le credenziali del nostro account monouso nello script; che ha l'unico svantaggio che quando il codice sorgente dello script viene condiviso, che chiunque possa ottenere quelle credenziali. Ma queste credenziali consentirebbero solo a un utente malintenzionato di scrivere / leggere dati nell'unità google dell'account, ma non assumere il controllo sull'intero account stesso a causa delle limitazioni dell'ambito delle credenziali di oauth2 (ho usato il " link " ambito ) . Inoltre, come detto prima, utilizzeremmo lo script solo per leggere / scrivere i dati in file pubblici di proprietà di veri account google, quindi non useremmo mai l'unità dell'account monouso e quindi nessun hacker potrebbe distruggere i nostri dati.

Quindi, preferisco optare per l'opzione B, ma non posso aiutare l'ansia derivante dalle credenziali hardcoding leggibili pubblicamente ...

Che cosa suggeriresti?

    
posta onoSendai 23.05.2018 - 11:58
fonte

1 risposta

0

Abbiamo deciso per l'opzione A: gli utenti devono creare i file client_secret.json e credentials.json. Purtroppo non è il più semplice, ma il più sicuro. La condivisione delle credenziali in un repository pubblico è solo un grande noncuranza, a prescindere dai dettagli.

Anche per completezza: un'altra alternativa sarebbe quella di avere la nostra applicazione in esecuzione su un server in cui potremmo salvare il client_secret, quindi un utente verrebbe semplicemente presentato con un browser-popup dove autorizzerebbe il nostro servizio .

Ma non seguiamo questa opzione, dal momento che la sceneggiatura deve contenere solo la logica di base e deve essere una base su cui sviluppare ulteriormente.

Questa è la nostra motivazione dietro la decisione.

    
risposta data 12.06.2018 - 12:25
fonte

Leggi altre domande sui tag