Saltar al contenido principal

Gestión del acceso de usuarios

Resumen

El sistema de gestión del acceso de usuarios está diseñado para un control detallado sobre quién tiene acceso a qué recursos de la aplicación. Se utiliza un modelo de control de acceso basado en roles (RBAC), donde los usuarios se asignan a grupos y los derechos de acceso se otorgan a esos grupos. Esto asegura una gestión de acceso eficiente y segura.

Gestión de grupos

Creación de un nuevo grupo

  1. Ir a la sección de grupos:
    • Abra la pestaña Groups.
  2. Agregar un grupo:
    • Haga clic en el botón Create Group.
    • Proporcione un nombre descriptivo y un marcador.
    • Asigne derechos de acceso iniciales.
advertencia

En un nuevo proyecto, siempre se crea un grupo Guest por defecto.

Herencia de derechos de acceso

En la pestaña "Grupos" se presentan los grupos previamente creados de forma jerárquica, el nuevo grupo creado se puede conectar a un grupo ya existente para que herede los derechos del grupo padre.

advertencia

Si en el grupo padre hay una restricción en la ruta, y en el grupo hijo la misma restricción se sobrescribe, entonces la restricción final será la del grupo hijo, pero solo si en el padre no se ha especificado la opción "Permiso final".

Único grupo en la cadena

La especificación de un grupo solo es posible si no se ha seleccionado ni un grupo padre ni un grupo hijo.

Modificación de derechos de acceso

La pestaña "Permissions" es clave para editar los derechos de acceso.

Agrupación de derechos

Si anteriormente ha especificado un grupo padre para la herencia de derechos, toda la información sobre los accesos establecidos se colocará en la tabla superior, la edición de los derechos heredados está prohibida. Los derechos que incluyen excepciones y los derechos no utilizados se agrupan por separado en la misma tabla.

Gestión de derechos de acceso

Creación de derechos de acceso

Para comenzar a crear un derecho, haga clic en el botón "Crear derecho" en la pestaña "Permissions".

Un derecho de acceso consiste en una combinación de método y ruta.

remove
  1. Crear un conjunto mínimo de permisos:
    • Esta opción permite minimizar la tarea de creación de derechos, generando el conjunto mínimo necesario de permisos.
advertencia

Disponible solo si no hay permisos previamente establecidos.

  1. Establecer restricciones en la emisión de datos:
    • La opción es aplicable solo cuando se selecciona "Crear un conjunto mínimo de permisos", establece una restricción en la emisión de datos (10 registros).
  2. Sección API:
    • Parámetro obligatorio, si se crea un nuevo acceso, indica la ruta para seleccionar permisos.
  3. Ruta:
    • La selección está disponible solo después de elegir la sección API, especifica la ruta para establecer derechos.
  4. Nombre:
    • Campo obligatorio para el nombre del derecho.
  5. Tabla "Permissions":
    • La tabla representa una selección de métodos HTTP para la ruta especificada, con opciones de "sin restricciones" y "con restricción en la cantidad de registros".
advertencia

Para cualquier ruta en la tabla siempre se indican 4 métodos: GET, POST, PUT, DELETE.

  1. Condiciones adicionales Estas condiciones no aparecen para todas las rutas, sino solo para las "de listado" y permiten configurar excepciones en los documentos obtenidos.

    • Si, por ejemplo, necesita proporcionar acceso a todas las páginas, pero hacer una excepción, puede hacer clic en el botón "Seleccione qué datos desea excluir". En la ventana adicional que se abre, puede seleccionar los datos a los que desea restringir el acceso. Por ejemplo, para la sección API - páginas, se mostrará una lista jerárquica de páginas, para la sección de atributos - respectivamente, atributos.

    Lista de rutas disponibles con condiciones adicionales:

    • /api/content/admins/all
    • /api/content/attributes-sets
    • /api/content/attributes-sets/{marker}/attributes
    • /api/content/pages
    • /api/content/blocks
    • /api/content/forms
    • /api/content/events/subscriptions
    • /api/content/orders-storage
    • /api/content/product-statuses
    • /api/content/templates
    • /api/content/template-previews
    • /api/content/integration-collections

    Después de seleccionar los datos para excluir, aparecerán dos nuevas opciones: "Excluir" - la opción indica que los datos seleccionados queremos excluir. "Derecho final" - este derecho no se hereda en toda la cadena de grupos hijos (la opción se vuelve disponible solo si se selecciona la opción "Excluir").

advertencia

La selección de condiciones adicionales depende de la ruta seleccionada y no siempre está disponible. Si hay tal selección, se marca con un indicador - "Exceptions available for selection".

exceptions_marker

Lista de rutas disponibles para configuración

Por defecto, los nuevos derechos van a la sección "Derechos no utilizados", para activarlos, basta con seleccionarlos, haciendo clic en la casilla a la izquierda del nombre.

Para abrir el editor, se utiliza el botón edit

Para eliminar, utilice remove

Comprensión de los derechos de acceso

Los derechos de acceso son configuraciones detalladas que determinan qué acciones puede realizar un grupo con ciertos recursos. Están organizados por secciones de API y pueden ser refinados adicionalmente mediante condiciones.

Búsqueda de derechos en la tabla

La búsqueda de los derechos necesarios en la tabla se realiza ingresando texto en el campo "Buscar derechos", seleccionando las secciones de API necesarias en el selector y eligiendo la opción "Seleccionar no utilizados".

Derechos finales

La pestaña de derechos finales es una tabla informativa con filtrado por secciones de API para facilitar la búsqueda.

Ejemplo: restricción de acceso a productos

  • Sección API: products
  • Derechos de acceso:
    • Lectura (Read): Sí
    • Adición (Add): No
    • Edición (Edit): No
    • Eliminación (Delete): No

Integración con API

El sistema proporciona una API para la gestión programática de usuarios, grupos y derechos de acceso. A continuación se presentan ejemplos de operaciones típicas.

Ejemplo de solicitud

/api/content/attributes-sets/product_1/attributes

Respuesta, si la autorización es sin token (grupo Guest):

[
{
"type": "image",
"value": {},
"marker": "image",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "textWithHeader",
"value": {},
"marker": "textheader",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "text header"
},
"additionalFields": []
},
{
"type": "image",
"value": {},
"marker": "image1",
"position": 18,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": 0,
"maxY": 0
},
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": 0,
"minUnits": "mb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
}
]

Respuesta, con autorización, donde en los derechos se permiten todos los campos del atributo:

[
{
"type": "image",
"value": {},
"marker": "image",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "textWithHeader",
"value": {},
"marker": "textheader",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "text header"
},
"additionalFields": []
},
{
"type": "image",
"value": {},
"marker": "image1",
"position": 18,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": 0,
"maxY": 0
},
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": 0,
"minUnits": "mb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "float",
"value": {},
"marker": "price",
"position": 19,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "price"
},
"additionalFields": []
}
]

Como podemos ver, el usuario autorizado recibió el campo adicional price.