← Todos los posts

Azure DevOps para tus desarrollos en Power BI (V). Permisos y configuración

Dejamos lista la configuración y los permisos que necesitan las pipelines de Azure DevOps para trabajar con Power BI y Fabric.

DevOpsPower BI Publicado antes en Medium ↗

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

GIF: Goten y Trunks de Dragon Ball haciendo la fusión

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

¡¡Seguimos!!

Permisos, permisos everywhere

Permisos necesarios entre Power BI, Entra ID y Azure DevOps con un Service Principal

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.

Portal de Azure con Microsoft Entra ID y App registrations marcados

2. Seleccionaremos la opción de New Registration.

App registrations con la opción 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.

Registro de la aplicación SPN-PowerBI con el tipo de cuenta de un solo 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.

Lista de aplicaciones registradas con el SPN creado

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.

Datos del SPN: identificadores de aplicación, objeto y directorio

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.

Menú del SPN con la opción Certificates & secrets

Creación de un nuevo secreto de cliente para el SPN

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

Secreto de cliente creado en la pestaña Client secrets

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.

Permisos de API del SPN con Power BI Service seleccionado

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.

Microsoft Entra ID con la opción Groups marcada

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.

Página Groups con el botón New group

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.

Añadir el SPN como miembro del grupo de seguridad

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

Portal de administración de Fabric con la opción para que los service principals usen las API

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.

Configuración aplicada solo al grupo de seguridad del SPN

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

Acceso al área de trabajo con el grupo del SPN como administrador

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.

Proyecto de Azure DevOps con la opción Project settings

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

Service connections de Azure DevOps con el botón New service connection

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

Tipos de conexión de servicio con Power BI Service Connection seleccionado

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.

Datos de la conexión de servicio de Power BI con Service Principal: tenant, cliente y secreto

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!

GIF: los protagonistas de The IT Crowd aplaudiendo

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

GIF: código verde cayendo como en Matrix

← Qué podemos encontrar en Azure DevOps

Pipeline para descomprimir el report →

¿Te ha servido? Aplaude, sin cuenta. Puedes hacerlo varias veces.

Comentarios