Azure DevOps para tus desarrollos en Power BI (V). Qué necesito para que funcione. Permisos, permisos everywhere

Mar Lizana
7 min readMar 12, 2024

--

¡Seguimos con esta serie de artículos! En ellos pretendemos que te introduzcas en el mundo de Azure DevOps, que será nuestro principal aliado en esta aventura. La semana pasada hicimos un breve recorrido por los elementos de Azure DevOps que íbamos a usar. Esta semana dejaremos lista la configuración de todas las piezas para poder empezar a trabajar.

Como son varios temas y no queremos dejarte sin aliento, hemos preferido separarlos en artículos independientes. Nuestra intención es entregarte uno nuevo cada semana (o cada vez que podamos).

1. Introducción

2. ¿Qué es eso de DevOps?

3. Herramientas que vamos a usar

4. Qué podemos encontrar en Azure DevOps

5. Qué necesito para que esto funcione ← ESTAMOS AQUÍ

6. Pipeline para descomprimir el report

7. Pipeline para las buenas prácticas del report

8. Pipeline de despliegue del report

9. Pipeline de buenas prácticas del modelo semántico

10. Pipeline de despliegue del modelo semántico

11. Conclusiones

Esta serie de artículos los hemos escrito conjuntamente Adrià Belmonte y una servidora y son la fusión de juntar un arquitecto cloud con una ingeniera de datos.

¡Cualquier duda o propuesta de mejora no dudes en dejárnoslo en comentarios!

¡¡Seguimos!!

Permisos, permisos everywhere

Para la parte de permisos vamos a necesitar añadir otro elemento a nueva aventura: Entra ID. Entra ID (antes conocido como Azure Active Directory) es un servicio de identidad y acceso basado en la nube proporcionado por Microsoft Azure. Su función principal es gestionar y asegurar la identidad de los usuarios, así como facilitar el acceso y la colaboración con recursos y aplicaciones en la nube.

Será el encargado de gestionar la visibilidad y accesos necesarios entre Azure DevOps (al que ya conocemos y podemos llamar ADO) y el servicio de Power BI. Para ello usaremos la entidad de Service Principal.

Service Principal en Entra ID

¿Y qué es eso de Service Principal?

Un Service Principal en Entra ID es una entidad que se utiliza para permitir que las aplicaciones y servicios se autentiquen y accedan a otros recursos de manera segura. No usaremos credenciales nominales de usuario para que interactúen entre aplicaciones, sino esta entidad. Cumpliendo así uno de los principios de Zero Trust.

Crear un Service Principal

Para crear un Service Principal (SPN) realizaremos los siguientes pasos.

  1. Entraremos el portal de Azure y nos dirigiremos a App Registration.

2. Seleccionaremos la opción de New Registration.

3. En esta nueva pestaña, podremos introducir el nombre de nuestro SPN y dejaremos seleccionada la primera opción de los checbox. Esta opción limitará la visibilidad de nuestra aplicación a nuestro tenant.

4. Una vez creado el SPN, iremos a la sección All applications. En esta sección podremos ver las características de nuestro SPN y asegurarnos de que todo está bien hasta este punto.

5. Procederemos a seleccionar nuestro SPN para revisar los datos. Tendremos que prestar especial atención al ObjectID y al TenantID que utilizaremos más adelante.

6. Nos quedaremos dentro de nuestro SPN para crear generar un secreto. Este secreto será las credenciales de nuestro SPN.

7. Seleccionaremos Certificates & Secrets y la opción de New client secret. En la nueva pestaña, tendremos que introducir una descripción y una duración del secreto.

¡¡IMPORTANTE!! Copia el secreto, porque solo estará visible una vez. Si refrescamos la página el secreto aparecerá securizado y no podremos recuperarlo.

8. Una vez creado, podremos asegurarnos de que lo hemos hecho correctamente en la pestaña anterior.

9. Por último, tendremos que darle permisos en Entra ID a nuestro SPN para que funcione con Power BI. Nos dirigiremos a API permission para seleccionar Power Bi Service. En este punto seleccionaremos los permisos que corresponda con la funcionalidad de nuestro SPN.

En nuestro escenario, hemos seleccionado todos los permisos de Read/Write.

Crear un grupo en Entra ID

En el siguiente punto, procederemos a crear un grupo. Este grupo tiene la funcionalidad de tener incluido el SPN. Este es un requisito que utilizaremos más tarde para la parte de XMLA.

  1. Entraremos en el portal de Azure y nos dirigiremos a Entra ID para seleccionar Groups.

2. En la pestaña de Groups, seleccionaremos New group para crear un nuevo grupo. En la pestaña que se nos abrirá, introduciremos el nombre del grupo.

3. Una vez tengamos nuestro grupo creado, tendremos que añadir nuestro Service Principal para que pertenezca a este grupo. Seleccionaremos la opción Add members que encontraremos dentro de Members.

Configurar el servicio de Power BI

En el servicio de Power BI tendremos que hacer 3 cosas:

1. Activar los permisos de lectura y escritura del XMLA endpoint.

Por aquí te dejo un enlace de como hacerlo paso a paso.

2. Permitir el acceso a Power BI Service del Service Principal

Como de esto no os hemos hablado antes os enseñamos como hacerlo.

  1. Deberemos ir a Admin Portal > Tenant Settings

2. Buscar Service Principal y en las opciones:

→ Service principals can access read-only admin APIs

→ Service principals can use Fabric APIs

Marcaremos Specific security group e incluiremos nuestro grupo de seguridad con el Service Principal que hemos creado anteriormente.

3. Dar acceso a nuestro Service Principal al workspace que hayamos creado

Configurar Azure DevOps

¡Extra! Antes de empezar necesitarás algunas cosas más…

Para poder crear nuestro Service Connection en ADO, tendremos que instalarnos una extensión a través del Marketplace del ADO.

¡Sí, ADO también dispone de su Store!

Está extensión ha sido creada por Maik van der Gaag y nos ayudará a simplificar los pasos para realizar la conexión de ADO a PowerBI Service.

Ahora sí, vamos a crear nuestro Service Connection :)

En este paso, procederemos a crear un Service Connection en ADO para que nuestros pipelines utilicen el SPN creado para realizar los despliegues en Power BI Service.

Para crear el Service Connection, realizaremos los siguientes pasos:

  1. Entraremos en el projecto que tengamos creado en ADO y seleccionaremos Project Settings.

2. Procederemos a crear el nuevo Service Connection (SVC).

  • Observaremos que nos aparece un Wizard donde tendremos que seleccionar la opción de Power BI Service Connection.

3. Una vez seleccionada la opción, tendremos que introducir los datos que hemos podido ver en el paso de creación del SPN: Tenant ID, Client ID y Client Secret.

Deberemos marcas las opciones de Service Principal y Commercial.

Esta Service Connection la usarán nuestras pipelines para realizar los despliegues al servicio de Power BI.

Y con esto…¡Hemos superado nuestra quinta semana!

¿Qué veremos la próxima semana?

La próxima semana veremos nuestra primera pipeline, la encargada de descomprimir nuestro report y obtener así nuestra estructura de carpetas.

Esta estructura nos permitirá identificar más fácilmente donde están nuestros cambios y sobre que objeto visual aplican.

← Qué podemos encontrar en Azure DevOps

Pipeline para descomprimir el report →

--

--

Mar Lizana

Data & Analytics Lead Engineer @NTT Data | Microsoft Data Platform MVP