Administración de derechos de usuario, grupo y acceso

Habilitar el acceso a un repositorio de CRX implica varios temas:

  • Derechos de acceso: los conceptos de cómo se definen y evalúan

  • Administración de usuarios: administración de cuentas individuales utilizadas para el acceso

  • Administración de grupos: simplifique la administración de usuarios mediante la formación de grupos

  • Administración de derechos de acceso: definición de políticas que controlan la forma en que estos usuarios y grupos pueden acceder a los recursos

Los elementos básicos son:

User AccountsCRX autentica el acceso identificando y verificando a un usuario (por esa persona u otra aplicación) según los detalles que se encuentren en la cuenta de usuario.

En CRX, cada cuenta de usuario es un nodo del espacio de trabajo. Una cuenta de usuario de CRX tiene las siguientes propiedades:

  • Representa a un usuario de CRX.

  • Contiene un nombre de usuario y una contraseña.

  • Se aplica 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, 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 para cada usuario individual se torna muy difícil de administrar rápidamente (las excepciones son ciertos usuarios del sistema cuando solo existen una o dos instancias).

Cuentas de grupoLas cuentas de grupo son colecciones de usuarios y/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:

  • Representa a un grupo de usuarios con derechos de acceso comunes. Por ejemplo, autores o desarrolladores.

  • Se aplica a ese espacio de trabajo.

  • Puede tener miembros; pueden ser usuarios individuales u otros grupos.

  • La agrupación jerárquica se puede lograr con relaciones de miembros. No puede colocar un grupo directamente debajo de otro grupo en el repositorio.

  • Puede definir los derechos de acceso para todos los miembros del grupo.

Access RightsCRX utiliza los 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, deben evaluarse para determinar qué combinación es aplicable a la solicitud actual.

CRX le permite configurar los derechos de acceso tanto para las cuentas de usuario como de grupo. A continuación se aplican los mismos principios básicos de evaluación a ambos.

Cómo se evalúan los derechos de acceso

NOTA

CRX implementa control de acceso tal como se define en JSR-283.

Se ha configurado 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.

Temas y principios

CRX utiliza dos conceptos clave al evaluar los derechos de acceso:

  • Un principal es una entidad que tiene derechos de acceso. Los principales incluyen:

    • Una cuenta de usuario.

    • Una cuenta de grupo

      Si una cuenta de usuario pertenece a uno o varios grupos, también se asocia a cada una de esas entidades principales de grupo.

  • Se utiliza un asunto para representar el origen de una solicitud.

    Se utiliza para consolidar los derechos de acceso aplicables a esa solicitud. Estos son tomados de:

    • El principal del usuario

      Derechos que se asignan directamente a la cuenta de usuario.

    • Todos los grupos principales asociados a ese usuario

      Todos los derechos asignados a cualquiera de los grupos a los que pertenece el usuario.
      El resultado se utiliza para permitir o denegar el acceso al recurso solicitado.

Compilación de la lista de derechos de acceso para un sujeto

En CRX, el sujeto depende de:

  • el principal del usuario
  • todas las entidades principales de grupo asociadas a ese usuario

La lista de los derechos de acceso aplicables al sujeto se basa en:

  • los derechos que asigne directamente a la cuenta de usuario
  • más todos los derechos asignados a cualquiera de los grupos a los que pertenece el usuario

chlimage_1-307

NOTA
  • CRX no tiene en cuenta ninguna jerarquía de usuarios cuando compila la lista.
  • CRX utiliza una jerarquía de grupos solo cuando se incluye un grupo como miembro de otro grupo. No hay herencia automática de los permisos de grupo.
  • El orden en que especifique los grupos no afecta a los derechos de acceso.

Resolución de solicitudes y derechos de acceso

Cuando CRX gestiona la solicitud, compara la solicitud de acceso del sujeto con la lista de control de acceso en el nodo del repositorio:

Si Linda solicita actualizar el nodo /features en la siguiente estructura de repositorio:

chlimage_1-308

Orden de prioridad

Los derechos de acceso en CRX se evalúan de la siguiente manera:

  • Las entidades de seguridad de usuario siempre tienen prioridad sobre las entidades de seguridad de grupo, independientemente de:

    • su orden en la lista control de acceso
    • su posición en la jerarquía de nodos
  • Para una entidad de seguridad determinada existe (como máximo) 1 denegación y 1 permitir la entrada 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 permitir y denegar.

NOTA

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 se le concede 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 se le concede permiso de escritura en grandChildNode.

  • La segunda ACE para aUser es redundante.

Los derechos de acceso de varias entidades principales de grupo se evalúan en función de su orden, tanto dentro de la jerarquía como dentro de una única lista de control de acceso.

Prácticas recomendadas

En la tabla siguiente se lista algunas recomendaciones y prácticas recomendadas:

Recomendación... Motivo...
Utilizar grupos

Evite asignar derechos de acceso usuario por usuario. Hay varias razones para esto:

  • Tiene muchos más usuarios que grupos, por lo que los grupos simplifican la estructura.
  • Los grupos ayudan a proporcionar información general sobre todas las cuentas.
  • La herencia es más sencilla con los grupos.
  • Los usuarios van y vienen. Los grupos son de largo plazo.
Ser positivo

Utilice siempre las instrucciones Allow para especificar los derechos de acceso de la entidad de seguridad del grupo (siempre que sea posible). Evite utilizar una instrucción Denegar.

Las entidades principales de grupo se evalúan en orden, tanto dentro de la jerarquía como dentro de una sola lista de control de acceso.

Manténgalo simple

Invertir un poco de tiempo y pensamiento al configurar una nueva instalación será bien pagado.

La aplicación de una estructura clara simplificará el mantenimiento y la administración en curso, asegurando que tanto sus colegas actuales como los futuros sucesores puedan comprender fácilmente lo que se está implementando.

Probar Utilice una instalación de prueba para practicar y asegurarse de comprender las relaciones entre los distintos usuarios y grupos.
Usuarios/Grupos predeterminados Actualice siempre los usuarios y grupos predeterminados inmediatamente después de la instalación para evitar problemas de seguridad.

Administración de usuarios

Se utiliza un cuadro de diálogo estándar para Administración de usuarios.

Debe iniciar sesión en el espacio de trabajo correspondiente y, a continuación, puede acceder al cuadro de diálogo desde ambos:

  • el vínculo Administración de usuarios en la Consola principal de CRX
  • el menú Seguridad del Explorador de CRX

chlimage_1-309

Propiedades

  • Nombre
    UserIDShort de la cuenta, utilizado al acceder a CRX.

  • Principal
    NameNombre de texto completo de la cuenta.


  • ContraseñaNecesaria al acceder a CRX con esta cuenta.


  • ntlmhashSe asigna automáticamente a cada cuenta nueva y se actualiza cuando se cambia la contraseña.

  • Puede agregar nuevas propiedades definiendo un nombre, un tipo y un valor. Haga clic en Guardar (símbolo de visto verde) para cada nueva propiedad.

Pertenencia al grupoMuestra todos los grupos a los que pertenece la cuenta. La columna Heredada indica la pertenencia que se ha heredado como resultado de la pertenencia a otro grupo.

Al hacer clic en un GroupID (cuando esté disponible) se abrirá la Administración de grupos para ese grupo.

​SuplantadoresCon 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 se permite que el usuario B suplantara al usuario A, el usuario B puede realizar acciones utilizando todos los detalles de la cuenta del usuario A (incluidos el ID, el nombre y los derechos de acceso).

Esto permite que las cuentas del suplantador completen 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 se hace pasar por otra es muy difícil de ver. Los archivos de registro no contienen información sobre el hecho de que se ha producido una suplantación en los eventos. Por lo tanto, si el usuario B se está suplantando al usuario A, todos los eventos se verán como si fueran realizados personalmente por el usuario A.

Creación de una cuenta de usuario

  1. Abra el cuadro de diálogo Administración de usuarios.

  2. Haga clic en Crear usuario.

  3. A continuación, puede introducir las propiedades:

    • ​UserIDused como nombre de cuenta.
    • ​Contraseña necesaria al iniciar sesión.
    • Nombre principal para proporcionar un nombre de texto completo.
    • Rutas intermedias que se pueden utilizar para formar una estructura de árbol.
  4. Haga clic en Guardar (símbolo de visto verde).

  5. El cuadro de diálogo se expandirá para que pueda:

    1. Configure Propiedades.
    2. Consulte Pertenencia al grupo.
    3. Defina Suplantadores.
NOTA

A veces se puede ver una pérdida de rendimiento al registrar nuevos usuarios en instalaciones que tienen un número elevado de ambos:

  • usuarios
  • grupos con muchos miembros

Actualización de una cuenta de usuario

  1. Con el cuadro de diálogo Administración de usuarios abra la vista de lista de todas las cuentas.

  2. Navegue por la estructura de árbol.

  3. Haga clic en la cuenta requerida para abrirla y editarla.

  4. Realice un cambio y haga clic en Guardar (símbolo de marca de verificación verde) para esa entrada.

  5. Haga clic en Cerrar para finalizar o Lista… para volver a la lista de todas las cuentas de usuario.

Eliminación de una cuenta de usuario

  1. Con el cuadro de diálogo Administración de usuarios abra la vista de lista de todas las cuentas.

  2. Navegue por la estructura de árbol.

  3. Seleccione la cuenta requerida y haga clic en Eliminar usuario; la cuenta se eliminará inmediatamente.

NOTA

Esto elimina el nodo de esta entidad de seguridad del repositorio.

No se eliminan las entradas de derechos de acceso. Esto garantiza la integridad histórica.

Definición de propiedades

Puede definir Propiedades para cuentas nuevas o existentes:

  1. Abra el cuadro de diálogo Administración de usuarios para la cuenta adecuada.
  2. Defina un nombre de Propiedad.
  3. Seleccione Tipo en la lista desplegable.
  4. Defina el valor.
  5. Haga clic en Guardar (símbolo de clic verde) para la nueva propiedad.

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.

Cambio de la contraseña

La Contraseña es una propiedad especial que se puede cambiar haciendo clic en el vínculo Cambiar contraseña.

También puede cambiar la contraseña a su propia cuenta de usuario desde el menú Seguridad en el Explorador de CRX.

Definición de un suplantador

Puede definir los suplantadores para cuentas nuevas o existentes:

  1. Abra el cuadro de diálogo Administración de usuarios para la cuenta adecuada.

  2. Especifique la cuenta a la que se permitirá suplantar esa cuenta.

    Puede utilizar Examinar… para seleccionar una cuenta existente.

  3. Haga clic en Guardar (símbolo de visto verde) para la nueva propiedad.

Administración de grupos

Se utiliza un cuadro de diálogo estándar para Administración de grupos.

Debe iniciar sesión en el espacio de trabajo correspondiente y, a continuación, puede acceder al cuadro de diálogo desde ambos:

  • el vínculo Administración de grupos en la Consola principal de CRX
  • el menú Seguridad del Explorador de CRX

chlimage_1-47

Propiedades

  • Nombre
    GroupIDShort para la cuenta de grupo.

  • Principal
    Name Un nombre de texto completo para la cuenta de grupo.

  • Puede agregar nuevas propiedades definiendo un nombre, un tipo y un valor. Haga clic en Guardar (símbolo de visto verde) para cada nueva propiedad.


  • MiembrosPuede agregar usuarios u otros grupos como miembros de este grupo.

Pertenencia al grupoMuestra todos los grupos a los que pertenece la cuenta de grupo actual. La columna Heredada 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 para ese grupo.

​MiembrosEnumera todas las cuentas (usuarios y/o grupos) que son miembros del grupo actual.

La columna Heredada indica la pertenencia heredada como resultado de la pertenencia a otro grupo.

NOTA

Cuando se asigna la función Propietario, Editor o Visor a un usuario en 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.

Creación de una cuenta de grupo

  1. Abra el cuadro de diálogo Administración de grupos.

  2. Haga clic en Crear grupo.

  3. A continuación, puede introducir las propiedades:

    • Nombre principal para proporcionar un nombre de texto completo.
    • Rutas intermedias que se pueden utilizar para formar una estructura de árbol.
  4. Haga clic en Guardar (símbolo de visto verde).

  5. El cuadro de diálogo se expandirá para que pueda:

    1. Configure Propiedades.
    2. Consulte Pertenencia al grupo.
    3. Administrar Miembros.

Actualización de una cuenta de grupo

  1. Con el cuadro de diálogo Administración de grupos abra la vista de lista de todas las cuentas.

  2. Navegue por la estructura de árbol.

  3. Haga clic en la cuenta requerida para abrirla y editarla.

  4. Realice un cambio y haga clic en Guardar (símbolo de marca de verificación verde) para esa entrada.

  5. Haga clic en Cerrar para finalizar o Lista… para volver a la lista de todas las cuentas de grupo.

Eliminación de una cuenta de grupo

  1. Con el cuadro de diálogo Administración de grupos abra la vista de lista de todas las cuentas.

  2. Navegue por la estructura de árbol.

  3. Seleccione la cuenta requerida y haga clic en Eliminar grupo; la cuenta se eliminará inmediatamente.

NOTA

Esto elimina el nodo de esta entidad de seguridad del repositorio.

No se eliminan las entradas de derechos de acceso. Esto garantiza la integridad histórica.

Definición de propiedades

Puede definir Propiedades para cuentas nuevas o existentes:

  1. Abra el cuadro de diálogo Administración de grupos para la cuenta adecuada.
  2. Defina un nombre de Propiedad.
  3. Seleccione Tipo en la lista desplegable.
  4. Defina el valor.
  5. Haga clic en Guardar (símbolo de visto verde) para la nueva propiedad.

Las propiedades existentes se pueden eliminar con el símbolo de papelera.

Miembros

Puede agregar miembros al grupo actual:

  1. Abra el cuadro de diálogo Administración de grupos para la cuenta adecuada.

  2. O bien:

    • Introduzca el nombre del miembro requerido (cuenta de usuario o de grupo).
    • O utilice Examinar… para buscar y seleccionar el principal (cuenta de usuario o de grupo) que desee agregar.
  3. Haga clic en Guardar (símbolo de visto verde) para la nueva propiedad.

O elimine un miembro existente con el símbolo de papelera.

Administración de derechos de acceso

Con la ficha Control de acceso del CRXDE Lite puede definir las directivas de control de acceso y asignar los privilegios relacionados.

Por ejemplo, para Ruta actual seleccione el recurso necesario en el panel izquierdo, la ficha Control de acceso en el panel inferior derecho:

crx_accescontrol_tab

Las políticas se clasifican según:


  • Políticas de Control de acceso aplicablesEstas directivas se pueden aplicar.

    Son directivas disponibles para crear una directiva local. Una vez que selecciona y agrega una directiva aplicable, se convierte en una directiva local.


  • Directivas de Control de acceso localSon directivas de control de acceso que ha aplicado. A continuación, puede actualizarlos, ordenarlos o eliminarlos.

    Una directiva local anulará cualquier directiva heredada del elemento principal.

  • Políticas de Control de acceso efectivasSon
    las directivas de control de acceso que están actualmente en vigor para cualquier solicitud de acceso. Muestran las directivas agregadas derivadas de las políticas locales y de cualquier heredado del elemento principal.

Selección de directivas

Las directivas se pueden seleccionar para:

  • Ruta actualComo en el ejemplo anterior, seleccione un recurso dentro del repositorio.
    Se mostrarán las directivas para esta "ruta actual".


  • RepositorioSelecciona 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.


  • PrincipalPrincipal que está registrado en el repositorio.

    Puede escribir el nombre Principal o hacer clic en el icono a la derecha del campo para abrir el cuadro de diálogo Seleccionar entidad de seguridad.

    Esto le permite buscar un usuario o grupo. Seleccione el principal requerido de la lista resultante y haga clic en Aceptar para volver a llevar el valor al cuadro de diálogo anterior.

crx_accescontrol_selectmain

NOTA

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 muchas cuentas de usuario.

Privilegios

Los siguientes privilegios están disponibles para selección al agregar una entrada de control de acceso (consulte la API de seguridad para obtener más información):

Nombre del privilegio Que controla el privilegio para...
jcr:read Recupere un nodo y lea sus propiedades y sus valores.
rep:write Es un privilegio acumulado específico de jackrabbit de jcr:write y jcr:nodeTypeManagement.
jcr:all Es un privilegio acumulado que contiene todos los demás privilegios predefinidos.
Avanzado
crx:replicate Realizar la replicación de un nodo.
jcr:addChildNodes Cree nodos secundarios de un nodo.
jcr:lifecycleManagement Realizar operaciones de ciclo vital en un nodo.
jcr:lockManagement Bloquear y desbloquear un nodo; actualizar un candado.
jcr:modifyAccessControl Modifique las directivas de control de acceso de un nodo.
jcr:modifyProperties Cree, modifique y elimine las propiedades de un nodo.
jcr:namespaceManagement Registre, anule el registro y modifique las definiciones de Área de nombres.
jcr:nodeTypeDefinitionManagement Importar definiciones de tipo de nodo al repositorio.
jcr:nodeTypeManagement Añada y elimine los tipos de nodos de mezcla y cambie el tipo de nodo principal de un nodo. Esto también incluye todas las llamadas a los métodos de importación de Node.addNode y XML en las que se especifica explícitamente la mezcla o el tipo principal del nuevo nodo.
jcr:readAccessControl Lea 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 a través de la API de JCR.
jcr:write Es un privilegio acumulado que contiene:
- jcr:modifyProperties
- jcr:addChildNodes
- jcr:removeNode
- jcr:removeChildNodes
rep:privilegeManagement Registre un nuevo privilegio.

Registro de Nuevos Privilegios

También puede registrar nuevos privilegios:

  1. En la barra de herramientas, seleccione Herramientas, luego Privilegios para mostrar los privilegios registrados actualmente.

    ac_privilegios

  2. Utilice el icono Registrar privilegio (+) para abrir el cuadro de diálogo y definir un nuevo privilegio:

    ac_prieregister

  3. Haga clic en Aceptar para guardar. El privilegio ahora estará disponible para su selección.

Añadir una entrada de Control de acceso

  1. Seleccione el recurso y abra la ficha Control de acceso.

  2. Para agregar una nueva Directivas de Control de acceso local, haga clic en el icono + a la derecha de la lista Directiva de Control de acceso aplicable:

    crx_accescontrol_aplicable

  3. Aparece una nueva entrada en Directivas de Control de acceso local:

    crx_accescontrol_newlocal

  4. Haga clic en el icono + para agregar una nueva entrada:

    crx_accescontrol_addentry

    NOTA

    Actualmente se necesita una solución alternativa para especificar una cadena vacía.

    Para esto debe utilizar "".

  5. Defina la directiva de control de acceso y haga clic en Aceptar para guardar. La nueva directiva:

    • debe aparecer en Política de Control de acceso local
    • los cambios se reflejarán en las Políticas de Control de acceso efectivas.

CRX validará su selección; para una entidad de seguridad determinada existe (como máximo) 1 denegación y 1 permitir la entrada 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 permitir y denegar.

Ordenar directivas de Control de acceso local

El orden de la lista indica el orden en que se aplican las políticas.

  1. En la tabla de Directivas de Control de acceso local, seleccione la entrada requerida y arrástrela a la nueva posición de la tabla.

    crx_accescontrol_reorder

  2. Los cambios se mostrarán en las tablas de Local y Políticas de Control de acceso efectivas.

Eliminación de una directiva de Control de acceso

  1. En la tabla de Directivas de Control de acceso local haga clic en el icono rojo (-) a la derecha de la entrada.

  2. La entrada se eliminará de las tablas Local y Políticas de Control de acceso efectivas.

Prueba de una directiva de Control de acceso

  1. En la barra de herramientas del CRXDE Lite, seleccione Herramientas, luego Control de acceso de prueba….

  2. Se abre un nuevo cuadro de diálogo en el panel superior derecho. Seleccione la ruta y/o entidad de seguridad que desee probar.

  3. Haga clic en Prueba para ver los resultados de la selección:

    crx_accescontrol_test

En esta página