Procedimiento: Habilitar la seguridad de nivel de fila en Power BI en Power Pages
Al igual que Power Pages es la herramienta elegida para extender rápidamente su implementación de Microsoft Dataverse al público en forma de sitio web, Power BI es la herramienta elegida para representar elegantes visualizaciones basadas en datos. La belleza de Power Platform reside en su capacidad para combinar ambas cosas a la perfección. En el pasado, para representar un informe de Power BI en una página web, los administradores tenían que publicar el informe en la web e insertarlo en un iFrame. Aunque se aplicaran permisos de Páginas para bloquear la página con el informe, si una persona tuviera el vínculo utilizado para insertar el informe, cualquiera podría acceder a él fuera del sitio web.
El propósito de publicar en la web es permitir que cualquier persona en la web pueda consumir los datos e incluso volver a compartir el informe.
Advertencia
Cuando usa Publicar en la web, cualquier persona en Internet puede ver su informe u objeto visual publicado. La visualización no requiere autenticación. Incluye la visualización de los datos en el nivel de detalle que agregan sus informes. Antes de publicar un informe, asegúrese de que está de acuerdo en compartir los datos y visualizaciones públicamente. No publique información confidencial o de su propiedad. En caso de duda, consulte las directivas de la organización antes de publicarla.
Con Power BI Embedded, se pueden servir contextualmente componentes de Power BI a los usuarios, pasar filtros automáticos mediante el uso de un parámetro de filtro y habilitar capacidades de seguridad de nivel de fila para permitir a una organización asegurar realmente los datos visibles para los usuarios y mostrar solo lo que deben ver.
Nota
La seguridad de nivel de fila solo es compatible con Power BI Embedded.
Requisitos previos
- Inquilino con un ambiente Microsoft Dataverse y un sitio web Power Pages implementado.
- Una página web para insertar un informe o panel de Power BI.
- Datos profesionales relevantes almacenados en Dataverse.
- Power BI Desktop.
- Capacidad para publicar contenido de Power BI Embedded.
- Derechos de administración global del inquilino.
- Administrador global de inquilinos con rol Admin en el espacio de trabajo del servicio Power BI.
- Organización, no espacio de trabajo personal de Power BI personal.
- Registro/autenticación activado en el sitio web.
Escenario
Trabaja para un estudio de fitness en grupo y usa Dataverse para realizar un seguimiento de las clases de fitness en grupo y de su asistencia. Los instructores de fitness en grupo no residen en su inquilino, ya que cada uno se trata como un contratista. Su sitio web lo usarán estos instructores de fitness en grupo para registrarse y ver un historial de sus clases impartidas, su próxima programación y las tarifas de los asistentes. Sin embargo, solo deberían poder ver las clases que ellos mismos han impartido y no las de todos.
Los instructores se representan mediante registros de Contacto en Dataverse. Cuando acceden al sitio web de Power Pages, lo hacen como su registro Contacto. Los datos que necesitan ver en la página web proceden de nuestra tabla personalizada Clases. La tabla Clases tiene una relación N*:1 con un contacto, ya que el formulario de clases tiene un campo de búsqueda llamado Instructor, que es para la tabla de contactos.
Para que la seguridad de nivel de fila funcione para los usuarios de Power Pages (Contactos), es necesario que exista esa relación directa entre el Contacto y la tabla de la que se elabora el informe. A continuación, se muestra un modelo de datos de ejemplo de este escenario:
Configurar un informe o panel de Power BI
Abra su informe o panel de Power BI en Power BI Desktop.
Debemos cambiar la relación entre Contacto y nuestra tabla (Clases en este escenario) para usar el filtrado bidireccional. Para ello, seleccione la pestaña Modelo en el extremo izquierdo.
Seleccione la línea que vincula su tabla de contactos con la tabla que contiene los datos de su informe: en el caso del ejemplo, se trata de vbd_class, ya que estamos elaborando un informe sobre clases.
En la ventana Editar relación, hay dos listas de selección. En la parte superior, elija la tabla sobre la que va a elaborar el informe (vbd_class) y seleccione la columna que tiene el identificador único del registro.
En la lista de selección inferior, seleccione la tabla de contactos y seleccione la columna Contacto.
La cardinalidad indica Varios a uno (*:1). Cambie Dirección del filtro cruzado a Ambos.
Seleccione Aceptar.
Como estamos implementando la seguridad de nivel de fila (RLS), necesitamos crear nuestro rol. En la cinta superior Inicio, seleccione Administrar roles.
En Roles, seleccione Crear. Asigne un nombre al rol. El escenario de ejemplo ha usado pagesuser.
En la columna Tablas, seleccione contacto.
Rellene el cuadro de texto de la derecha con la expresión DAX:
[User Name] = username()
Nota
El campo
[Username]
está en la tabla de contactos y no es un nombre de usuario real. Hace referencia a la tabla adx_externalidentity que usa Power Pages. Tiene el GUID que se envía a Power BI en la función username().Seleccione Guardar y luego guarde su archivo.
En la cinta Inicio, seleccione Publicar.
Seleccione un espacio de trabajo de la organización de la que sea propietario y que vaya a usar la integración de Power Pages. Elija Seleccionar.
Configurar la integración de Power BI
Consulte Configurar la integración de Power BI para habilitar su sitio web para la integración de Power BI.
Incrustar informe de Power BI
Navegue hasta Power Pages. Busque la página web de Power Pages en la que va a insertar el informe y seleccione Editar para abrir el estudio de diseño de Power Pages.
En el espacio de trabajo Páginas, seleccione la página web en la que desea insertar el informe.
Agregue una sección al cuerpo de la página web.
Elija el icono Power BI cuando se le solicite que elija qué componente va a agregar en la sección.
Cuando el componente rellene la sección, seleccione en la esquina superior izquierda Editar Power BI.
Seleccione Tipo de acceso. Las opciones son:
Insertar para sus clientes: le permite compartir Power BI con usuarios externos sin una licencia de Power BI o una identidad de Microsoft Entra.
Insertar para su organización: usa la autenticación de Microsoft Entra para compartir el informe desde Power BI para que los usuarios internos puedan verlo.
Publicar en la web: permite a cualquier usuario de Internet acceder al informe y a los datos.
Precaución
Asegúrese de que no se trata de información confidencial.
Información adicional: Publicar en la web
Elija Insertar para sus clientes.
Seleccione el área de trabajo que contiene el informe o el panel, especifique el tipo como Informe o Panel y, a continuación, elija el informe o el panel en la última lista desplegable. Si se trata de un informe, debe especificar qué página está insertando.
Para ver el código que ha insertado el informe o el panel, seleccione Editar código en la esquina superior derecha del estudio.
Cuando se le solicite, seleccione Abrir Visual Studio Code. A la izquierda, en PowerPages (espacio de trabajo) el nombre de la página web de Power Pages tiene una lista desplegable para la página web. En esa sección verá un archivo .css, un archivo .js y la copia en HTML. Asegúrese de que se encuentra en el archivo de copia en HTML.
Seleccione CTRL + F y busque
{%
para que podamos identificar rápidamente el código que contiene la referencia a nuestro panel o informe de Power BI.{%
indica la apertura de una etiqueta, lo que crea lógica para el lenguaje Liquid. Liquid es nuestro puente entre Dataverse y con lo que los usuarios interactúan en el sitio web. Cuando usamos el editor de estudios para insertar componentes, se crea automáticamente un fragmento de código liquid en el código fuente de la página web. Puede obtener más información sobre la etiqueta liquid de Power BI aquí: Etiquetas liquid de Dataverse y Agregar informe de Power BI.La línea completa de código liquid que verá se parecerá a:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection" %}
Cierre la pestaña Visual Studio Code para la web.
En el estudio de diseño de Power Pages, seleccione el componente de Power BI insertado y elija Editar Power BI.
Desplácese hacia abajo para cambiar Aplicar roles a verdadero/sí.
En el cuadro de texto Roles, escriba el nombre del rol que creó en Power BI Desktop.
Para ver los cambios que ha realizado en el código que ha insertado el informe o el panel, vuelva a seleccionar Editar código en la esquina superior derecha del estudio.
La línea completa de código liquid que verá ahora se parecerá a:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection" roles:"pagesuser" %}
Cierre la pestaña Visual Studio Code para volver al estudio de diseño.
Obtenga una vista previa del informe o panel insertado resultante en su explorador seleccionando Sincronizar en la esquina superior derecha y, a continuación, Vista previa > Escritorio.
Para probar el informe, sin que ningún usuario haya iniciado sesión puede ver que se ha aplicado el RLS, ya que no se devuelve ningún registro navegando a la página web de Power Pages:
Hay datos subyacentes en este informe, ya que cuando lo visualiza desde Power BI Desktop sin el RLS aplicado, puede ver que hay varios registros en general, pero están relacionados con un registro de contacto.
Para comprobarlo con más detalle, si iniciamos sesión en la página web con un usuario que tiene un contacto correspondiente con datos relacionados, solo se podrán ver en la página web los registros relacionados con el usuario que ha iniciado sesión:
Resumen
Ha insertado un informe o panel de Power BI que usa seguridad de nivel de fila en su sitio web de Power Pages.
El panel de filtro aparece de forma predeterminada. Ocultar el panel de filtrado requiere JavaScript. Los pasos para hacerlo están documentados aquí: Agregar un informe o panel de Power BI a una página web en un portal.