Habilitar el acceso a un repositorio CRX implica varios temas:
Los elementos básicos son:
Cuentas de usuario CRX autentica el acceso identificando y verificando a un usuario (por esa persona, u otra aplicación) según los detalles que contenga la cuenta de usuario.
En CRX, cada cuenta de usuario es un nodo en el espacio de trabajo. Una cuenta de usuario CRX tiene las siguientes propiedades:
Representa a un usuario de CRX.
Contiene un nombre de usuario y una contraseña.
Es aplicable a ese espacio de trabajo.
No puede tener subusuarios. Para los derechos de acceso jerárquicos, debe utilizar grupos.
Puede especificar derechos de acceso para la cuenta de usuario.
Sin embargo, para simplificar la administración, le recomendamos que (en la mayoría de los casos) asigne derechos de acceso a las cuentas de grupo. La asignación de derechos de acceso a cada usuario individual se vuelve rápidamente muy difícil de administrar (las excepciones son determinados usuarios del sistema cuando solo existen una o dos instancias).
Cuentas de grupo Las cuentas de grupo son colecciones de usuarios u otros grupos. Se utilizan para simplificar la administración, ya que un cambio en los derechos de acceso asignados a un grupo se aplica automáticamente a todos los usuarios de ese grupo. Un usuario no tiene que pertenecer a ningún grupo, pero a menudo pertenece a varios.
En CRX, un grupo tiene las siguientes propiedades:
Derechos de acceso CRX utiliza derechos de acceso para controlar el acceso a áreas específicas del repositorio.
Esto se realiza asignando privilegios para permitir o denegar el acceso a un recurso (nodo o ruta) en el repositorio. Dado que se pueden asignar varios privilegios, estos deben evaluarse para determinar qué combinación es aplicable a la solicitud actual.
CRX le permite configurar los derechos de acceso para las cuentas de usuario y de grupo. Los mismos principios básicos de evaluación se aplican a ambos.
Implementaciones CRX control de acceso definido por JSR-283.
Se configura una instalación estándar de un repositorio CRX para utilizar listas de control de acceso basadas en recursos. Esta es una posible implementación del control de acceso JSR-283 y una de las implementaciones presentes con Jackrabbit.
CRX utiliza dos conceptos clave al evaluar los derechos de acceso:
A principal es una entidad que cuenta con derechos de acceso. Las entidades principales incluyen:
Una cuenta de usuario
Una cuenta de grupo
Si una cuenta de usuario pertenece a uno o más grupos, también se asocia a cada una de esas entidades de seguridad de grupo.
A sujeto se utiliza para representar el origen de una solicitud.
Se utiliza para consolidar los derechos de acceso aplicables a esa solicitud. Estas se toman de:
Principal de usuario
Los derechos que asigna directamente a la cuenta de usuario.
Todas las entidades de seguridad de grupo asociadas a ese usuario
Todos los derechos asignados a cualquiera de los grupos a los que pertenece el usuario.
A continuación, el resultado se utiliza para permitir o denegar el acceso al recurso solicitado.
En CRX, el asunto depende de lo siguiente:
La lista de derechos de acceso aplicables al sujeto de ensayo se elabora a partir de:
Cuando CRX administra la solicitud, compara la solicitud de acceso del asunto con la lista de control de acceso del nodo del repositorio:
Así que si Linda solicita actualizar el /features
en la siguiente estructura de repositorio:
Los derechos de acceso en CRX se evalúan de la siguiente manera:
Las entidades de seguridad de usuario siempre tienen prioridad sobre las de grupo, independientemente de:
Para un principal determinado existe (como máximo) 1 entrada denegada y 1 entrada permitida en un nodo determinado. La implementación siempre borra las entradas redundantes y se asegura de que el mismo privilegio no aparezca en las entradas de permiso y de denegación.
Este proceso de evaluación es adecuado para el control de acceso basado en recursos de una instalación CRX estándar.
Tomando dos ejemplos donde el usuario aUser
es miembro del grupo aGroup
:
+ parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ grandChildNode
En el caso anterior:
aUser
no tiene permiso de escritura en grandChildNode
. + parentNode
+ acl
+ ace: aUser - deny - write
+ childNode
+ acl
+ ace: aGroup - allow - write
+ ace: aUser - deny - write
+ grandChildNode
En este caso:
aUser
no tiene permiso de escritura en grandChildNode
.aUser
es redundante.Los derechos de acceso de varios principales de grupo se evalúan en función de su orden, tanto dentro de la jerarquía como dentro de una sola lista de control de acceso.
En la tabla siguiente se enumeran algunas recomendaciones y prácticas recomendadas:
Recomendación... | Motivo... |
Usar grupos | Evite asignar derechos de acceso usuario por usuario. Esto se debe a varios motivos:
|
Sea positivo | Utilice siempre las instrucciones Allow para especificar los derechos de acceso del principal del grupo (siempre que sea posible). Evite utilizar una instrucción Deny. Las entidades de seguridad de grupo se evalúan en orden, tanto dentro de la jerarquía como en orden dentro de una sola lista de control de acceso. |
Manténgalo simple | Invertir algo de tiempo y reflexión en la configuración de una nueva instalación será una buena recompensa. La aplicación de una estructura clara simplificará el mantenimiento y la administración continuos, lo que garantiza que tanto sus compañeros actuales como los sucesores futuros puedan comprender fácilmente qué se está implementando. |
Probar | Utilice una instalación de prueba para practicar y asegurarse de que comprende las relaciones entre los distintos usuarios y grupos. |
Usuarios/grupos predeterminados | Actualice siempre Usuarios y grupos predeterminados inmediatamente después de la instalación para evitar problemas de seguridad. |
Se utiliza un cuadro de diálogo estándar para Administración de usuarios.
Debe haber iniciado sesión en el espacio de trabajo adecuado. A continuación, puede acceder al cuadro de diálogo desde los dos:
Propiedades
UserID
Nombre corto de la cuenta, que se utiliza al acceder a CRX.
Nombre principal
Un nombre de texto completo para la cuenta.
Contraseña
Necesario al acceder a CRX con esta cuenta.
ntlmhash
Se asigna automáticamente a cada cuenta nueva y se actualiza cuando se cambia la contraseña.
Puede agregar nuevas propiedades definiendo un nombre, tipo y valor. Haga clic en Guardar (símbolo de verificación verde) para cada nueva propiedad.
Miembros del grupo
Muestra todos los grupos a los que pertenece la cuenta. La columna Heredado indica la pertenencia que se ha heredado como resultado de la pertenencia a otro grupo.
Al hacer clic en un ID de grupo (cuando esté disponible) se abrirá el Administración de grupos para ese grupo.
Suplantadores
Con la funcionalidad Suplantar, un usuario puede trabajar en nombre de otro usuario.
Esto significa que una cuenta de usuario puede especificar otras cuentas (usuario o grupo) que pueden funcionar con su cuenta. En otras palabras, si el usuario B puede suplantar al usuario A, el usuario B puede realizar acciones utilizando los detalles completos de la cuenta del usuario A (incluidos el ID, el nombre y los derechos de acceso).
Esto permite a las cuentas de suplantación completar tareas como si estuvieran utilizando la cuenta que están suplantando; por ejemplo, durante una ausencia o para compartir una carga excesiva a corto plazo.
Si una cuenta suplanta a otra es muy difícil de ver. Los archivos de registro no contienen información sobre el hecho de que se haya producido una suplantación en los eventos. Por lo tanto, si el usuario B se hace pasar por el usuario A, todos los eventos parecerán realizados por el usuario A personalmente.
Abra el Administración de usuarios diálogo.
Clic Crear usuario.
A continuación, puede introducir las propiedades:
Haga clic en Guardar (símbolo de marca de verificación verde).
El cuadro de diálogo se expandirá para que pueda:
A veces, se puede observar una pérdida de rendimiento al registrar nuevos usuarios en instalaciones que tienen un número elevado de ambos:
Esto elimina el nodo de esta entidad de seguridad del repositorio.
Las entradas de derechos de acceso no se eliminan. Esto garantiza la integridad histórica.
Puede definir Propiedades para cuentas nuevas o existentes:
Las propiedades existentes se pueden eliminar con el símbolo de papelera.
A excepción de la contraseña, las propiedades no se pueden editar, se deben eliminar y volver a crear.
El Contraseña es una propiedad especial que se puede cambiar haciendo clic en el icono Cambiar contraseña vínculo.
También puede cambiar la contraseña a su propia cuenta de usuario desde el Seguridad en el Explorador de CRX.
Puede definir suplantadores para cuentas nuevas o existentes:
Abra el Administración de usuarios para la cuenta adecuada.
Especifique la cuenta que puede suplantar a esa cuenta.
Puede usar Examinar… para seleccionar una cuenta existente.
Haga clic en Guardar (símbolo de verificación verde) para la nueva propiedad.
Se utiliza un cuadro de diálogo estándar para Administración de grupos.
Debe haber iniciado sesión en el espacio de trabajo adecuado. A continuación, puede acceder al cuadro de diálogo desde los dos:
Propiedades
GroupID
Nombre abreviado de la cuenta de grupo.
Nombre principal
Un nombre de texto completo para la cuenta de grupo.
Puede agregar nuevas propiedades definiendo un nombre, tipo y valor. Haga clic en Guardar (símbolo de verificación verde) para cada nueva propiedad.
Miembros
Puede agregar usuarios u otros grupos como miembros de este grupo.
Miembros del grupo
Muestra todos los grupos a los que pertenece la cuenta de grupo actual. La columna Heredado indica la pertenencia que se ha heredado como resultado de la pertenencia a otro grupo.
Al hacer clic en un GroupID, se abrirá el cuadro de diálogo de ese grupo.
Miembros
Enumera todas las cuentas (usuarios o grupos) que son miembros del grupo actual.
El Heredado indica la pertenencia que se ha heredado como resultado de la pertenencia a otro grupo.
Cuando se asigna la función Propietario, Editor o Visualizador a un usuario de cualquier carpeta de recursos, se crea un nuevo grupo. El nombre del grupo tiene el formato mac-default-<foldername>
para cada carpeta en la que se definen las funciones.
Abra el Administración de grupos diálogo.
Clic Crear grupo.
A continuación, puede introducir las propiedades:
Haga clic en Guardar (símbolo de marca de verificación verde).
El cuadro de diálogo se expandirá para que pueda:
Esto elimina el nodo de esta entidad de seguridad del repositorio.
Las entradas de derechos de acceso no se eliminan. Esto garantiza la integridad histórica.
Puede definir Propiedades para cuentas nuevas o existentes:
Las propiedades existentes se pueden eliminar con el símbolo de papelera.
Puede agregar miembros al grupo actual:
Abra el Administración de grupos para la cuenta adecuada.
O bien, haga lo siguiente:
Haga clic en Guardar (símbolo de verificación verde) para la nueva propiedad.
O elimine un miembro existente con el símbolo de papelera.
Con el Control de acceso pestaña del CRXDE Lite puede definir las políticas de control de acceso y asignar los privilegios relacionados.
Por ejemplo, para Ruta actual seleccione el recurso necesario en el panel izquierdo, la pestaña Control de acceso en el panel inferior derecho:
Las directivas se clasifican de acuerdo con:
Políticas de control de acceso aplicables
Estas políticas se pueden aplicar.
Son directivas que están disponibles para crear una directiva local. Una vez seleccionada y agregada una directiva aplicable, se convierte en una directiva local.
Políticas de control de acceso local
Son directivas de control de acceso que ha aplicado. A continuación, puede actualizarlas, pedirlas o eliminarlas.
Una directiva local anulará cualquier directiva heredada del elemento principal.
Políticas de control de acceso efectivas
Estas son las políticas de control de acceso que ahora están en vigor para cualquier solicitud de acceso. Muestran las directivas agregadas derivadas tanto de las directivas locales como de las heredadas del elemento principal.
Se pueden seleccionar las políticas para:
Ruta actual
Como en el ejemplo anterior, seleccione un recurso dentro del repositorio. Se mostrarán las políticas para esta "ruta actual".
Repositorio
Selecciona el control de acceso de nivel de repositorio. Por ejemplo, al configurar la variable jcr:namespaceManagement
, que solo es relevante para el repositorio, no para un nodo.
Principal
Un principal registrado en el repositorio.
Puede escribir en el campo Principal nombre o haga clic en el icono a la derecha del campo para abrir Seleccionar principal diálogo.
Esto le permite Buscar para un Usuario o Grupo. Seleccione el principal requerido de la lista resultante y haga clic en OK para volver a llevar el valor al cuadro de diálogo anterior.
Para simplificar la administración, le recomendamos que asigne derechos de acceso a las cuentas de grupo, no a las cuentas de usuario individuales.
Es más fácil administrar algunos grupos que varias cuentas de usuario.
Los siguientes privilegios están disponibles para seleccionarlos al agregar una entrada de control de acceso (consulte la API de seguridad para obtener información detallada):
Nombre de privilegio | Lo que controla el privilegio de... |
---|---|
jcr:read |
Recupere un nodo y lea sus propiedades y sus valores. |
rep:write |
Se trata de un privilegio agregado específico de jackrabbit de jcr:write y jcr:nodeTypeManagement. |
jcr:all |
Es un privilegio agregado que contiene todos los demás privilegios predefinidos. |
Avanzado | |
crx:replicate |
Realice la replicación de un nodo. |
jcr:addChildNodes |
Crear nodos secundarios de un nodo. |
jcr:lifecycleManagement |
Realizar operaciones del ciclo vital en un nodo. |
jcr:lockManagement |
Bloquear y desbloquear un nodo; actualizar un bloqueo. |
jcr:modifyAccessControl |
Modificar las directivas de control de acceso de un nodo. |
jcr:modifyProperties |
Cree, modifique y elimine las propiedades de un nodo. |
jcr:namespaceManagement |
Registrar, anular el registro y modificar definiciones de área de nombres. |
jcr:nodeTypeDefinitionManagement |
Importe definiciones de tipo de nodo al repositorio. |
jcr:nodeTypeManagement |
Añada y elimine tipos de nodos de mezcla y cambie el tipo de nodo principal de un nodo. Esto también incluye cualquier llamada a los métodos de importación Node.addNode y XML donde el tipo mixin o principal del nuevo nodo se especifica explícitamente. |
jcr:readAccessControl |
Leer la directiva de control de acceso de un nodo. |
jcr:removeChildNodes |
Quitar nodos secundarios de un nodo. |
jcr:removeNode |
Elimine un nodo. |
jcr:retentionManagement |
Realizar operaciones de administración de retención en un nodo. |
jcr:versionManagement |
Realizar operaciones de versiones en un nodo. |
jcr:workspaceManagement |
Creación y eliminación de espacios de trabajo mediante la API JCR. |
jcr:write |
Se trata de un privilegio agregado que contiene: - jcr:modifyProperties - jcr:addChildNodes - jcr:removeNode - jcr:removeChildNodes |
rep:privilegeManagement |
Registrar nuevo privilegio. |
También puede registrar nuevos privilegios:
En la barra de herramientas, seleccione Herramientas, entonces Privilegios para mostrar los privilegios registrados actualmente.
Utilice el Registrar privilegio icono (+) para abrir el cuadro de diálogo y definir un nuevo privilegio:
Clic OK para guardar. El privilegio ahora estará disponible para su selección.
Seleccione el recurso y abra Control de acceso pestaña.
Para añadir una nueva Políticas de control de acceso local, haga clic en + en la parte derecha del icono Política de control de acceso aplicable lista:
Aparece una nueva entrada debajo de Políticas de control de acceso local:
Haga clic en + icono para añadir una nueva entrada:
Actualmente, se necesita una solución para especificar una cadena vacía.
Para ello, debe utilizar "".
Defina la política de control de acceso y haga clic en OK para guardar. La nueva directiva:
CRX validará su selección; para un principal determinado existe (como máximo) 1 entrada denegada y 1 entrada permitida en un nodo determinado. La implementación siempre borra las entradas redundantes y se asegura de que el mismo privilegio no aparezca en las entradas de permiso y de denegación.
El orden en la lista indica el orden en que se aplican las directivas.
En la tabla de Políticas de control de acceso local seleccione la entrada requerida y arrástrela a la nueva posición de la tabla.
Los cambios se mostrarán en ambas tablas de Local y el Políticas de control de acceso efectivas.
En la barra de herramientas del CRXDE Lite, seleccione Herramientas, entonces Probar control de acceso….
Se abrirá un nuevo cuadro de diálogo en el panel superior derecho. Seleccione el Ruta y/o Principal que desee probar.
Clic Prueba para ver los resultados de su selección: