mayurkotlikar
Hola,
Esta es mi primera publicación. Si publiqué en el lugar equivocado, ayúdenme a publicar en el foro correcto.
Fondo:
En una aplicación web nuestra, que está autenticada, tenemos enlaces para descargar archivos PBIX. La idea era proporcionar un informe de Power BI que el usuario puede descargar y abrir con Power BI Desktop.
Una vez descargado, el usuario puede hacer clic en «Actualizar», que le solicitará las credenciales de usuario. El usuario se autentica, el informe se procesa con los datos disponibles para el usuario. Todo esto se manejó a través de Desktop.
La conexión se realiza a través de un servicio OData autorizado.
Ahora, nuestra intención es decir «incrustar» un informe, de modo que el usuario no tenga que descargar el informe, sino que pueda verlo en una página de la aplicación web.
Los usuarios que tenemos no vienen con ninguna suscripción propia a Azure o Power BI.
Mientras probaba la opción incrustada, aprovisioné el espacio de trabajo e importé el informe. Usé ese informe para incrustar y encontrar los siguientes problemas:
1. El informe se muestra, pero los datos visibles son los del usuario que «importó» el informe. es decir, mi cuenta y no el usuario que inició sesión
2. Miré varios QueryString o parámetros para el Embedded, pero no pude encontrar una manera de transmitir las credenciales o la información del usuario para consultar datos específicos del usuario.
3. No pude ver una opción para personalizar el conjunto de datos antes de la importación, de modo que el PBIX importado sea solo una plantilla o estructura en lugar de Estructura + Datos.
Pregunta:
¿Cuál es la forma de incrustar un informe de Power BI en una aplicación web para que el usuario autenticado pueda ver datos específicos? No pude encontrar ningún recurso.
Además, si no está integrado, ¿cuál es otra forma de respaldar el requisito básico de mostrar un informe en la aplicación web?
También exploré si puedo usar Direct Query en lugar del servicio OData, pero el requisito básico de enviar credenciales o información del usuario aún permanece.
Sería genial si alguien me pudiera indicar una solución sobre cómo se puede hacer esto.
Saludos,
~ Mayur
ankitpatira
@mayurkotlikar Lo que necesita es la seguridad de nivel de fila (RLS) implementada en su archivo pbix. Consulte esta publicación de blog que explica cómo implementar RLS para power bi embedded.
mayurkotlikar
Entonces, la seguridad de nivel de fila y la actualización del paquete Nuget funcionaron.
El único cambio que hice en el código fue pasar el nombre de usuario a través de PowerBIToken.CreateReportEmbedToken ().
ankitpatira
@mayurkotlikar Lo que necesita es la seguridad de nivel de fila (RLS) implementada en su archivo pbix. Consulte esta publicación de blog que explica cómo implementar RLS para power bi embedded.
mayurkotlikar
En respuesta a ankitpatira
Probé el ejemplo del enlace y no me funciona.
El informe siempre se presenta con todos los registros. Usé PowerBIToken.CreateReportEmbedToken para pasar el nombre de usuario como parámetro y seguí cada paso.
mayurkotlikar
En respuesta a ankitpatira
Gracias por el enlace, lo intentaré. No tenemos roles, pero puedo fingir uno.
La parte que no he entendido es el «token de la aplicación». No estoy seguro de cómo puedo pasar el token con el nombre de usuario: y el rol :.
¿Sabes cómo puedo enviarlo?
Para incrustado, solo uso la URL que obtengo del objeto Informe.