Suele ser necesario, que cuando hemos creado un report y lo hemos subido a un Workspace, tenemos que compartirlo con otras personas, que incluso pueden no tener cuenta de Power BI Pro. Para ello, la mejor opción es publicar el report de Power BI en una web.

Hay dos opciones:

  • Usando la opción de publicar con una cuenta PowerBI Pro. Esta opción tiene un numero limitado de generación de tokens de Embedido.
  • Usando una capacidad premium, ya sea PowerBI Embedded o PowerBI Premium. Si usamos esta opción, aqui teneis un post en el que hablaba de como ajustar el consumo en una capacidad premium.

En mi caso, os voy a explicar como hacer este despliegue, con una cuenta de PowerBI Pro y una web que desplegaremos en un AppService de Azure.

De paso, os dejo el enlace del report que he creado estos días sobre el Covid-19 y que he publicado en la siguiente web: https://spaincovidpowerbi.azurewebsites.net/

Como embedir el report de PowerBI en una web

Para hacer esto, podemos o bien usar la cuenta y contraseña de la cuenta y usar una app registrada en nuestro directorio de Azure.

Para empezar, vamos a descargar el código de la aplicación web de embedido que podemos encontrar en este repo de Github https://github.com/microsoft/PowerBI-Developer-Samples/tree/master/.NET%20Framework/App%20Owns%20Data

Este proyecto usa la API de PowerBI, para hacer login en nuestro workspace, crear un token sobre el report y mostrar el informe en un iframe en HTML.

Tenemos el web.config en el que vemos esta sección:

En ella debemos elegir que tipo de autenticación vamos a elegir: MasterUser o ServicePrincipal. Para mi caso, voy a elegir ServicePrincipal, porque mi usuario profesional tiene habilitada la autenticación Multifactor con doble autenticación en el móvil, y no es posible usarla para autenticarse con la API de PowerBI.

También hay que informar el workspaceId y el reportID que podemos obtenerlo del mismo portal de PowerBI, una vez publiquemos el informe.

Una vez registrada la app en nuestro directorio activo, le damos permisos al servicio de PowerBI:

En mi caso he dado todos los permisos para no tener ningún problema. Es posible que, una vez añadido los permisos, te pida confirmarlos con una cuenta que sea administrador del directorio activo.

Cogeremos la appId y lo informaremos en la sección del web.config anterior.

Debemos crear un nuevo secret para la app y rellenarlo en la sección correspondiente en el web.config.

También hay que informar el id de nuestro tenant.

Adicionalmente, hay que dar permisos al workspace una app registrada en el directorio activo de Azure. Para ello, vamos al portal de PowerBI y vamos a la configuración de acceso del workspace:

Y en la parte de acceso, podemos buscar la app que hemos registrado:

Resultado Final

Una vez hecho todo esto, ya tendriamos el report de PowerBI en una web, podemos lanzarla en local y podremos ver que el report embedido en el navegador:

Con esto listo, si creamos un appservice en nuestra suscripción de Azure, bastaría con publicar esta web y tendríamos todo listo.

Por último, volver a recordar que al ser un embedido con una cuenta de PowerBI pro, tenemos un numero de tokens de embedido limitado. Si optáramos por una capacidad premium, bastaría con asignarla a nuestro workspace desde el portal de PowerBI, y todo lo demás se haría exactamente igual que hemos hecho aquí.

¡Un saludo y espero que haya servido de ayuda!

Procesando…
¡Lo lograste! Ya estás en la lista.
Última modificación: febrero 18, 2021

Autor