L'abilitazione dell'accesso a un archivio CRX prevede diversi argomenti:
Gli elementi di base sono i seguenti:
Account utente CRX autentica l'accesso identificando e verificando un utente (da quella persona o un'altra applicazione) in base ai dettagli contenuti nell'account utente.
In CRX ogni account utente è un nodo nell'area di lavoro. Un account utente CRX ha le seguenti proprietà:
Rappresenta un utente di CRX.
Contiene un nome utente e una password.
È applicabile per quell’area di lavoro.
Non può avere utenti secondari. Per i diritti di accesso gerarchici, utilizzare i gruppi.
Puoi specificare i diritti di accesso per l’account utente.
Tuttavia, per semplificare la gestione, consigliamo (nella maggior parte dei casi) di assegnare diritti di accesso agli account di gruppo. L’assegnazione di diritti di accesso per ogni singolo utente diventa rapidamente molto difficile da gestire (le eccezioni sono determinati utenti di sistema quando esistono solo una o due istanze).
Account di gruppo Gli account di gruppo sono raccolte di utenti e/o di altri gruppi. Questi vengono utilizzati per semplificare la gestione in quanto una modifica dei diritti di accesso assegnati a un gruppo viene applicata automaticamente a tutti gli utenti di quel gruppo. Un utente non deve appartenere ad alcun gruppo, ma spesso appartiene a diversi.
In CRX un gruppo ha le seguenti proprietà:
Diritti di accesso CRX utilizza i diritti di accesso per controllare l'accesso a specifiche aree dell'archivio.
Questo viene fatto assegnando privilegi per consentire o negare l’accesso a una risorsa (nodo o percorso) nell’archivio. Poiché è possibile assegnare vari privilegi, questi devono essere valutati per determinare quale combinazione è applicabile alla richiesta corrente.
CRX ti consente di configurare i diritti di accesso per gli account utente e per i gruppi. Gli stessi principi di valutazione di base sono poi applicati a entrambi.
Implementazioni CRX controllo dell'accesso come definito da JSR-283.
Un’installazione standard di un archivio CRX è configurata per utilizzare elenchi di controllo degli accessi basati sulle risorse. Questa è una possibile implementazione del controllo degli accessi JSR-283 e una delle implementazioni presenti con Jackrabbit.
CRX utilizza due concetti chiave durante la valutazione dei diritti di accesso:
A principale è un'entità che detiene diritti di accesso. I principali includono:
Un account utente
Un account di gruppo
Se un account utente appartiene a uno o più gruppi, lo raggruppa anche con ciascuno di questi gruppi principali.
A soggetto viene utilizzato per rappresentare l’origine di una richiesta.
Viene utilizzato per consolidare i diritti di accesso applicabili a tale richiesta. Questi sono tratti da:
Entità utente principale
I diritti che assegni direttamente all’account utente.
Tutti i gruppi principali associati a tale utente
Tutti i diritti assegnati a uno qualsiasi dei gruppi a cui appartiene l'utente.
Il risultato viene quindi utilizzato per consentire o negare l’accesso alla risorsa richiesta.
In CRX il soggetto dipende da:
L'elenco dei diritti di accesso applicabili all'oggetto è costituito da:
Quando CRX gestisce la richiesta confronta la richiesta di accesso dall'oggetto con l'elenco di controllo accessi sul nodo del repository:
Quindi se Linda richiede di aggiornare la /features
nodo nella seguente struttura del repository:
I diritti di accesso in CRX sono valutati come segue:
Le entità utente hanno sempre la precedenza sui gruppi principali indipendentemente da:
Per un dato entità principale esiste (al massimo) 1 negazione e 1 permette l'ingresso su un dato nodo. L'implementazione cancella sempre le voci ridondanti e si assicura che lo stesso privilegio non sia elencato sia nelle voci allow che deny.
Questo processo di valutazione è appropriato per il controllo dell'accesso basato sulle risorse di un'installazione CRX standard.
Due esempi in cui l’utente aUser
è membro del gruppo aGroup
:
+ parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ grandChildNode
Nel caso di cui sopra:
aUser
non viene concessa l'autorizzazione di scrittura su grandChildNode
. + parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ ace: aUser - deny - write
+ grandChildNode
In questo caso:
aUser
non viene concessa l'autorizzazione di scrittura su grandChildNode
.aUser
è ridondante.I diritti di accesso da più entità di gruppo vengono valutati in base al loro ordine, sia all'interno della gerarchia che all'interno di un unico elenco di controllo di accesso.
Nella tabella seguente sono elencati alcuni consigli e best practice:
Consiglio... | Motivo... |
Usa gruppi | Evita di assegnare diritti di accesso in base all’utente. Ci sono diversi motivi per questo:
|
Sii Positivo | Utilizzare sempre le istruzioni Allow per specificare i diritti di accesso dell'entità gruppo (laddove possibile). Evitare di utilizzare un'istruzione Rifiuta. I gruppi principali vengono valutati in ordine, sia all'interno della gerarchia che nell'ordine all'interno di un singolo elenco di controllo di accesso. |
Mantieni semplice | Investire un po' di tempo e di pensiero durante la configurazione di una nuova installazione sarà ben pagato. L'applicazione di una struttura chiara semplificherà la manutenzione e l'amministrazione in corso, garantendo che sia i colleghi attuali che i futuri successori possano comprendere facilmente ciò che viene implementato. |
Prova | Utilizza un’installazione di test per esercitarti e accertarti di comprendere le relazioni tra i vari utenti e gruppi. |
Utenti/gruppi predefiniti | Aggiorna sempre gli utenti e i gruppi predefiniti immediatamente dopo l'installazione per evitare problemi di sicurezza. |
Viene utilizzata una finestra di dialogo standard per Amministrazione utente.
Devi aver effettuato l’accesso all’area di lavoro appropriata, quindi puoi accedere alla finestra di dialogo da entrambi:
Proprietà
UserID
Nome breve per l'account, utilizzato quando si accede a CRX.
Nome principale
Nome completo dell'account.
Password
Necessario quando si accede a CRX con questo account.
ntlmhash
Assegnato automaticamente per ogni nuovo account e aggiornato quando la password viene modificata.
È possibile aggiungere nuove proprietà definendo un nome, un tipo e un valore. Fai clic su Salva (simbolo di spunta verde) per ciascuna nuova proprietà.
Iscrizione al gruppo
Vengono visualizzati tutti i gruppi a cui appartiene l’account. La colonna Ereditato indica l'appartenenza ereditata a seguito dell'appartenenza di un altro gruppo.
Facendo clic su un GroupID (se disponibile) si aprirà la Amministrazione dei gruppi per quel gruppo.
Impersonatori
La funzionalità Impersona permette a un utente di lavorare a nome di un altro utente.
Ciò significa che un account utente può specificare altri account (utente o gruppo) che possono funzionare con il proprio account. In altre parole, se l’utente-B può rappresentare l’utente-A, l’utente-B può intraprendere azioni utilizzando i dettagli account completi dell’utente-A (inclusi ID, nome e diritti di accesso).
Ciò consente agli account dell’impersonatore di completare le attività come se utilizzassero l’account che stanno impersonando; ad esempio, durante un'assenza o per condividere un carico eccessivo a breve termine.
Se un account ne impersona un altro è molto difficile da vedere. I file di registro non contengono informazioni sul fatto che si è verificata una rappresentazione sugli eventi. Quindi, se l’utente-B rappresenta l’utente-A, tutti gli eventi avranno l’aspetto di come se fossero stati eseguiti personalmente dall’utente-A.
Apri Amministrazione utente finestra di dialogo.
Fai clic su Crea utente.
Puoi quindi immettere le Proprietà :
Fare clic sul simbolo di spunta verde Salva.
La finestra di dialogo viene espansa per consentire di:
A volte si può notare una perdita di prestazioni durante la registrazione di nuovi utenti in installazioni con un numero elevato di:
Questo rimuove il nodo per l'entità dall'archivio.
Le voci dei diritti di accesso non vengono rimosse. Questo garantisce l'integrità storica.
Puoi definire Proprietà per i conti nuovi o esistenti:
Le proprietà esistenti possono essere eliminate con il simbolo del cestino.
Ad eccezione della password, le proprietà non possono essere modificate, devono essere eliminate e ricreati.
La Password è una proprietà speciale che può essere modificata facendo clic sul pulsante Modifica password link.
Puoi anche modificare la password del tuo account utente dal Sicurezza in CRX Explorer.
Puoi definire gli utenti impersonatori per account nuovi o esistenti:
Apri Amministrazione utente finestra di dialogo per l’account appropriato.
Specifica l'account da consentire per rappresentare tale account.
Puoi utilizzare Sfoglia per selezionare un account esistente.
Fai clic su Salva (simbolo di spunta verde) per la nuova proprietà.
Viene utilizzata una finestra di dialogo standard per Amministrazione dei gruppi.
Devi aver effettuato l’accesso all’area di lavoro appropriata, quindi puoi accedere alla finestra di dialogo da entrambi:
Proprietà
GroupID
Nome breve per l'account del gruppo.
Nome principale
Nome completo dell'account del gruppo.
È possibile aggiungere nuove proprietà definendo un nome, un tipo e un valore. Fai clic su Salva (simbolo di spunta verde) per ciascuna nuova proprietà.
Membri
È possibile aggiungere utenti o altri gruppi come membri di questo gruppo.
Iscrizione al gruppo
Vengono visualizzati tutti i gruppi a cui appartiene l'account del gruppo corrente. La colonna Ereditato indica l'appartenenza ereditata a seguito dell'appartenenza di un altro gruppo.
Facendo clic su un GroupID si aprirà la finestra di dialogo relativa a tale gruppo.
Membri
Elenca tutti gli account (utenti e/o gruppi) che sono membri del gruppo corrente.
La Ereditato colonna indica l'appartenenza ereditata a seguito dell'appartenenza di un altro gruppo.
Quando il ruolo Proprietario, Editor o Visualizzatore viene assegnato a un utente in una cartella di risorse, viene creato un nuovo gruppo. Il nome del gruppo è nel formato mac-default-<foldername>
per ogni cartella in cui sono definiti i ruoli.
Apri Amministrazione dei gruppi finestra di dialogo.
Fai clic su Crea gruppo.
Puoi quindi immettere le Proprietà :
Fare clic sul simbolo di spunta verde Salva.
La finestra di dialogo viene espansa per consentire di:
Questo rimuove il nodo per l'entità dall'archivio.
Le voci dei diritti di accesso non vengono rimosse. Questo garantisce l'integrità storica.
Puoi definire le Proprietà per account nuovi o esistenti:
Le proprietà esistenti possono essere eliminate con il simbolo del cestino.
È possibile aggiungere membri al gruppo corrente:
Apri Amministrazione dei gruppi finestra di dialogo per l’account appropriato.
Effettua una delle seguenti operazioni:
Fai clic su Salva (simbolo di spunta verde) per la nuova proprietà.
Oppure eliminare un membro esistente con il simbolo del cestino.
Con la Controllo degli accessi è possibile definire i criteri di controllo accessi e assegnare i relativi privilegi tramite la scheda di CRXDE Lite.
Ad esempio, Percorso corrente seleziona la risorsa richiesta nel riquadro a sinistra, nella scheda Controllo accesso del riquadro in basso a destra:
Le politiche sono classificate in base a:
Criteri applicabili per il controllo degli accessi
Questi criteri possono essere applicati.
Si tratta di criteri disponibili per la creazione di un criterio locale. Una volta selezionato e aggiunto un criterio applicabile, diventa un criterio locale.
Criteri di controllo dell'accesso locali
Si tratta dei criteri di controllo accessi applicati. È quindi possibile aggiornarli, ordinarli o rimuoverli.
I criteri locali sostituiranno i criteri ereditati dall'elemento padre.
Criteri di controllo dell'accesso effettivi
Si tratta dei criteri di controllo accessi che sono ora in vigore per qualsiasi richiesta di accesso. Essi mostrano i criteri aggregati derivati sia dai criteri locali sia da quelli ereditati dall'elemento padre.
I criteri possono essere selezionati per:
Percorso corrente
Come nell’esempio precedente, seleziona una risorsa all’interno dell’archivio. Verranno mostrate le politiche per questo "percorso attuale".
Archivio
Seleziona il controllo di accesso a livello di archivio. Ad esempio, quando si imposta il jcr:namespaceManagement
privilegio, che è rilevante solo per l'archivio, non un nodo.
Principale
Entità registrata nell'archivio.
Puoi digitare nella Principale nome o fai clic sull’icona a destra del campo per aprire il Seleziona entità finestra di dialogo.
Questo consente di: Ricerca per Utente o Gruppo. Seleziona l'entità richiesta dall'elenco risultante, quindi fai clic su OK per riportare il valore alla finestra di dialogo precedente.
Per semplificare la gestione, ti consigliamo di assegnare diritti di accesso agli account di gruppo, non a singoli account utente.
È più facile gestire alcuni gruppi, piuttosto che molti account utente.
Sono disponibili i seguenti privilegi per la selezione quando si aggiunge una voce di controllo di accesso (consulta la sezione API di sicurezza per maggiori dettagli):
Nome privilegio | Che controlla il privilegio a... |
---|---|
jcr:read |
Recupera un nodo e leggi le relative proprietà e i relativi valori. |
rep:write |
Si tratta di un privilegio aggregato specifico per jackrabbit di jcr:write e jcr:nodeTypeManagement. |
jcr:all |
Si tratta di un privilegio aggregato che contiene tutti gli altri privilegi predefiniti. |
Avanzate | |
crx:replicate |
Esegui la replica di un nodo. |
jcr:addChildNodes |
Crea nodi figlio di un nodo. |
jcr:lifecycleManagement |
Esegui operazioni del ciclo di vita su un nodo. |
jcr:lockManagement |
Bloccare e sbloccare un nodo; aggiornare un blocco. |
jcr:modifyAccessControl |
Modificare i criteri di controllo degli accessi di un nodo. |
jcr:modifyProperties |
Crea, modifica e rimuovi le proprietà di un nodo. |
jcr:namespaceManagement |
Registrare, annullare la registrazione e modificare le definizioni dei namespace. |
jcr:nodeTypeDefinitionManagement |
Importa le definizioni dei tipi di nodo nel repository. |
jcr:nodeTypeManagement |
Aggiungi e rimuovi i tipi di nodo mixin e cambia il tipo di nodo primario di un nodo. Questo include anche tutte le chiamate ai metodi di importazione Node.addNode e XML in cui il mixin o il tipo principale di nuovo nodo è esplicitamente specificato. |
jcr:readAccessControl |
Leggi i criteri di controllo accessi di un nodo. |
jcr:removeChildNodes |
Rimuovere i nodi secondari di un nodo. |
jcr:removeNode |
Rimuovi un nodo. |
jcr:retentionManagement |
Esegui operazioni di gestione della conservazione su un nodo. |
jcr:versionManagement |
Eseguire operazioni di controllo delle versioni su un nodo. |
jcr:workspaceManagement |
Creazione ed eliminazione di aree di lavoro tramite l’API JCR. |
jcr:write |
Si tratta di un privilegio aggregato che contiene: - jcr:modifyProperties - jcr:addChildNodes - jcr:removeNode - jcr:removeChildNodes |
rep:privilegeManagement |
Registra nuovo privilegio. |
È inoltre possibile registrare nuovi privilegi:
Dalla barra degli strumenti seleziona Strumenti, quindi Privilegi per visualizzare i privilegi attualmente registrati.
Utilizza la Privilegio di registrazione icona (+) per aprire la finestra di dialogo e definire un nuovo privilegio:
Fai clic su OK per salvare. Il privilegio sarà ora disponibile per la selezione.
Seleziona la risorsa e apri la Controllo degli accessi scheda .
Per aggiungere una nuova Criteri di controllo accessi locali, fai clic su + a destra del Criteri applicabili per il controllo degli accessi elenco:
Viene visualizzata una nuova voce in Criteri di controllo accessi locali:
Fai clic sul pulsante + per aggiungere una nuova voce:
Al momento è necessaria una soluzione alternativa per specificare una stringa vuota.
A questo scopo è necessario utilizzare "".
Definisci il criterio di controllo accessi e fai clic su OK da salvare. Il nuovo criterio:
CRX convalida la tua selezione; per un dato entità principale esiste (al massimo) 1 negazione e 1 permette l'ingresso su un dato nodo. L'implementazione cancella sempre le voci ridondanti e si assicura che lo stesso privilegio non sia elencato sia nelle voci allow che deny.
L'ordine nell'elenco indica l'ordine in cui vengono applicati i criteri.
Nella tabella di Criteri di controllo accessi locali seleziona la voce desiderata e trascinala nella nuova posizione nella tabella.
Le modifiche saranno visualizzate in entrambe le tabelle per Locale e Politiche di controllo dell'accesso efficaci.
Dalla barra degli strumenti di CRXDE Lite, seleziona Strumenti, quindi Controllo accesso test….
Viene visualizzata una nuova finestra di dialogo nel riquadro in alto a destra. Seleziona la Percorso e/o Principale che vuoi testare.
Fai clic su Test per visualizzare i risultati della selezione: