Scenario
Sto accedendo all'API REST di alcune applicazioni che utilizzano OAuth. Questo è ciò che accade:
- Genero una coppia di chiavi openssl privata / pubblica. La parte privata rimane con la mia app, la parte pubblica va nell'app remota.
- La mia app crea un token di richiesta e mi chiede di verificarlo nell'applicazione remota; Lo faccio (mentre effettuo l'accesso all'applicazione remota con il mio account personale) e ricevo un breve codice.
- Fornisco quel codice breve alla mia app, e questo (o meglio la libreria OAuth che sto usando) crea un token di accesso permanente e un segreto. Quel token di accesso è (all'interno dell'app remoto) collegato al mio account personale; cioè con quel token di accesso non posso fare altro che fare comunque, e se il mio account personale è disabilitato, anche il token di accesso sarà inutile.
In futuro, la mia app può accedere all'API usando quel token di accesso e il segreto; spetta a me conservarlo in modo sensato. Ulteriori permessi interni all'interno dell'app remota dipendono da ciò che il mio account personale può o non può fare.
Tutto ciò funziona bene e come previsto; Suppongo che sia il flusso di lavoro standard di OAuth.
La mia app è un piccolo script utilizzato da una manciata di sviluppatori molto selezionata. Hanno tutti accesso regolare nell'app remota.
Domanda
Il primo passo, la generazione del PPK, può essere fatto solo una volta , nel senso che appartiene alla mia app, non a un utente specifico? Ciò avrebbe, nel mio caso specifico, il vantaggio che ho solo bisogno di memorizzare la coppia una volta, di avere solo un "link per l'applicazione" nell'app remota ecc. I token di accesso individuali + i segreti rimarrebbero ovviamente in privato con gli sviluppatori. / p>
Ciò significherebbe che il PPK è un tipo di pubblico - sarà difficile controllarlo realmente, e potrei anche aggiungerlo (inclusa la chiave privata) al repository di origine, ben sapendo che chiunque abbia accesso al l'origine sarà quindi in grado di creare un accesso OAuth all'app remota. Questo sarebbe comunque protetto in modo che solo le persone che hanno già un account personale possano farlo.
Mi manca qualcosa qui?