Cerco di progettare un sistema che legge eventi provenienti da dispositivi, li memorizza e espone l'API a varie applicazioni. Inizialmente volevo introdurre un modulo Traduttore Id , quindi avrei archiviato solo l'ID di un dispositivo anonimo in un database. Sarebbe quindi protetto da raccolta dati non autorizzata.
Quindi volevo avere un altro modulo chiamato Registro ruoli responsabile della gestione delle autorizzazioni API per ogni applicazione. Avevo un'idea in mente che l'applicazione che desidera lavorare con l'id del dispositivo concreto avrebbe bisogno di un'autorizzazione diversa dall'applicazione che utilizza identificatori anonimi.
Un altro modulo API di accesso agli eventi sarebbe un singolo punto di accesso per l'accesso ai dati e valuterà se l'autorizzazione dell'API è stata concessa all'applicazione.
Ma cominciando a pensarlo penso che questo concetto sia debole. È difficile da spiegare perché una miriade di domande e se mi vengono in mente, ne ritengo alcune più probabili, ne rifiuto altre ecc. Devo specificare chiaramente le mie esigenze e trovare le conseguenze.
Voglio
- database anonimo in modo che nessuno dei due amministratori possa cercare i dati dell'ID evento specifico La ricerca
- per ID dispositivo concreto richiederebbe un set di autorizzazioni diverso dalla ricerca anonima con altri criteri
Ma vedo il problema principale con i dati restituiti:
- Se l'API restituisce un ID artificiale, il chiamante può salvarlo e quindi può utilizzare l'API anonima la prossima volta
- Se l'API restituisce l'ID dispositivo reale, l'API deve accedere al database Id Translator (dati veramente grandi, accesso rapido) e quindi l'amministratore può facilmente abbinare i dati anonimi con l'id del dispositivo concreto
Potrebbe essere irrisolvibile e salterò semplicemente il primo requisito (protezione dell'amministratore).
Sarei grato per
- Qualche idea su come progettare tale sistema e API
- Qual è la migliore pratica?
- I dati saranno resi anonimi nel database?
- L'API di Shall restituisce un identificatore db anonimo o un ID dispositivo reale?
Grazie.