Seguridad de nivel de fila (RLS) en Power BI Report Server

La configuración de Seguridad de nivel de fila (RLS) en Power BI Report Server puede provocar la restricción del acceso a los datos para determinados usuarios. Los filtros restringen el acceso a los datos en el nivel de fila y se pueden definir en roles. Si usa los permisos predeterminados de Power BI Report Server, cualquier usuario que tenga permisos de publicador o administrador de contenido en el informe de Power BI podrá asignar miembros a los roles del informe en cuestión.

Puede configurar RLS para los informes que se han importado en Power BI con Power BI Desktop. También puede configurar RLS en los informes que usan DirectQuery, como SQL Server. Tenga en cuenta que RLS no se respetará si su conexión DirectQuery usa la autenticación integrada para lectores de informes. En el caso de las conexiones dinámicas de Analysis Services, puede configurar Seguridad de nivel de fila en el modelo local. La opción de seguridad no se muestra para conjuntos de datos de conexión dinámica.

Definir roles y reglas en Power BI Desktop

Puede definir roles y reglas en Power BI Desktop. Al publicar en Power BI, publicará también las definiciones de roles.

Para definir roles de seguridad:

  1. Importar datos en el informe de Power BI Desktop o configurar una conexión de DirectQuery.

    Nota

    No puede definir roles en Power BI Desktop para conexiones dinámicas de Analysis Services. Debe hacerlo en el modelo de Analysis Services.

  2. En la pestaña Modelado, seleccione Administrar roles.

    Captura de pantalla de la pestaña Modelado, resaltando Administrar roles

  3. En la ventana Administrar roles, seleccione Crear.

    Captura de pantalla de la ventana Administrar roles, resaltando Crear

  4. En Roles, proporcione un nombre para el rol.

    Nota

    No se puede definir un rol con una coma, por ejemplo, London,ParisRole.

  5. En Tablas, seleccione la tabla a la que quiere aplicar una regla DAX (expresión de análisis de datos).

  6. En el cuadro Expresión DAX de filtro de tabla, escriba las expresiones DAX. Esta expresión devuelve un valor de true o false. Por ejemplo: [Entity ID] = “Value”.

    Captura de pantalla de la ventana Administrar roles, resaltando una expresión DAX de ejemplo

    Nota

    Puede usar username() en esta expresión. Tenga en cuenta que username() tiene el formato DOMINIO\usuario en Power BI Desktop. En el servicio Power BI y en Power BI Report Server, está en el formato del nombre principal de usuario (UPN). Como alternativa, puede usar userprincipalname(), que siempre devuelve el usuario en el formato de su nombre principal de usuario, username@contoso.com.

  7. Después de haber creado la expresión DAX, seleccione la marca de verificación situada encima del cuadro de expresión para validar la expresión.

    Captura de pantalla de la ventana Expresión DAX de filtro de tabla, resaltando la marca de verificación

    Nota

    En este cuadro de expresión, utilice comas para separar los argumentos de la función DAX, incluso si usa una configuración regional que normalmente usa separadores de punto y coma (por ejemplo, francés o alemán).

  8. Seleccione Guardar.

No puede asignar usuarios a un rol en Power BI Desktop. Los asigna en el servicio Power BI. Para habilitar la seguridad dinámica en Power BI Desktop, puede usar las funciones DAX username() y userprincipalname() . Las relaciones deben estar configuradas correctamente.

Filtrado cruzado bidireccional

De forma predeterminada, el filtrado de Seguridad de nivel de fila se lleva a cabo mediante filtros unidireccionales, independientemente de si las relaciones se establecen de forma unidireccional o bidireccional. Puede habilitar manualmente un filtro cruzado bidireccional con Seguridad de nivel de fila.

  • Seleccione la relación y marque la casilla Aplicar filtro de seguridad en ambas direcciones.

    Aplicación del filtro de seguridad

Marque la casilla al implementar la seguridad dinámica de nivel de fila en función del nombre de usuario o el id. de inicio de sesión.

Para obtener más información, vea las notas del producto Filtrado cruzado bidireccional con DirectQuery en Power BI Desktop y Protección del modelo semántico tabular de BI.

Validar los roles en Power BI Desktop

Después de haber creado los roles, pruebe sus resultados en Power BI Desktop.

  1. En la pestaña Modelado, seleccione Ver como.

    Captura de pantalla de la pestaña Modelado, resaltando Vista como

    Se abre la ventana Ver como roles, en la que se muestran los roles que ha creado.

    Captura de pantalla de la ventana Ver como roles con Ninguno seleccionado

  2. Seleccione un rol que haya creado. A continuación, elija Aceptar para aplicar ese rol.

    Los informes representan los datos pertinentes para ese rol.

  3. También puede seleccionar Otro usuario y proporcionar un usuario determinado.

    Captura de pantalla de la ventana Ver como roles con un usuario de ejemplo escrito

    Es mejor proporcionar el nombre principal de usuario (UPN), porque es el que usarán el servicio Power BI y Power BI Report Server.

    En Power BI Desktop, Otro usuario solo muestra otros resultados si usa la seguridad dinámica basada en las expresiones DAX. En este caso, debe incluir el nombre de usuario, así como el rol.

  4. Seleccione Aceptar.

    El informe se representa en función de lo que los filtros de RLS permiten al usuario ver.

    Nota

    La característica Ver como roles no funciona para los modelos de DirectQuery con inicio de sesión único (SSO) habilitado.

Adición de miembros a roles

Después de guardar el informe en Power BI Report Server, puede administrar la seguridad o agregar o quitar miembros del servidor. Solo los usuarios con permisos de publicador o administrador de contenido para el informe tienen la opción de Seguridad de nivel de fila disponible y sin sombrear.

Si el informe no tiene los roles necesarios, deberá abrirlo en Power BI Desktop, agregar o modificar los roles y volver a guardarlo en Power BI Report Server.

  1. En Power BI Desktop, guarde el informe en Power BI Report Server. Debe usar la versión de Power BI Desktop para Power BI Report Server.

  2. En Power BI Report Server, seleccione los puntos suspensivos ( ) que encontrará junto al informe.

  3. Seleccione Administrar>Seguridad de nivel de fila.

    Administración de Seguridad de nivel de fila

    En la página Seguridad de nivel de fila, puede agregar miembros a un rol que haya creado en Power BI Desktop.

  4. Para agregar un miembro, seleccione Agregar miembro.

  5. Escriba el usuario o grupo en el cuadro de texto en el formato de nombre de usuario (DOMINIO\usuario) y seleccione los roles que quiera asignarles. Este miembro tiene que estar dentro de su organización.

    Adición de un miembro a un rol

    Según cómo haya configurado Active Directory, también podrá escribir el nombre principal de usuario. En ese caso, el servidor de informes mostrará el nombre de usuario correspondiente en la lista.

  6. Haga clic en Aceptar para aplicarlo.

  7. Para quitar miembros, marque la casilla situada junto a sus nombres y seleccione Eliminar. Puede eliminar varios miembros al mismo tiempo.

    Eliminación de miembros

username() y userprincipalname()

Puede aprovechar las ventajas de las funciones DAX username() o userprincipalname() dentro del conjunto de datos. Puede usarlas dentro de expresiones en Power BI Desktop. Al publicar el modelo, Power BI Report Server las usará.

En Power BI Desktop, username() devolverá un usuario con el formato de DOMINIO\Usuario y userprincipalname() lo devolverá con el formato de user@contoso.com.

En Power BI Report Server, tanto username() y como userprincipalname() devuelven el nombre principal de usuario (UPN) del usuario, con un aspecto similar al de la dirección de correo electrónico.

Si usa la autenticación personalizada en Power BI Report Server, se devolverá el formato de nombre de usuario que haya configurado para los usuarios.

Consideraciones y limitaciones

Estas son las limitaciones actuales para Seguridad de nivel de fila en los modelos de Power BI.

Los usuarios que hayan elegido que los informes usen la función DAX username() podrán observar un comportamiento diferente; ahora, se devolverá el nombre principal de usuario (UPN), excepto al usar DirectQuery con la seguridad integrada. Puesto que en este escenario no se respeta RLS, el comportamiento será el mismo.

Solo puede definir RLS en conjuntos de datos creados con Power BI Desktop. Para habilitar RLS en conjuntos de datos creados con Excel, debe convertir primero los archivos en archivos de Power BI Desktop (PBIX). Obtenga más información sobre la conversión de archivos de Excel.

Solo se admiten las conexiones Extract, Transform, Load (ETL) y DirectQuery que usen credenciales almacenadas. Las conexiones dinámicas con Analysis Services y las conexiones DirectQuery que usen la autenticación integrada se gestionarán en el origen de datos subyacente.

Si usa la seguridad integrada con DirectQuery, es posible que sus usuarios observen que:

  • La característica RLS está inhabilitada y se devuelven todos los datos.
  • Los usuarios no pueden actualizar sus asignaciones de roles y reciben un error en la página Administrar RLS.
  • En el caso de la función DAX de nombre de usuario, continuará recibiendo el nombre de usuario como DOMINIO\usuario.

Los autores de informes no tendrán acceso para ver los datos del informe en Power BI Report Server hasta que se asignen algún rol según corresponda tras cargar el informe.

Las asignaciones de roles mediante la pertenencia a grupos solo se admiten cuando Power BI Report Server está configurado para ejecutarse con la autenticación NTLM o Kerberos. Los servidores que se ejecutan con autenticación personalizada o Windows Basic necesitan que los usuarios se asignen explícitamente a los roles.

Preguntas frecuentes

¿Puedo crear estos roles para orígenes de datos de Analysis Services?

Puede hacerlo si importa los datos a Power BI Desktop. Si usa una conexión dinámica, no podrá configurar RLS en el servicio Power BI. RLS se define en el modelo local de Analysis Services.

¿Puedo usar RLS para limitar las columnas o medidas accesibles por mis usuarios?

No. Si un usuario tiene acceso a una fila de datos determinada, ese usuario puede ver todas las columnas de datos de esa fila.

¿Permite RLS ocultar datos detallados pero dar acceso a datos resumidos en objetos visuales?

No, aunque proteja las filas de datos individuales, los usuarios siempre pueden ver los detalles o los datos resumidos.

¿Puedo agregar nuevos roles en Power BI Desktop si ya tengo roles existentes y miembros asignados?

Sí, si ya tiene definidos roles existentes y miembros asignados en Power BI Report Server, podrá realizar roles adicionales y volver a publicar el informe sin que ello afecte a las asignaciones actuales.

¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI