Feedback sulla progettazione del sistema di autorizzazione semplice

1

Sto scrivendo un'API di autenticazione / autorizzazione abbastanza semplice per un'applicazione intranet che stiamo sviluppando.

È il mio primo sistema di autorizzazione basato sui ruoli e rappresenta una buona opportunità per un primo timer perché si trova su un VPS Windows isolato nella rete aziendale interna senza alcun accesso a Internet, quindi qualsiasi errore che faccio non sarà avere enormi conseguenze.

Detto questo, voglio ancora farlo bene.

Quindi volevo sapere se il mio metodo di seguito è sulla strada giusta e accogliamo con favore qualsiasi suggerimento di miglioramento che potresti avere.

Note:

  • Sto utilizzando lo stack MEAN poiché si adatta perfettamente al caso aziendale.
  • Ho evidenziato in grassetto i punti che mi preoccupano o non sono sicuro che siano il modo migliore di fare le cose.
  • Nel caso in cui sto usando la terminologia sbagliata per alcune cose ho incluso le mie definizioni qui sotto in modo da sapere cosa sto cercando di dire.
  • Definizioni :
    • Autorizzazioni a livello di sito: gli stati / pagine specifici a cui un utente ha accesso
    • Dominio: in questo contesto sono le raccolte di dati specifici a cui l'utente ha accesso.
      • Questo accesso è persistente su tutte le pagine quindi non c'è niente come l'Utente ha accesso ai domini X e Y nella Pagina A e nei domini W e Z nella pagina B. Se un utente ha accesso ai domini X e Y, allora è usato per tutti stati a livello di sito.

Ecco cosa sto pensando:

Creazione account

  1. L'account utente viene creato
  2. Utilizzando Active Directory (AD), determiniamo le autorizzazioni a livello di sito e le autorizzazioni specifiche del dominio
    • Memorizza l'identificativo utente e le autorizzazioni a livello di sito nel DB

Accedi

  1. L'autenticazione api verifica Identità e restituisce un token Web JSON (JWT)
  2. Il token di identità viene quindi utilizzato per ottenere un altro token specifico per autorizzazione . Il payload del JWT contiene le autorizzazioni specifiche a livello di sito e livello di dominio per quell'utente.
  3. Il token di autenticazione viene restituito al client e registrato in $routeChangeStart evento di ui-router
  4. Angolare quindi imposta lo stato appropriato per la vista richiesta in base alle autorizzazioni.

Domande specifiche per i guru di programmers.stackexchange:

  • Questo sembra un modo ok per implementare un sistema di autorizzazione?
  • Dato che ho accesso ad Active Directory sto complicando questo problema memorizzando le autorizzazioni in una collezione Roles in Mongo?
  • Ci sono alcuni difetti del rookie in questo design che dovrei correggere / fare più lettura?

Grazie per aver trovato il tempo di leggere questo e apprezzo molto qualsiasi feedback che potresti avere.

    
posta hammus 31.01.2016 - 05:45
fonte

0 risposte

Leggi altre domande sui tag