Sistemi di autenticazione - Separati per la gestione?

3

Modifica : ammetto di non essere chiaro quando ho scritto per la prima volta la domanda. Suppongo di non essere sicuro del problema, i commenti e le risposte fornite fino ad ora mi hanno aiutato a concentrarsi sul problema, grazie a tutti i partecipanti. Questa modifica è una riscrittura totale della domanda. Termina commento editoriale

Su un sito web dinamico abbiamo due sistemi: la gestione dei contenuti e l'interfaccia utente (banale).

Stiamo provando a decidere se i due dovrebbero avere sistemi di autenticazione separati (essendo due sistemi, questo potrebbe aumentare la sicurezza [o meno - @ GlenH7?]), ognuno con la propria gerarchia di autorizzazioni ecc.

O è meglio avere un singolo sistema (è lo stesso database, dopotutto ... più una manutenzione più semplice) e giocare solo con le autorizzazioni (regolare, jumbo, power, super nova, admin, Q )?

    
posta JNF 15.07.2012 - 10:47
fonte

2 risposte

4

Un Amministratore è Ruolo che è un super-set di tutte le autorizzazioni e di solito significa qualcosa di speciale semanticamente al di fuori di queste autorizzazioni, come ad avere permessi speciali che nessun altro ruolo può avere.

Un Utente normale con autorizzazioni estese è ancora un Utente normale , ma con autorizzazioni aggiuntive e per definizione non può avere le autorizzazioni speciali di un amministratore .

I due non sono logicamente equivalenti o semanticamente equivalenti in quanto dovrebbero anche essere ortogonali .

Forse quello che vuoi veramente definire è un Power User se non hai nulla di specifico che un amministratore può fare solo.

In entrambi i casi aggiungerei il controllo del sistema e proverei a riutilizzare un sistema di autenticazione e autorizzazione basato sul ruolo sottostante o esistente piuttosto che crearne uno personale. Questo focus sulla posizione dell'autenticazione in questa domanda da solo mi dice che lo otterrete più sbagliato di quello giusto. Perché penseresti di aver bisogno di due sistemi di autenticazione, il doppio del lavoro, il doppio delle modifiche per fare errori, il doppio delle probabilità di errore, ecc.

    
risposta data 15.07.2012 - 10:55
fonte
1

Modifica: Sto ancora con la mia risposta originale sulla base delle informazioni aggiuntive fornite. La risposta originale è sotto.

Anche se i siti UI e Mgmt hanno contenuti e URL completamente diversi, non vedo che tu abbia qualcosa da guadagnare dall'avere due sistemi di autenticazione / autorizzazione. A livello meta, entrambi i siti trattano le stesse informazioni e utilizzano gli stessi set di regole di autorizzazione per determinare se qualcuno è autorizzato a fare qualcosa o meno.

È ancora possibile stabilire due gerarchie di autorizzazioni all'interno dello stesso schema di autenticazione / autorizzazione. Gli account utente possono avere vari gradi di privilegi e accessi basati su qualsiasi struttura ad albero che ritieni appropriata. Idem con gli account di manutenzione e il contenuto a cui avrebbero accesso. L'utilizzo dello stesso livello sottostante per l'implementazione della sicurezza ti semplifica la creazione e la manutenzione.

Se per qualche motivo eri veramente, davvero, davvero preoccupato per gli utenti regolari, anche sapendo c'era un'interfaccia di manutenzione, quindi suggerirei di creare due siti / URL separati per l'accesso, ma comunque utilizzare lo stesso livello di sicurezza sottostante. È banale creare una seconda vista di autenticazione con il proprio URL. Ciò soddisfa il requisito di "isolamento percepito" senza aumentare significativamente il carico di lavoro.

Risposta originale

Sono d'accordo con la risposta di Jarrod Roberson, e questo ha lo scopo di fornire maggiori dettagli dietro questo approccio.

Sembra che tu abbia bisogno di almeno tre categorie di utenti all'interno del tuo schema di autenticazione / autorizzazione.

  • Utente normale
    Come suggerisce il nome, questo è per gli utenti regolari del tuo sito senza privilegi speciali.
  • Utente avanzato Si tratta essenzialmente di utenti regolari ma con privilegi avanzati per la gestione delle attività di tipo di manutenzione. I moderatori di P.SE sarebbero un esempio di utenti esperti.
  • Amministratore
    Gli utenti dispongono di tutti i diritti sul sistema e possono modificare tutto ciò che è esposto attraverso la programmazione del sito. I tuoi sviluppatori potrebbero o potrebbero non essere amministratori per il tuo sito di produzione.

Gli sviluppatori sollevano un'interessante domanda su quali diritti assegnare. In alcuni casi, hanno bisogno dei diritti di amministratore in modo che possano correggere i torti all'interno del sistema (mi dispiace per il gioco di parole). Ma la maggior parte delle volte non vuoi che siano loggati come amministratori ma piuttosto come utenti esperti o normali.

Un modo per risolvere questo problema è l'utilizzo di più accessi. "JoeUser" può essere il loro accesso normale quando non esercitano il ruolo di sviluppatore mentre "JoeAdmin" è il loro accesso di amministratore. Il login dell'amministratore può attivare auditing / tracking / etc ... mentre il normale login non lo farebbe.

Avere due sistemi di autenticazione separati non ti fa altro che mal di testa. Oltre ai motivi esposti da Jarrod, eccone altri.

  • Non impedisce agli utenti regolari di accedere come amministratori. Gli utenti regolari dovrebbero conoscere le credenziali dell'amministratore prima di poter accedere come amministratore.
  • Non aumenta la tua sicurezza. Se non altro, un sistema di autenticazione dedicato e privilegiato rende più facile agli aggressori la possibilità di concentrarsi su un unico sistema e non preoccuparsi di passare come utente di livello inferiore. IE. hanno decifrato il tuo sistema di autenticazione admin in modo che sappiano che entreranno come amministratori.
  • Rende l'autenticazione più fastidiosa per i tuoi amministratori. Poiché devono accedere a un altro sito per l'autenticazione come amministratore, è più probabile che saltino utilizzando i loro normali accessi utente e restano registrati come amministratori. Non necessariamente quello che vuoi.

Quindi la risposta è essenzialmente questa: codifica un singolo livello di autenticazione / autorizzazione. Crea più accessi per chiunque abbia bisogno dei diritti di amministratore.

    
risposta data 15.07.2012 - 16:00
fonte

Leggi altre domande sui tag