Sto costruendo un sistema di registrazione delle informazioni (basato su WCF) per un'azienda accessibile dal personale su Internet. Questo software non sarà distribuito e ci sarà solo una manciata di utenti con l'applicazione client installata.
Dato che le informazioni memorizzate sono altamente sensibili, vorrei ovviamente autenticare e autorizzare qualsiasi richiesta di servizio. Quindi, ci saranno circa 4 endpoint di servizio dedicati alla gestione di una varietà di richieste. Per proteggere questi servizi, stavo pensando di autenticare qualsiasi richiesta con un sistema basato su token (che è effettivamente solo un GUID). Ciò significherebbe che, a meno che il client non pacchi le loro richieste con questo token, non possano accedere a tali servizi! Destra? Ora, per recuperare un token valido, il client deve connettersi al servizio token di sicurezza, che inizia con l'autenticazione SSL reciproca (per prevenire attacchi man-in-the-middle), quindi l'utente deve fornire i propri dettagli di accesso (crittografati ovviamente), quindi se i dettagli sono validi vengono forniti con un token. Il token viene quindi registrato, insieme ai dettagli degli utenti. Ora il client può inviare richieste valide agli altri servizi. Quando uno degli altri servizi riceve una richiesta, il token e le credenziali dell'utente vengono confrontati con "l'archivio utenti corrente" e il loro ruolo viene recuperato. Se il ruolo dell'utente consente quella richiesta, viene quindi elaborata.
Scusa se è tutto un po 'prolisso! Ma in fondo quello che ti sto chiedendo sono guru della sicurezza: questo suona come un'architettura decente per questo sistema? dovrei apportare miglioramenti? o dovrei scartare questa architettura tutti insieme e andare per qualcos'altro? (se sì, qualsiasi guida sarebbe apprezzata!)
Rispetto che non sono un mago della sicurezza, tuttavia sono disposto a imparare! Quindi, per favore sii gentile;)