Come devo implementare le autorizzazioni?

0

Sto usando cppcms per creare un'applicazione simile a un blog e sto provando a scrivere un sistema di autorizzazione, anche se sono confuso su quale sarebbe il metodo più efficiente e gestibile.

Al momento, ho una tabella con id di autorizzazione, id utente, tipo di permesso (int) e valore di autorizzazione (un parametro facoltativo, di sorta). Per ogni autorizzazione separata, deve essere aggiunta una riga.

Quale metodo consiglieresti?

Se desideri chiarimenti o ulteriori informazioni, non esitare a chiedere.

    
posta Will03uk 15.07.2012 - 02:43
fonte

2 risposte

3

La mia raccomandazione: pensa a quanti

    L'implementazione
  • esiste attualmente in questo mondo per la gestione degli accessi? Scommetterei alcuni milioni .
  • le ore uomo sono già state create in questo campo? Non riesco nemmeno a indovinarlo, e la maggior parte di essi sono totalmente paralleli ...
  • le soluzioni open source sono lì, pronte per l'uso nel tuo sistema?

Quindi, è molto positivo che tu abbia iniziato a pensarci, creato una semplice implementazione, identificato i componenti principali e le loro funzioni.

Ma ora dovresti concentrarti sul compito che devi svolgere e non perdere tempo nella gestione degli accessi. Sarà sicuramente peggio (meno funzionalità, struttura più debole, meno testata, ha diverse vulnerabilità causate dai problemi della piattaforma che non hai nemmeno conosciuto) di tutto ciò che è disponibile per te in questo momento per integrare e utilizzare (beh, ho Supponendo che tu non sia Superman e non sia pioniere in un campo esoterico, entrambi sono molto probabili).

Immagina la tua applicazione nelle sue dimensioni complete, raccogli le funzionalità e i conteggi presunti (utente, funzionalità, ruolo, richieste al secondo, ...). Usa Google per restringere la tua ricerca a mi piace cinque soluzioni, confrontarle con la loro riflessione su forum, blog, ecc., Selezionarne una e usarla. D'altra parte: separa la tua scelta effettiva dal tuo codice con un'interfaccia personalizzata creata dal tuo elenco delle caratteristiche . Questo sarà un bene se devi passare a un'altra soluzione a causa di qualcosa che non conosci oggi.

Penso che questo approccio abbia più benefici anche se scrivi questo sistema per imparare. Dovresti adattarti a formalizzare le tue esigenze, valutare le soluzioni disponibili e imparare dalle buone soluzioni degli altri programmatori invece di commettere gli stessi errori da principiante da cui si sono evolute queste soluzioni. Per diventare un programmatore affidabile, devi trovare il giusto equilibrio tra la scrittura e l'utilizzo dei componenti e imparare a valutare oggettivamente il tuo tempo e la qualità del tuo codice rispetto a ciò che è disponibile (conoscenza di base, perfezionamento della codifica, quantità disponibile di man- ore per correggere e mantenere i bug, per lo sviluppo e test di vita reale).

Non scrivi il tuo word processor per modificare un file di testo. Perché? Allora perché dovresti scrivere un componente di controllo accessi (e copiarlo e incollarlo su altri sistemi che fai)?

In alcuni casi, esiste una ragione obiettiva per entrambi. Nella maggior parte dei casi, non ce n'è. Purtroppo, i programmatori tendono a pensare che un word processor sia un compito più serio (quindi ne usano uno) piuttosto che uno scrivere una gestione degli accessi veramente affidabile (così ne scrivono uno). Ultima nota: contrariamente a quanto sopra, è molto probabile che scriverò un gestore degli accessi, ma ho una buona ragione per farlo. : -)

    
risposta data 15.07.2012 - 08:43
fonte
0

In generale, penso che sia meglio scomporre i dati in blocchi logici. Ad esempio, probabilmente dovresti creare una tabella utente, una tabella delle autorizzazioni (per autorizzazioni specifiche una sola) e quindi una tabella di gruppo.

Da lì, gli utenti dovrebbero appartenere ai gruppi e i gruppi dovrebbero disporre delle autorizzazioni.

Dopo aver memorizzato le informazioni di base, è necessario aggiungere una tabella delle relazioni. Questo basterà fondamentalmente un record per ogni relazione vale a dire: il record 1 sarebbe id utente 1, id gruppo 1. il record 2 potrebbe essere id gruppo 1, id autorizzazione 2. ecc.

    
risposta data 15.07.2012 - 05:49
fonte

Leggi altre domande sui tag