Integraciones

PowerBI

Modelo de integración

Extracción de metadatos

Para la extracción de metadata de un objeto se utilizan las APIS:

Con estas APIs se es capaz de extraer los siguientes tipos de objeto de PowerBI:

  • APP

  • Workspace

  • Dataset (modelo de datos)

  • Report

  • Dashboard


El plugin extrae los siguientes atributos que deben llamarse igual en la tabla attribute_definition, campo name, para que aparezcan en la plantilla:

Nombre de atributo

Tipo de atributo

Descripción

physicalName, name

INPUT_TEXT

nombre del objeto

path

INPUT_TEXT

ruta al objeto

infrastructure

SELECT

valor seleccionado

technology

SELECT

valor seleccionado

zone

SELECT

valor seleccionado


Además, la propia API de Azure permite devolver más atributos que, de la misma manera, para que aparezcan en Anjana Data, deben coincidir con atributos definidos en la plantilla del objeto con el mismo name. En caso de duda del valor devuelto, INPUT_TEXT siempre aceptará insertar cualquier valor.


App: https://learn.microsoft.com/en-us/rest/api/power-bi/admin/apps-get-apps-as-admin#adminapp

  • El campo id se tiene que representar en Anjana como appId.

Workspace: https://learn.microsoft.com/en-us/rest/api/power-bi/admin/groups-get-groups-as-admin#admingroup

  • El campo id se tiene que representar en Anjana como workspaceId.

  • El campo state se tiene que representar en Anjana como workspaceState.

  • El campo dataflows y workbook no se recupera al ser un tipo aparte de datos que se extraerá en futuras versiones.

  • El campo users no se recupera al estar deprecada por PowerBi

  • La información relativa a dashboards, dataset y reports se extrae como una lista de nombres, con un campo especifico para cada uno.

  • El campo logAnalyticsWorkspace no se recupera por limitaciones de la API.

  • El campo type se tiene que representar en Anjana como workspaceType.

Dataset (modelo de datos) : https://learn.microsoft.com/en-us/rest/api/power-bi/admin/datasets-get-datasets-in-group-as-admin

  • El campo id se tiene que representar en Anjana como semanticModelId.

  • El campos tags no se recupera al solo estar disponible en API de Fabric a la creación de este documento.

  • El campo users no se recupera al estar deprecado por PowerBi.

  • El campo ContentProviderType no se recupera al estar deprecado por PowerBi.

Report: https://learn.microsoft.com/en-us/rest/api/power-bi/admin/reports-get-reports-in-group-as-admin

  • El campo id se tiene que representar en Anjana como reportId.

  • El campos tags no se recupera al solo estar disponible en API de Fabric a la creación de este documento.

  • El campo subscriptions y users no se recuperan al estar deprecados por PowerBi.

Dashboard: https://learn.microsoft.com/en-us/rest/api/power-bi/admin/dashboards-get-dashboards-in-group-as-admin

  • El campo id se tiene que representar en Anjana como dashboardId.

  • El campo displayName se incluira en Anjana como el campo genérico name.

  • El campos tags no se recupera al solo estar disponible en API de Fabric a la creación de este documento.

  • El campo subscriptions y users no se recuperan al estar deprecados por PowerBi.

Tablas con caracteres en el nombre

Esta tecnología permite los caracteres como “/” en el nombre, si se están usando, se debe configurar el path-separator con otro carácter que no sea “/”. Consultar Extracción de ficheros para más detalles.

Gestión de accesos

El Tot Plugin de Power BI incorpora la gestión de accesos sobre los activos de Power BI catalogados en Anjana Data Platform. La funcionalidad permite asignar y revocar permisos efectivos en Power BI a partir del ciclo de vida de un DSA, utilizando grupos de Azure Entra ID como única unidad de autorización.

El modelo garantiza un comportamiento determinista, idempotente y trazable, y se apoya en los siguientes principios de diseño:

  • Autorización basada en grupos, los permisos se conceden siempre a grupos de Azure Entra ID, nunca a usuarios individuales. Cualquier cambio en la composición del grupo se refleja en Power BI de forma indirecta.

  • Separación de responsabilidades, la gestión de identidades y grupos corresponde al Tot Plugin de Azure Entra ID; el Tot Plugin de Power BI actúa exclusivamente sobre la capa de autorización de los recursos de Power BI.

  • Privilegio mínimo, el nivel de permiso concedido es fijo por tipo de objeto y no configurable por DSA, lo que garantiza consistencia entre entornos.

  • Idempotencia, el plugin comprueba el estado actual antes de actuar. Repetir una asignación o una revocación no produce efectos secundarios ni errores funcionales.

  • Procesamiento best-effort, en operaciones sobre varios objetos, el fallo en uno de ellos no interrumpe el procesamiento del resto; los objetos con error se devuelven identificados en la respuesta.

Reparto de responsabilidades entre plugins

Responsabilidad

Tot Plugin Azure Entra ID

Tot Plugin Power BI

Crear y eliminar grupos en Entra ID

No

Añadir y eliminar usuarios del grupo

No

Resolver el identificador del grupo

No

Asignar permisos sobre recursos de Power BI

No

Revocar permisos sobre recursos de Power BI

No

Quedan fuera del alcance del plugin de Power BI la creación y eliminación de grupos en Entra ID, la gestión de usuarios dentro de los grupos, las llamadas directas a Microsoft Graph API y la persistencia de información.

Alcance sobre los activos de Power BI

Power BI gestiona el acceso mediante un modelo de seguridad por capas en el que la visibilidad del Workspace, el acceso a los datos del Dataset y la publicación de Apps son mecanismos distintos. El plugin se apoya únicamente en los mecanismos de Workspace y Dataset, que son los únicos automatizables mediante la API REST de Power BI.

Objeto de Power BI

Actuación del plugin

Permiso otorgado

Mecanismo de acceso

Workspace

Asignación y revocación directa vía API REST

Viewer

Permiso directo sobre el Workspace

Dataset / Modelo semántico

Asignación y revocación directa vía API REST

Read

Permiso directo sobre el Dataset

Report

No aplica

Herencia del Workspace que lo contiene

Dashboard

No aplica

Herencia del Workspace que lo contiene

App

No aplica

Herencia del Workspace desde el que se publica

Los permisos concedidos sobre un Workspace se propagan automáticamente a todo el contenido que aloja. Los datasets y modelos semánticos también heredan del Workspace, pero admiten además asignación aislada.

Los objetos de tipo Report, Dashboard y App incluidos en un DSA son ignorados por el plugin sin generar error, ya que la API REST de Power BI no permite una gestión completa y consistente de permisos a ese nivel. Su acceso efectivo se obtiene por herencia del Workspace.

Configuración en Anjana Data Platform

Este apartado recoge las actuaciones que debe realizar el cliente en Anjana Data Platform para que la gestión de accesos sobre Power BI opere correctamente.

Requisitos previos

  • Tot Plugin de Azure Entra ID, desplegado y configurado, ya que es el responsable de crear y resolver los grupos que el plugin de Power BI utiliza como unidad de autorización.

  • Activos catalogados, los objetos de Power BI deben haberse incorporado previamente al Catalog mediante la extracción de metadatos.

Operativa de concesión y retirada de accesos

  1. Crear un DSA e incluir en él entidades de tipo WORKSPACE o DATASET/SEMANTIC_MODEL.

  2. Aprobar el DSA. El plugin asigna al grupo asociado el permiso Viewer sobre los Workspaces y Read sobre los datasets o modelos semánticos incluidos.

  3. Expirar el DSA cuando el acceso deba retirarse. El plugin revoca los permisos previamente concedidos sobre los objetos del DSA.

La inclusión de entidades de tipo REPORT, DASHBOARD o APP en un DSA no produce ningún efecto: el plugin las ignora sin error. Para conceder acceso a estos activos debe incluirse en el DSA el Workspace que los contiene, que es el nivel mínimo de permiso gestionable.

Uso de grupos corporativos preexistentes (physicalName)

Cuando el DSA informa el atributo physicalName, el grupo asociado se considera preexistente y gestionado externamente. En ese escenario, el Tot Plugin de Azure Entra ID no crea ni elimina el grupo, únicamente resuelve su identificador, mientras que el plugin de Power BI evalúa el estado actual de los permisos antes de aplicar cualquier cambio.

Es responsabilidad del cliente garantizar que el grupo reutilizado cumple las siguientes condiciones:

  • Sin permisos previos incompatibles, sobre los recursos de Power BI incluidos en el DSA.

  • Sin roles superiores, a los previstos por el modelo de privilegio mínimo.

  • Sin permisos conflictivos, sobre los mismos recursos.

Si se detectan permisos incompatibles, el plugin rechaza la operación sobre el objeto afectado y la registra como error.

Recomendaciones de modelado

  • Granularidad, dado que el nivel mínimo gestionable es el Workspace, la segregación de accesos debe planificarse organizando el contenido en Workspaces separados.

  • Dependencias entre Workspaces, conviene verificar que los reports y apps incluidos en el alcance no consuman datasets alojados en otros Workspaces, ya que esas dependencias no se cubren automáticamente.

Este apartado está dirigido principalmente a administradores funcionales de la plataforma y a los responsables de la administración del tenant de Power BI.

Limitaciones y consideraciones conocidas

  • Granularidad limitada al Workspace y al Dataset, Power BI no permite gestionar permisos de forma directa sobre reports, dashboards y apps. El acceso a estos objetos se obtiene por herencia del Workspace y no se garantiza control granular por objeto individual.

  • Dependencias entre Workspaces, la versión actual no detecta que un report, dashboard o app consuma datasets alojados en otros Workspaces, ni emite advertencias funcionales. Un usuario puede tener acceso al Workspace y no visualizar correctamente determinados contenidos por falta de permisos sobre datasets externos.

  • Sincronización entre Entra ID y Power BI, la propagación de un grupo recién creado no es instantánea. El plugin reintenta de forma automática ante los errores transitorios asociados a este retardo, conforme a la política configurada.

  • Throttling de la API de Power BI, el límite estándar es de aproximadamente 120 solicitudes por minuto y Service Principal. Ante una respuesta de limitación, el plugin reintenta según los parámetros countRetry y waitRetry.

  • Expiración sobre report y dashboard, queda fuera de alcance. El nivel mínimo de expiración aplicable es el Workspace o el dataset/modelo semántico.

  • Trazabilidad con correlationId, la propagación de un identificador de correlación extremo a extremo queda fuera del alcance de la versión actual.

Clasificación de errores

El plugin normaliza el resultado de cada elemento procesado y clasifica los errores en las siguientes categorías, devolviendo los objetos con error identificados en la respuesta.

Categoría

Causa habitual

Tratamiento

AUTH

Token expirado, falta de scope o Service Principal sin rol adecuado en el Workspace

Renovación de token y reintento si es recuperable; en caso contrario requiere intervención manual de configuración

VALIDATION

Identificadores o payload inválidos; retardo de sincronización entre Entra ID y Power BI

Reintento solo en el caso transitorio de sincronización

NOT_FOUND

Grupo aún no visible en Power BI, o recurso inexistente o ya eliminado

Reintento en el caso transitorio; en revocación se considera estado ya alcanzado

CONFLICT

El grupo ya dispone del permiso solicitado

Se trata como estado ya alcanzado y se considera operación exitosa

THROTTLED

Límite de peticiones por minuto superado

Reintento con espera configurable

UNKNOWN

Error interno de Power BI

Se registra y se marca como error técnico del elemento

Credenciales requeridas

Extracción de metadatos

Se necesitan los siguientes permisos:

  • Ser administrador de las workspace que se quieren extraer metadata.

image-20260731-084754.png


Estos permisos se deben dar sobre el service principal que se vaya a usar para el cometido del plugin. Estos permisos no pueden ser consentimiento de Administración si no que tienen que ser permisos delegados:

  1. Configuración del App Registration

    1. Ir al Azure Portal.

    2. Navegar a Azure Active Directory > App registrations > + New registration.

    3. Proporcionar un nombre para la aplicación y seleccionar el tipo de cuenta (lo más común es Accounts in this organizational directory only).

Gestión de accesos

La gestión de accesos se ejecuta con la misma identidad técnica que la extracción de metadatos: un Service Principal de Azure Entra ID que se autentica frente a la API REST de Power BI mediante OAuth2 client credentials. Las credenciales (clientId, clientSecret y tenantId) se configuran en application-default.yaml.

Permisos en Azure Entra ID

  • User.Read.All, configurado sobre la App Registration utilizada por el plugin.

Requisitos en Power BI

Los permisos de Entra ID no son suficientes por sí solos: la capacidad efectiva de gestión depende del modelo de autorización interno de Power BI. Se requiere adicionalmente:

  1. Generar un grupo de seguridad en Azure específico para consumir las APIs de PowerBI

    1. Meter dentro del grupo la APP generada

    2. Meter al grupo dentro de la siguiente opción existente en PowerBI (ver captura)

https://lh7-rt.googleusercontent.com/docsz/AD_4nXecrdWZgcnzYQuG970r8tJivPpPOiHk0cJF1Ur7UJP81EzPXbl7Y7N7CqnjNPs3_oHserXui6M29SVjFVVRvgWp84vv8TZEpnJgkqGwatqr6Pi2N_PBaRbIpcBBb-BTcMnelxL4-g?key=tEG1YCU5X1YeG_N2zrlbqw
  1. Habilitación del Service Principal, en el portal de administración de Power BI debe estar activada la opción «Allow service principals to use Power BI APIs», con el grupo de seguridad que contiene la aplicación incluido en dicha opción.

  2. Rol Admin sobre el Workspace, el Service Principal debe estar asignado como Admin en cada Workspace objetivo sobre el que el plugin vaya a asignar, revocar o consultar permisos.

Los scopes de OAuth no sustituyen el modelo interno de autorización de Power BI. Si el Service Principal no dispone del rol adecuado en el Workspace, o el Service Principal no está habilitado en el portal de administración, las llamadas devuelven 403 Forbidden. Este error no se reintenta y requiere intervención manual de configuración.

Resumen de configuración por responsable

Configuración

Dónde se realiza

Responsable

App Registration y permiso User.Read.All

Azure Portal — Entra ID

Cliente (administrador del tenant)

Grupo de seguridad con la aplicación y habilitación de service principals

Portal de administración de Power BI

Cliente (administrador de Power BI)

Rol Admin del Service Principal en cada Workspace objetivo

Power BI — configuración del Workspace

Cliente (Owner del Workspace)

clientId, clientSecret, tenantId y política de reintentos (countRetry, waitRetry)

application-default.yaml

Instalación de Anjana Data Platform