L’abilitazione dell’accesso a un archivio CRX prevede diversi argomenti:
Gli elementi di base sono:
Account utente CRX autentica l’accesso identificando e verificando un utente (da parte di tale persona o altra applicazione) in base ai dettagli presenti nell’account utente.
In CRX ogni account utente è un nodo nell’area di lavoro. Un account utente CRX dispone delle seguenti proprietà:
Rappresenta un utente di CRX.
Contiene un nome utente e una password.
È applicabile a quell’area di lavoro.
Non può avere utenti secondari. Per i diritti di accesso gerarchici è necessario utilizzare i gruppi.
È possibile specificare i diritti di accesso per l'account utente.
Tuttavia, per semplificare la gestione, si consiglia di assegnare (nella maggior parte dei casi) i diritti di accesso agli account del gruppo. Assegnare i diritti di accesso a ogni singolo utente diventa rapidamente molto difficile da gestire (le eccezioni sono determinati utenti del sistema quando esistono solo una o due istanze).
Account di gruppo Gli account di gruppo sono insiemi di utenti e/o 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 tale gruppo. Un utente non deve necessariamente appartenere a nessun gruppo, ma spesso appartiene a più gruppi.
In CRX un gruppo ha le seguenti proprietà:
Diritti di accesso CRX utilizza i diritti di accesso per controllare l’accesso ad aree specifiche dell’archivio.
Questa operazione viene eseguita assegnando i 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 consente di configurare i diritti di accesso sia per gli account utente che per quelli dei gruppi. Gli stessi principi di base di valutazione sono poi applicati a entrambi.
Implementazione di CRX controllo degli accessi come definito da JSR-283.
Un’installazione standard di un archivio CRX è configurata per utilizzare elenchi di controllo di accesso 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 per valutare i diritti di accesso:
A entità principale è un’entità che gode di diritti di accesso. Gli utenti/gruppi/ruoli includono:
Un account utente
Un account di gruppo
Se un account utente appartiene a uno o più gruppi, viene associato anche a ciascuno di tali gruppi principali.
A oggetto viene utilizzato per rappresentare l’origine di una richiesta.
Viene utilizzato per consolidare i diritti di accesso applicabili a tale richiesta. Questi sono presi da:
Entità utente principale
I diritti assegnati direttamente all’account utente.
Tutte le entità di gruppo associate all'utente
Tutti i diritti assegnati a qualsiasi gruppo 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 al soggetto è costituito da:
Quando CRX gestisce la richiesta, confronta la richiesta di accesso dal soggetto con l’elenco di controllo di accesso sul nodo dell’archivio:
Quindi, se Linda richiede di aggiornare /features
nella seguente struttura dell’archivio:
I diritti di accesso in CRX vengono valutati come segue:
Le entità utente hanno sempre la precedenza sulle entità gruppo indipendentemente da:
Per una determinata entità esiste (al massimo) 1 negazione e 1 autorizzazione all’ingresso in un determinato nodo. L’implementazione cancella sempre le voci ridondanti e si assicura che lo stesso privilegio non sia elencato sia nelle voci consentite che in quelle negate.
Questo processo di valutazione è appropriato per il controllo dell’accesso basato sulle risorse di un’installazione CRX standard.
Prendendo 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 dispone dell'autorizzazione di scrittura per grandChildNode
. + parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ ace: aUser - deny - write
+ grandChildNode
In questo caso:
aUser
non dispone dell'autorizzazione di scrittura per grandChildNode
.aUser
è ridondante.I diritti di accesso di più entità di gruppo vengono valutati in base al loro ordine, sia all'interno della gerarchia che all'interno di un singolo elenco di controllo di accesso.
La tabella seguente elenca alcuni consigli e best practice:
Consiglio... | Motivo... |
Usa gruppi | Evita di assegnare i diritti di accesso utente per utente. Questo può essere dovuto a diversi motivi:
|
Sii Positivo | Utilizzare sempre le istruzioni Allow per specificare i diritti di accesso dell'entità di gruppo, se possibile. Evita di utilizzare un’istruzione Deny. Le entità di gruppo vengono valutate in ordine, sia all'interno della gerarchia che nell'ordine all'interno di un singolo elenco di controllo di accesso. |
Semplifica | L'investimento di tempo e di pensiero durante la configurazione di una nuova installazione sarà ben ripagato. 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 assicurarti di comprendere le relazioni tra i vari utenti e gruppi. |
Utenti/gruppi predefiniti | Aggiorna sempre Utenti e gruppi predefiniti subito dopo l'installazione per evitare problemi di sicurezza. |
Una finestra di dialogo standard viene utilizzata 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 dell’account, utilizzato per accedere a CRX.
Nome entità
Nome di testo completo dell'account.
Password
Necessario per accedere a CRX con questo account.
ntlmhash
Assegnato automaticamente per ogni nuovo account e aggiornato quando la password viene cambiata.
Puoi aggiungere nuove proprietà definendo un nome, un tipo e un valore. Fai clic su Salva (simbolo di graduazione verde) per ogni nuova proprietà.
Iscrizione al gruppo
In questo modo vengono visualizzati tutti i gruppi a cui appartiene l’account. La colonna Ereditato indica l'appartenenza ereditata a seguito dell'appartenenza a un altro gruppo.
Facendo clic su un GroupID (se disponibile) si aprirà il Amministrazione gruppo per quel gruppo.
Impersonatori
Con la funzionalità Impersona un utente può lavorare per conto di un altro utente.
Ciò significa che un account utente può specificare altri account (utente o gruppo) che possono operare con il proprio account. In altre parole, se l’utente B è autorizzato a rappresentare l’utente A, allora l’utente B può intraprendere azioni utilizzando i dettagli completi dell’account dell’utente A (inclusi ID, nome e diritti di accesso).
Questo consente agli account di rappresentazione di completare le attività come se stessero utilizzando l’account che impersonano; ad esempio, durante un’assenza o per condividere un carico eccessivo a breve termine.
Se un account ne rappresenta un altro è molto difficile da vedere. I file di registro non contengono informazioni sul fatto che la rappresentazione si sia verificata sugli eventi. Quindi, se l’utente B rappresenta l’utente A, tutti gli eventi sembreranno eseguiti personalmente dall’utente A.
Apri Amministrazione utente .
Clic Crea utente.
Puoi quindi immettere le Proprietà:
Fai clic sul pulsante Salva (segno di spunta verde).
La finestra di dialogo verrà espansa in modo da poter:
Talvolta si osserva una perdita di prestazioni quando si registrano nuovi utenti in installazioni con un numero elevato di entrambi:
Questo rimuove il nodo per questa entità dall’archivio.
Le voci relative ai diritti di accesso non vengono rimosse. Ciò garantisce l’integrità storica.
Puoi definire Proprietà per gli account nuovi o esistenti:
Le proprietà esistenti possono essere eliminate con il simbolo del cestino.
Ad eccezione della password, le proprietà non possono essere modificate, ma devono essere eliminate e ricreate.
Il Password è una proprietà speciale che può essere modificata facendo clic sul pulsante Cambia password collegamento.
Puoi anche modificare la password del tuo account utente da Sicurezza in CRX Explorer.
Puoi definire gli impersonatori per account nuovi o esistenti:
Apri Amministrazione utente per l'account appropriato.
Specifica l’account che può rappresentare tale account.
Puoi usare Sfoglia… per selezionare un account esistente.
Fai clic su Salva (simbolo di spunta verde) per la nuova proprietà.
Una finestra di dialogo standard viene utilizzata per Amministrazione gruppo.
Devi aver effettuato l’accesso all’area di lavoro appropriata, quindi puoi accedere alla finestra di dialogo da entrambi:
Proprietà
GroupID
Nome breve dell'account del gruppo.
Nome entità
Nome di testo completo per l'account di gruppo.
Puoi aggiungere nuove proprietà definendo un nome, un tipo e un valore. Fai clic su Salva (simbolo di graduazione verde) per ogni nuova proprietà.
Membri
È possibile aggiungere utenti o altri gruppi come membri di questo gruppo.
Iscrizione al gruppo
In questo modo vengono visualizzati tutti i gruppi a cui appartiene il conto di gruppo corrente. La colonna Ereditato indica l'appartenenza ereditata a seguito dell'appartenenza a un altro gruppo.
Facendo clic su un GroupID si aprirà la relativa finestra di dialogo.
Membri
Elenca tutti gli account (utenti e/o gruppi) che sono membri del gruppo corrente.
Il Ereditato la colonna indica l'appartenenza ereditata in seguito all'appartenenza a 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 gruppo .
Clic Crea gruppo.
Puoi quindi immettere le Proprietà:
Fai clic sul pulsante Salva (segno di spunta verde).
La finestra di dialogo verrà espansa in modo da poter:
Questo rimuove il nodo per questa entità dall’archivio.
Le voci relative ai diritti di accesso non vengono rimosse. Ciò 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 gruppo per l'account appropriato.
Effettua una delle seguenti operazioni:
Fai clic su Salva (simbolo di spunta verde) per la nuova proprietà.
In alternativa, eliminare un membro esistente con il simbolo del cestino.
Con il Controllo dell’accesso scheda di CRXDE Lite è possibile definire i criteri di controllo di accesso e assegnare i relativi privilegi.
Ad esempio, per Percorso corrente seleziona la risorsa richiesta nel riquadro di sinistra, la scheda Controllo di accesso nel riquadro in basso a destra:
I criteri sono suddivisi in categorie in base a:
Criteri di controllo degli accessi applicabili
Questi criteri possono essere applicati.
Criteri disponibili per la creazione di un criterio locale. Dopo aver selezionato e aggiunto un criterio applicabile, questo diventa un criterio locale.
Criteri di controllo dell'accesso locali
Si tratta dei criteri di controllo di accesso applicati. Puoi quindi aggiornarli, ordinarli o rimuoverli.
Un criterio locale sostituirà tutti i criteri ereditati dall'elemento padre.
Criteri di controllo dell'accesso effettivi
Questi sono i criteri di controllo di accesso attualmente in vigore per qualsiasi richiesta di accesso. Mostrano i criteri aggregati derivati dai criteri locali e da quelli ereditati dal padre.
I criteri possono essere selezionati per:
Percorso corrente
Come nell’esempio precedente, seleziona una risorsa all’interno dell’archivio. Verranno visualizzati i criteri per questo "percorso corrente".
Archivio
Seleziona il controllo dell'accesso a livello di repository. Ad esempio, quando si imposta jcr:namespaceManagement
privilegio, che è pertinente solo per l’archivio, non per un nodo.
Principale
Entità registrata nell'archivio.
È possibile digitare Entità o fai clic sull'icona a destra del campo per aprire Seleziona entità .
Ciò ti consente di: Ricerca per un 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, si consiglia di assegnare i diritti di accesso agli account di gruppo e non ai singoli account utente.
È più facile gestire alcuni gruppi, piuttosto che molti account utente.
Quando si aggiunge una voce di controllo di accesso, è possibile selezionare i seguenti privilegi (vedere API di sicurezza per maggiori informazioni:
Nome privilegio | Che controlla il privilegio di... |
---|---|
jcr:read |
Recupera un nodo e leggi le relative proprietà e i relativi valori. |
rep:write |
Si tratta di un privilegio aggregato specifico di jackrabbit di jcr:write e jcr:nodeTypeManagement. |
jcr:all |
Si tratta di un privilegio di aggregazione che contiene tutti gli altri privilegi predefiniti. |
Avanzate | |
crx:replicate |
Eseguire la replica di un nodo. |
jcr:addChildNodes |
Crea nodi secondari di un nodo. |
jcr:lifecycleManagement |
Eseguire operazioni del ciclo di vita su un nodo. |
jcr:lockManagement |
Blocca e sblocca un nodo; aggiorna un blocco. |
jcr:modifyAccessControl |
Modificare i criteri di controllo di accesso di un nodo. |
jcr:modifyProperties |
Creare, modificare e rimuovere le proprietà di un nodo. |
jcr:namespaceManagement |
Registra, annulla la registrazione e modifica le definizioni dello spazio dei nomi. |
jcr:nodeTypeDefinitionManagement |
Importa le definizioni dei tipi di nodo nel repository. |
jcr:nodeTypeManagement |
Aggiungi e rimuovi tipi di nodo mixin e modifica il tipo di nodo principale di un nodo. Sono incluse anche le chiamate ai metodi Node.addNode e di importazione XML in cui il tipo mixin o primario del nuovo nodo è specificato in modo esplicito. |
jcr:readAccessControl |
Leggi i criteri di controllo di accesso di un nodo. |
jcr:removeChildNodes |
Rimuovere i nodi secondari di un nodo. |
jcr:removeNode |
Rimuovere un nodo. |
jcr:retentionManagement |
Eseguire operazioni di gestione della conservazione su un nodo. |
jcr:versionManagement |
Eseguire operazioni di controllo delle versioni su un nodo. |
jcr:workspaceManagement |
La creazione e l’eliminazione delle aree di lavoro tramite l’API JCR. |
jcr:write |
Questo è 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 il Registra privilegio icona (+) per aprire la finestra di dialogo e definire un nuovo privilegio:
Clic OK per salvare. Il privilegio sarà ora disponibile per la selezione.
Seleziona la risorsa e apri Controllo dell’accesso scheda.
Per aggiungere una nuova Criteri di controllo dell'accesso locale, fare clic su + a destra della Criterio di controllo dell’accesso applicabile elenco:
Viene visualizzata una nuova voce in Criteri di controllo dell'accesso locale:
Fai clic su + per aggiungere una nuova voce:
Attualmente è necessaria una soluzione alternativa per specificare una stringa vuota.
Per questo è necessario utilizzare "".
Definisci il criterio di controllo dell’accesso e fai clic su OK per salvare. Il nuovo criterio:
CRX convalida la selezione; per un determinato utente/gruppo/ruolo esiste (al massimo) 1 negazione e 1 autorizzazione all’ingresso in un determinato nodo. L’implementazione cancella sempre le voci ridondanti e si assicura che lo stesso privilegio non sia elencato sia nelle voci consentite che in quelle negate.
L’ordine nell’elenco indica l’ordine in cui vengono applicati i criteri.
Nella tabella di Criteri di controllo dell'accesso locale selezionare la voce desiderata e trascinarla nella nuova posizione nella tabella.
Le modifiche verranno visualizzate in entrambe le tabelle per Locale e Criteri di controllo dell'accesso effettivi.
Dalla barra degli strumenti di CRXDE Lite, seleziona Strumenti, quindi Test controllo accesso….
Nel riquadro in alto a destra viene visualizzata una nuova finestra di dialogo. Seleziona la Percorso e/o Entità che vuoi testare.
Clic Test per visualizzare i risultati della selezione: