Compartir a través de


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

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.

Un registro de una clase en Dataverse.

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:

Relación de contacto con la tabla de clases.

Configurar un informe o panel de Power BI

  1. Abra su informe o panel de Power BI en Power BI Desktop.

    Informe de Power BI de instructores.

  2. 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.

    Opción de modelo en Power BI.

  3. 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.

  4. 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.

  5. En la lista de selección inferior, seleccione la tabla de contactos y seleccione la columna Contacto.

  6. La cardinalidad indica Varios a uno (*:1). Cambie Dirección del filtro cruzado a Ambos.

    Edición de vínculo entre tablas.

  7. Seleccione Aceptar.

  8. Como estamos implementando la seguridad de nivel de fila (RLS), necesitamos crear nuestro rol. En la cinta superior Inicio, seleccione Administrar roles.

  9. En Roles, seleccione Crear. Asigne un nombre al rol. El escenario de ejemplo ha usado pagesuser.

  10. En la columna Tablas, seleccione contacto.

  11. 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().

    Administrar roles en Power BI.

  12. Seleccione Guardar y luego guarde su archivo.

  13. En la cinta Inicio, seleccione Publicar.

  14. 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

  1. 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.

  2. En el espacio de trabajo Páginas, seleccione la página web en la que desea insertar el informe.

  3. Agregue una sección al cuerpo de la página web.

  4. Elija el icono Power BI cuando se le solicite que elija qué componente va a agregar en la sección.

    Agregue una sección a una página web.

  5. Cuando el componente rellene la sección, seleccione en la esquina superior izquierda Editar Power BI.

  6. Seleccione Tipo de acceso. Las opciones son:

    1. Insertar para sus clientes: le permite compartir Power BI con usuarios externos sin una licencia de Power BI o una identidad de Microsoft Entra.

    2. 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.

    3. 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.

  7. 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.

    seleccionar informe.

  8. Para ver el código que ha insertado el informe o el panel, seleccione Editar código en la esquina superior derecha del estudio.

    Edite el código.

  9. 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.

    VS Code.

  10. 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.

  11. 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" %}
    
  12. Cierre la pestaña Visual Studio Code para la web.

  13. En el estudio de diseño de Power Pages, seleccione el componente de Power BI insertado y elija Editar Power BI.

  14. Desplácese hacia abajo para cambiar Aplicar roles a verdadero/sí.

  15. En el cuadro de texto Roles, escriba el nombre del rol que creó en Power BI Desktop.

    Agregue roles al componente de Power BI.

  16. 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.

  17. 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" %}
    
  18. Cierre la pestaña Visual Studio Code para volver al estudio de diseño.

  19. 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.

  20. 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:

    Informe en blanco.

    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.

  21. 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:

    Informe de clase en la página web.

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.