Background: La società per cui lavoro utilizza diversi sistemi per conservare i dati assicurativi relativi ai clienti. Vogliono avere un'app per i loro clienti dove possono trovare le loro cose relative all'assicurazione. Alcuni di questi sistemi forniscono servizi Web per ottenere le informazioni necessarie, quindi è possibile un'autenticazione utente corretta e di qualsiasi tipo. Tuttavia, alcuni forniscono un accesso diretto al database senza nulla che si avvicini addirittura all'autenticazione dell'utente, perché non è stato progettato per farlo.
Per risolvere questo problema stiamo costruendo un servizio adattatore, che può connettersi a tutti i diversi sistemi per ottenere i dati necessari. Tuttavia, l'autenticazione dell'utente è ancora un problema per i sistemi che non lo forniscono.
Un altro ingegnere del software ha suggerito (siamo gli unici ingegneri) che costruiamo un meccanismo generale di autenticazione che fornisce l'autenticazione a tutti i sistemi per ottenere le necessarie informazioni sui clienti. Entrambi abbiamo lo stesso background, siamo giovani, non abbiamo molta esperienza nella progettazione di un tale sistema o nella comprensione di tutti i problemi di sicurezza per un tale sistema.
Domanda: Con lo sfondo sopra indicato, sono preoccupato per tutti i problemi di sicurezza che potrebbero sorgere se lo faremmo. Per il serio tipo di informazioni (dati assicurativi) potremmo non avere l'esperienza necessaria per creare un sistema del genere, per garantire che il miglior tipo di sicurezza sia possibile e non limitato dalla nostra conoscenza (o Google).
- La sua opinione su questo argomento è che dovrebbe essere creato un meccanismo di autenticazione generale per tutti i sistemi. Quindi, con un solo accesso da parte nostra, è possibile ottenere tutti i dati dai diversi sistemi, se disponibili. Se seguiamo cose come OAuth, non dobbiamo temere molto la questione della sicurezza. E se cerchiamo (ri) queste cose su internet, sarà OK.
- La mia opinione su questo argomento è che un meccanismo di autenticazione generale sarà una buona cosa per tutti i sistemi che non forniscono le cose necessarie per l'autenticazione dell'utente (che è anche l'unica soluzione possibile). Tuttavia, non dobbiamo ignorare i sistemi che forniscono la loro autenticazione per accedere al loro sistema per ottenere i dati necessari da un cliente. Forse è possibile scambiare informazioni tra tutti i sistemi per garantire che lo stesso tipo di accesso sia disponibile ovunque (se l'utente esiste in un sistema che fornisce l'autenticazione e con un sistema che utilizza l'autenticazione generale). Ad esempio, se una password viene modificata. Questa idea assicurerebbe che il nostro meccanismo generale di autenticazione venga violato in qualche modo, che non tutti i sistemi saranno esposti all'attaccante e chissà quali potrebbero essere le conseguenze.
Dovremmo solo portare avanti l'idea di creare un meccanismo di autenticazione generale o limitarlo ai sistemi che ne hanno bisogno e possibile scambiare i dettagli di accesso se l'utente dovrebbe esistere nei due diversi tipi di sistemi (sistema che supporta l'autenticazione o no). Quali sono i buoni argomenti a favore o contro queste idee?
Modifica: lo utilizzerebbe il pubblico in generale, ogni sistema fornirebbe il / i contratto / i con i suoi dati (se il cliente esiste nei diversi sistemi). Esempio: per il cliente '1' il sistema A (database) e B (servizio web) contiene entrambi contratti diversi da lui. Tuttavia, per il cliente "2" solo il sistema A (database) contiene un contratto. A seconda del cliente, il tipo di contratto (i) viene memorizzato in sistemi diversi. Tutti questi sistemi sono di terze parti.