Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Role-Based Access Control (RBAC) para GraphQL permite a los propietarios de api controlar quién puede acceder a qué tipos y operaciones de GraphQL. Esta característica de vista previa permite definir roles, asignar usuarios a esos roles y conceder explícitamente permisos para las operaciones de consulta y mutación en el nivel de esquema. RBAC está diseñado para ayudar a los propietarios de api a aplicar el acceso con privilegios mínimos y cumplir los requisitos comunes de los clientes para las API de GraphQL seguras.
GraphQL RBAC le ayuda a:
- Restricción del acceso a tipos de datos confidenciales
- Permitir el acceso de solo lectura sin permitir mutaciones
- Impedir que los usuarios no autorizados ejecuten consultas incluso si pueden invocar la API
- Administrar el acceso de forma centralizada a través de roles en lugar de permisos individuales
Habilitación de RBAC en graphQL API
Abra el elemento GraphQL.
Para activar RBAC, seleccione Administrar el acceso a datos de API (versión preliminar).
Confirme la habilitación de la característica.
Note
Existe un rol predeterminado con permisos de lectura y escritura Al eliminar el rol Predeterminado, se quita el acceso para el propietario del elemento Los usuarios deben pertenecer a un rol para acceder a los datos.
Creación de un rol personalizado
Puede crear roles con acceso completo de lectura y escritura o roles con acceso limitado. Los permisos surten efecto inmediatamente después de crear el rol.
Rol de acceso completo de lectura y escritura
Cree un rol con acceso completo de lectura y escritura a todos los datos.
Proporcione un nombre de rol válido.
Agregue uno o varios usuarios como miembros.
Para conceder al rol acceso a todos los datos, seleccione Todos los datos.
Para conceder permisos, seleccione una o varias acciones (consulta o mutación) para el rol.
Rol de acceso limitado
Cree un rol con acceso limitado a datos específicos.
- Para crear un rol con acceso pormenorizados, seleccione Nuevo y elija Datos seleccionados.
- Proporcione un nombre de rol válido.
- Agregue uno o varios usuarios como miembros.
- Para limitar el acceso en un nivel granular, seleccione Datos seleccionados.
- Para elegir las tablas que se van a agregar al rol, seleccione Examinar esquema de GraphQL.
Control de acceso a nivel de campo y de fila
Puede definir permisos más pormenorizados en el nivel de campo y fila de un rol.
Para actualizar el acceso pormenorizado, edite el rol y abra Más opciones (…).
Para ver y ajustar los permisos por campo, seleccione Seguridad de tipo. Puede ver todas las operaciones que el tipo seleccionado puede realizar para ese rol. Para cada operación, puedes seleccionar o desmarcar explícitamente cada campo.
Por ejemplo, para permitir que un rol lea todos los campos excepto Cuenta del tipo Clientes , vaya a Operaciones seleccionadas en Operaciones, elija la operación getCustomers (lectura) y, a continuación, en Permisos de inserción de campos, anule la selección del campo Cuenta .
Para controlar el acceso de nivel de fila, use el campo Expresiones para definir reglas de acceso de nivel de fila.
Errores de autorización
Cuando un usuario intenta una operación que no está permitida por sus roles asignados, se produce un error de autorización en la solicitud. Este comportamiento se aplica a:
- Mutaciones sin permiso
- Consultas sobre tipos no autorizados
- Cualquier acceso cuando el usuario no es miembro de un rol
¿Qué ocurre cuando no existen roles?
Si se quitan todos los roles (incluido el rol predeterminado):
- El usuario actual pierde el acceso a la API.
- Cualquier ejecución de una consulta de GraphQL falla por un error de autorización.
Este control asegura que el acceso se conceda de forma explícita y nunca se dé por sentado.