Usa PowerBi API con tus credenciales y SimplePBI

Me pregunto cuantas veces las personas habrán querido probar algún script con la Power Bi Rest API. Algo simple y corto. Simplemente probar un request que podría llevar a otro. Ciertamente, dar los primeros pasos para utilizar la power bi rest api puede ser engañosa. Hay que configurar algunas cosas en Azure o hablar con departamento de IT para que lo haga.

SimplePBI nos ayuda a hacer más simple el uso de la API puesto que vuelve sencillos los requests de las operaciones, pero hasta ahora solo podíamos llegar a utilizarla con un service principal registrado en azure. Eso cambiará en este artículo.

SimplePBI es una librería sencilla que facilita el uso de la API REST de Power BI y la API REST de Fabric. Podríamos decir que es un wrapper que facilita escribir código de esas API. Para poder utilizarla y escribir scripts o automatizar procesos es necesario registrar una app en Azure y configurar algunas opciones. Sin embargo, muchas veces me encontré en situaciones que solo necesito obtener datos, validar opciones, correr un loop a partir de una respuesta, exportar un reporte, etc.

Para estos casos que no buscamos implementar un script totalmente productivo, sino comenzar a probar requests o ejecutar algo on demand hemos implementado una nueva forma de login.

Ahora podemos obtener un token que nos permita usar la API con solamente nuestras credenciales y aprobación de la organización. No necesitamos cambiar opciones ni registrar aplicaciones en Azure para probar requests y probar nuestras soluciones o hipótesis.

Veamos que simple que es:

Tryit es una nueva clase de token que abrirá un navegador con la web de login oficial de microsoft y dejará en pausa la consola. SimplePBI solicitará permisos sobre la organización para que sea efectiva la autenticación. Verán algo similar a esto:

Aquí detalla los requests que la librería puede usar de la rest api. SimplePBI tiene términos de servicio y privacidad que pueden leer en los hipervínculos del texto final. Para que otros usuarios además del administrador puedan usarlo, debemos checkear el "Consent on behalf of your organization" para consentir que los usuarios también puedan usar.

Puede que no vean ese cartel debido a que no tengan permisos sobre Entra ID en Azure. En dicho caso verían algo similar a esto:

Esto significa que necesitamos que un Administrador en Azure Entra ID en nuestra organización tiene que aprobar los permisos que SimplePBI-Login solicita para que podamos utilizar este tipo de acceso.

¿Qué sucede al aceptar y como permito a un usuario usarlo?

Damos permiso a que operaciones como "get reports" de la librería SimplePBI puedan ser utilizadas por usuarios específicos del Tenant/Organización. Esto sucede puesto que se crea una Aplicación Empresarial/Enterprise que podemos encontrar en Entra ID:

Dentro de SimplePBI-Login, podemos consentir permisos administrativos en caso de que no hayamos seleccionado el check cuando salió la primera pantalla desde "permisos".

Con eso tendremos la seguridad configurada como Admin de Azure.

Ya aceptado el acceso para que SimplePBI pueda loguear con credenciales en su organización, el navegador simplemente mostrará un mensaje similar a este:

Authentication completed. You can close this window now.

Nuestra consola reanudará para que sigamos escribiendo código como normalmente lo haríamos con la librería. Ejemplo obteniendo áreas de trabajo:

De esta forma ya tenemos el entorno listo. Cada vez que vayamos a probar algo no necesitamos configuraciones en el Tenant ni una App Registrada, basta con un token.Tryit() y loguear en el navegador.

A diferencia del botón TryIt en la documentación de Microsoft. Usando la librería estamos en un entorno donde escribimos código y probamos potenciales scripts y automatizaciones. El botón en la web solo serviría para ver si el request devuelve una cosa o la otra.

A modo de recordatorio dejo el enlace a la documentación de la librería.