Ho un sito Web con determinate voci di menu che devono essere nascoste agli utenti finali.
Il sito Web ha PHP nel front-end e Java e Spring nel back-end, implementato su un sistema operativo Linux in un'infrastruttura VM, sebbene lo stack completo della tecnologia non sia completamente compreso in quanto è un sistema legacy e non completamente documentato.
Ho bisogno di proteggere il sito e le funzioni in base ai controlli di accesso: utenti mappati a gruppi e gruppi che hanno accesso a diverse voci di menu (funzioni). Devo anche fornire un'interfaccia per gli amministratori per modificare la mappatura da funzioni a gruppo. Richiedo anche un controllo accurato sul livello del diverso accesso al metodo di lettura / scrittura.
Capisco che ho bisogno di ACL. Qual è la progettazione delle migliori pratiche per un tale requisito?
Opzioni e domande:
- DB - i problemi negativi sarebbero: vecchio stile e creazione della mia funzione di gestione delle identità con tutti i suoi inconvenienti e complessità.
- LDAP - aspetti negativi: ancora il mio sistema di gestione delle identità, ma probabilmente più semplice di DB, ma non sono sicuro di come funzioni il mapping dei livelli di funzione ai gruppi. I provider LDAP forniscono la mappatura dei gruppi a determinate funzioni (ad esempio una voce di menu "account" - Voglio solo che le finanze possano visualizzare il menu degli account)
- OpenAM e soluzioni simili esternalizzando Identity Management - può funzionare? Ho letto di questo - l'autenticazione lo capisco ma l'autorizzazione a livello di grana fine non lo faccio. Sembra che tu abbia bisogno di un prodotto LDAP configurato come origine dati, quindi cosa offre OpenAM rispetto all'opzione 2 sopra perché sarebbe lo stesso? Con OpenAM sembra che configuri un servizio di identità, ma ottengo la sicurezza a livello di contenitore - quindi server web e app server ma dà la sua pagina di accesso. Presumo che sia possibile configurarlo per accedere ai fogli di stile in modo che si integri con la pagina di accesso corrente - ma qualcuno ha fatto su uno qualsiasi di questi tipi di prodotti per essere sicuro che sia possibile? Inoltre, questo è il mio ACL requisiti? È questo il miglior design e quanto è più complicato da configurare rispetto a LDAP e configurazioni di app?
Ulteriori domande:
- La soluzione LDAP è meglio consigliata?
- Hai qualche suggerimento sui prodotti open source per Apache LDAP? Sono buoni / gestiti facilmente? Qualsiasi interfaccia possibile per la manipolazione di funzioni in gruppi? - LDAP consente la mappatura a livello di granulosità di funzioni / metodi per gruppi o è qualcosa che viene fatto nell'applicazione? Questa parte in particolare è confusa. Se qualcuno può offrire una buona risorsa su questo, sarebbe buono.