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.
El acceso anónimo a los datos permite que una aplicación Fabric exponga operaciones de datos seleccionadas a usuarios que no están conectados. Controlas este acceso a nivel de Fabric tenant y en cada modelo de datos. El acceso anónimo es una opción de autorización, no un sustituto de la autenticación. La misma aplicación puede proporcionar acceso público a algunas entidades mientras requiere que los usuarios inicien sesión en otras entidades u operaciones.
Importante
Cualquiera que pueda acceder a la URL de la app puede usar las operaciones asignadas al anonymous puesto. No expongas datos personales, confidenciales, financieros o internos de negocio a través de este puesto.
Casos de uso
Considera el acceso anónimo a los datos cuando una aplicación debe ofrecer funcionalidad limitada sin necesidad de iniciar sesión.
| Escenario | Acceso de ejemplo | Ámbito recomendado |
|---|---|---|
| Datos de referencia públicos | Consulta catálogos de productos, calendarios o conjuntos de datos públicos | read |
| Colección de comentarios | Envía comentarios o respuestas a encuestas | create |
El acceso anónimo no es apropiado cuando una aplicación debe identificar al usuario, hacer cumplir la propiedad o proporcionar acceso basándose en reclamaciones de identidad. Usa roles autenticados para esos escenarios.
Cómo funciona el acceso anónimo
El acceso anónimo a datos utiliza controles independientes:
- Configuración del inquilino: Un administrador de Fabric tenant concede acceso anónimo a datos para la organización o grupos de seguridad seleccionados.
-
Rol en el modelo de datos: Una entidad utiliza el
anonymousrol para definir las operaciones que los usuarios no autenticados pueden realizar.
El entorno de inquilinos es el límite a nivel organizacional. La configuración de la app permite que solicitudes anónimas lleguen al servicio de datos de la app. El rol de la entidad determina a qué datos y operaciones pueden acceder esas solicitudes. Activar solo uno o dos de estos controles no concede acceso anónimo.
Activar la configuración de inquilinos
Un administrador de Fabric tenant debe habilitar el acceso anónimo a los datos antes de que los desarrolladores de aplicaciones puedan utilizarlos. La configuración está deshabilitada de forma predeterminada.
Inicie sesión en el portal de administración de Fabric.
Seleccione Configuración de inquilino.
En aplicaciones de Fabric (vista previa), busca Acceso a datos anónimos.
Configure el interruptor en Habilitado.
Aplica la configuración a toda la organización o a grupos de seguridad específicos.
Seleccione Aplicar.
Los cambios pueden tardar unos minutos en hacer efecto. Cuando limites la configuración a grupos de seguridad, confirma que el desarrollador o el propietario de la app está incluido en un grupo permitido.
Define el acceso anónimo en un modelo de datos
Usa el @role decorador en una entidad y especifica anonymous como nombre del rol. El segundo argumento define las operaciones de datos permitidas: create, read, update, o delete.
Parameters
| Parameter | Tipo | Descripción |
|---|---|---|
roleName |
string |
El nombre del rol, como authenticated o un rol de aplicación personalizado |
actions |
string \| string[] |
Acción única o matriz: create, read, update, deleteo * para todos |
options |
object |
Objeto opcional con propiedades check, include y exclude |
El siguiente ejemplo permite a usuarios no autenticados leer anuncios públicos:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
export class Announcement {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
}
El anonymous rol no utiliza reclamaciones de identidad porque no hay ninguna identidad registrada disponible. Define el conjunto más limitado de operaciones que apoye tu escenario.
Permitir que los usuarios envíen datos
Para un formulario de retroalimentación, concede create acceso sin conceder read, update, o delete acceso:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text() comment!: string;
}
Este modelo permite a los usuarios enviar sus comentarios, pero no les permite ver o modificar las entradas enviadas.
Permitir múltiples operaciones
Pasar un array cuando un escenario requiere más de una operación:
import { boolean, entity, role, text, uuid } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', ['create', 'read', 'update'])
export class SharedTodo {
@uuid() id!: string;
@text() title!: string;
@boolean({ default: false }) completed!: boolean;
}
Cualquiera que tenga acceso a esta app puede crear, ver y actualizar todas las tareas compartidas. No pueden borrar tareas porque delete no está incluido. Utiliza permisos amplios como estos solo para datos públicos o temporales donde se espera que los usuarios compartan acceso.
Combina roles anónimos y autenticados
Aplica ambos roles a una entidad cuando los usuarios públicos y los que han iniciado sesión requieren permisos diferentes. Por ejemplo, cualquiera puede leer una entrada de blog, pero solo su propietario con inicio sesión puede cambiarla:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
@role('authenticated', ['create', 'update', 'delete'], {
policy: (claims, item) => claims.sub.eq(item.createdBy),
})
export class BlogPost {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
@text() createdBy!: string;
}
El rol anónimo permite lecturas públicas sin evaluar las reclamaciones de identidad. El rol autenticado utiliza las reclamaciones del usuario iniciado sesión para restringir cambios en el contenido que posee el usuario.
Guía de seguridad
- Concede el acceso mínimo requerido. Prefiero
readocreatesolo. Subvencionesupdateodeletesolo cuando el flujo de trabajo público lo requiera. - Limita los campos expuestos. Usa
includenuestrasexcludeopciones para impedir el acceso a campos que los usuarios anónimos no necesitan. Para más información, consulte Definir permisos de datos. - No dependas de la interfaz de la app para protegerte. Los permisos deben definirse en el modelo de datos porque los llamantes pueden enviar solicitudes sin usar tu frontend.
- Planifica para recibir aportaciones no fiables. Validar los datos enviados y diseñar operaciones públicas de escritura para spam, automatización y tráfico inesperado.
- Operación denegada por la prueba. Confirma que las operaciones omitidas del rol son rechazadas para usuarios sin sesión.
Desactivar el acceso anónimo
Para eliminar el acceso público de una aplicación:
- Elimina el
anonymousrol de cada modelo de datos. - Redespliega la app ejecutando
npx rayfin up.
Un administrador de inquilino también puede desactivar la configuración de inquilino para bloquear el acceso anónimo a todos los datos dentro de un inquilino y limitar el acceso a grupos de seguridad seleccionados.