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.
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?).
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.
Cómo funciona
- Para los proveedores JWT, el cliente adquiere un token del proveedor de identidades.
- El cliente envía el token en el
Authorization: Bearer <token>encabezado (proveedores JWT) o la plataforma inserta encabezados de identidad (EasyAuth/SWA) - Data API Builder valida el token o el encabezado de plataforma (emisor, audiencia, firma para proveedores JWT)
- 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.
Cómo funciona
- DAB asigna un rol a la solicitud en función del token y los encabezados
- DAB busca los permisos de la entidad para ese rol
- Si el rol tiene permiso para la acción solicitada, DAB ejecuta la consulta.
- 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.jsonlibre 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 |
Contenido relacionado
- Configuración de la autenticación de Microsoft Entra ID
- Autorización y roles
- Prácticas recomendadas de seguridad
- Referencia de configuración en tiempo de ejecución