Compartir a través de


Asegura tu solución de construcción de API de datos

Data API Builder expone los datos a través de puntos de conexión REST y GraphQL. Proteger la API requiere atención a tres áreas principales: autenticación (¿quién llama?), autorización (¿qué pueden hacer?) y seguridad de transporte (¿está protegida la conexión?).

Ilustración del flujo de solicitud de un extremo a otro que muestra la autenticación, la autorización y el acceso a la base de datos.

Tres pilares de seguridad

Fundamento Preguntas que responde Concepto clave
Autenticación ¿Quién es el autor de la llamada? Validación de tokens de un proveedor de identidades
Autorización ¿Qué pueden hacer? Permisos basados en roles en entidades
Transporte ¿La conexión es segura? Cifrado TLS para todo el tráfico

Elección del proveedor de autenticación

Data API Builder admite varios proveedores de autenticación. Elija la que coincida con el escenario de implementación:

Provider Caso de uso Guía
Microsoft Entra ID (EntraID/AzureAD) Aplicaciones de producción mediante la identidad de Microsoft Configurar la autenticación Entra
JWT personalizado IdP de terceros (Okta, Auth0, Keycloak) Configuración de la autenticación JWT personalizada
App Service Aplicaciones que se ejecutan detrás de EasyAuth de Azure App Service (encabezados de plataforma) Configuración de la autenticación de App Service
Simulador Desarrollo y pruebas locales Configuración de la autenticación del simulador
Static Web Apps Aplicaciones con encabezados de autenticación SWA Configuración de la autenticación de App Service

Sugerencia

Comience con el proveedor del simulador durante el desarrollo para probar los permisos sin configurar un proveedor de identidades. Cambie a un proveedor de producción antes de implementarlo.

Autenticación

La autenticación comprueba la identidad del autor de la llamada. El generador de API de datos autentica las solicitudes mediante la validación de tokens de portador JWT (EntraID/AzureADCustom) o confiando en los encabezados de identidad proporcionados por la plataforma (AppServiceStaticWebApps). Simulator omite la validación externa para el desarrollo.

Ilustración de cómo los clientes se autentican en Data API Builder mediante tokens JWT.

Cómo funciona

  1. Para los proveedores JWT, el cliente adquiere un token del proveedor de identidades.
  2. El cliente envía el token en el Authorization: Bearer <token> encabezado (proveedores JWT) o la plataforma inserta encabezados de identidad (EasyAuth/SWA)
  3. Data API Builder valida el token o el encabezado de plataforma (emisor, audiencia, firma para proveedores JWT)
  4. DAB extrae los roles del usuario del token o del encabezado de identidad.

Referencia rápida

Configuración Description
runtime.host.authentication.provider Proveedor de autenticación (EntraID/AzureAD, Custom, AppService, StaticWebApps, ) Simulator
runtime.host.authentication.jwt.audience Declaración de audiencia esperada para los proveedores de JWT (no utilizada por AppService/StaticWebApps/Simulator)
runtime.host.authentication.jwt.issuer Emisor o autoridad esperados para proveedores JWT (no utilizados por AppService/StaticWebApps/Simulator)

Para obtener una configuración detallada, consulte Configuración de la autenticación de Id. de Entra de Microsoft.

Autorización

La autorización determina lo que puede hacer un usuario autenticado (o anónimo). Data API Builder usa el control de acceso basado en rol (RBAC) para restringir el acceso a entidades y acciones.

Ilustración de cómo data API Builder selecciona un rol y evalúa los permisos de una solicitud.

Cómo funciona

  1. DAB asigna un rol a la solicitud en función del token y los encabezados
  2. DAB busca los permisos de la entidad para ese rol
  3. Si el rol tiene permiso para la acción solicitada, DAB ejecuta la consulta.
  4. Si no es así, DAB devuelve una respuesta.403 Forbidden

Roles del sistema frente a roles de usuario

Tipo de rol Description
Anonymous Asignado cuando no hay ninguna identidad autenticada presente
Authenticated Se asigna cuando se autentica una solicitud (JWT aceptado o encabezado de plataforma de confianza) y no se selecciona ningún rol de usuario específico.
Roles de usuario Roles personalizados de la reclamación del token (o roles de plataforma), seleccionados a través del encabezado rolesX-MS-API-ROLE

Seguro de forma predeterminada

Las entidades no tienen permisos de forma predeterminada. Debe conceder explícitamente acceso:

{
  "entities": {
    "Book": {
      "permissions": [
        { "role": "authenticated", "actions": ["read"] }
      ]
    }
  }
}

Para obtener una configuración detallada, consulte Autorización y roles.

Seguridad de nivel de fila y de campo

Vaya más allá de los permisos de nivel de entidad con control de acceso detallado.

Característica Description Guía
Directivas de base de datos (seguridad de nivel de fila) Traducción de expresiones de directiva a predicados de consulta que filtran filas en función de afirmaciones o contexto de sesión Implementar seguridad a nivel de fila
Seguridad de nivel de campo Incluir o excluir columnas específicas por rol Acceso a campos

Seguridad de transporte y configuración

Seguridad de transporte

  • Uso de TLS para todas las conexiones: Cifrado del tráfico entre clientes y DAB
  • Deshabilitar versiones de TLS heredadas: solo se basa en TLS 1.2 y versiones posteriores
  • Uso de puntos de conexión HTTPS: nunca exponga DAB a través de HTTP sin cifrar en producción

Para más información, consulte Procedimientos recomendados de seguridad.

Seguridad de configuración

  • Almacenamiento de secretos en variables de entorno: uso @env('SECRET_NAME') en la configuración
  • Uso de Azure Key Vault: Referenciar secretos con @azure('key-vault-uri')
  • Nunca comprometas secretos: mantenerse dab-config.json libre de contraseñas y cadenas de conexión
{
  "data-source": {
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  }
}

Supervisión y actualizaciones

  • Supervisión del acceso: uso de Application Insights para realizar un seguimiento de las solicitudes y detectar anomalías
  • Revisión de registros: comprobación de intentos de autenticación con errores y denegaciones de permisos
  • Mantener DAB actualizado: aplique revisiones de seguridad actualizando a la versión más reciente.

Guías de inicio rápido

Tarea Guía
Configurar la autenticación de Microsoft Entra ID Configurar Entra authentication
Utiliza Okta o Auth0 Configuración de la autenticación JWT personalizada
Ejecutar en segundo plano de Azure App Service Configuración de la autenticación de App Service
Probar permisos localmente Configuración de la autenticación del simulador
Restringir filas por usuario Implementar la seguridad a nivel de fila
Descripción de la asignación de roles Autorización y roles