Qual è la procedura migliore per creare un'app in grado di autenticarsi insieme agli utenti di AD e DB?

3

Se ho un'app che autenticherà gli utenti usando ActiveDirectoy e li autorizzerà e collegherà i dati con loro che sono memorizzati nel DB Sql.

Qual è la migliore pratica?

  1. Per importare ripetutamente i dati da AD e archiviarli in DB come (Id, UserName) e ogni volta che autenticherò, mi connetto ad AD e mi assicuro che la sua password sia OK e che controllino il ruolo da DB ?.

  2. Continua a eseguire l'autenticazione da AD, ma ottieni il GUID dell'utente e imposta come chiave esterna nelle tabelle DB?

  3. Entrambi i precedenti non hanno un approccio corretto e c'è un'altra soluzione migliore?

E se il sistema dovesse avere la possibilità di avere utenti registrati da AD e utenti registrati nella tabella users nel DB?

    
posta Dabbas 15.01.2018 - 15:01
fonte

2 risposte

2

Il modo più semplice, e quello che ho usato prima, è quello di memorizzare tutti i dati dell'utente nel DB, ma se l'accesso utente è gestito tramite AD, lasciare un campo password nero in modo che l'applicazione sappia autenticarsi con AD invece di il DB (o usa un flag).

Dovrai memorizzare l'identificatore AD, che può essere dominio e sAMaccountname (per i sistemi meno recenti) o UserPrincipalName (se ne stai eseguendo di nuovi).

Ciò significa anche che è possibile accedere anche agli utenti che non sono memorizzati in AD, ad esempio un amministratore dell'applicazione locale, che è molto utile quando si tratta di installazione e test.

    
risposta data 16.01.2018 - 00:57
fonte
1

Non confondere l'autenticazione con l'autorizzazione. L'autenticazione sta verificando che l'utente sia chi dice di essere. L'autorizzazione sta concedendo o negando l'accesso in base alle autorizzazioni di detta persona. Verificando che la persona è chi dicono di essere attraverso Active Directory è molto autentica.

Come regola generale, non devi mai prendere scorciatoie per l'autenticazione. Presumo che non stiamo parlando di un problema di prestazioni con l'accesso ad Active Directory qui, quindi non abbiate paura di controllare ogni volta. Ciò implica anche che in caso di problemi di accesso ad Active Directory, nessuno può utilizzare il tuo programma. Questo è perfettamente accettabile!

Pertanto, dovresti davvero salvare qualsiasi informazione nel database riguardante un utente specifico dell'applicazione come le autorizzazioni, ma solo una volta che l'utente è autenticato.

    
risposta data 15.01.2018 - 15:21
fonte

Leggi altre domande sui tag