Protección de las API de GraphQL en Microsoft Fabric con Role-Based Access Control (versión preliminar)

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

  1. Abra el elemento GraphQL.

  2. Para activar RBAC, seleccione Administrar el acceso a datos de API (versión preliminar).

    Captura de pantalla que muestra administrar el acceso a datos de API (versión preliminar) en la barra de herramientas.

  3. 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.

  1. Para crear un rol, seleccione Nuevo. Captura de pantalla que muestra la creación de un nuevo rol con acceso de lectura y escritura a todos los datos.

  2. Proporcione un nombre de rol válido.

  3. Agregue uno o varios usuarios como miembros.

  4. Para conceder al rol acceso a todos los datos, seleccione Todos los datos.

  5. 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.

  1. Para crear un rol con acceso pormenorizados, seleccione Nuevo y elija Datos seleccionados. Captura de pantalla que muestra la creación de un nuevo rol con acceso limitado a los datos seleccionados
  2. Proporcione un nombre de rol válido.
  3. Agregue uno o varios usuarios como miembros.
  4. Para limitar el acceso en un nivel granular, seleccione Datos seleccionados.
  5. 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.

  1. Para actualizar el acceso pormenorizado, edite el rol y abra Más opciones (…).

  2. 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.

    Captura de pantalla que muestra la edición del rol para actualizar el acceso granular.

    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 .

    Captura de pantalla que muestra cómo habilitar la seguridad de tipos.

  3. Para controlar el acceso de nivel de fila, use el campo Expresiones para definir reglas de acceso de nivel de fila.

    Captura de pantalla que muestra cómo configurar la seguridad de tipos y usar expresiones

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.

Pasos siguientes