Conceder el consentimiento de administrador (permisos de AD)

Este es el paso más importante para lograr una experiencia sin ventanas emergentes.

Icon Map inicia la sesión de cada usuario con su identidad de Microsoft Entra (Azure AD) y, en su nombre, lee sus datos de Fabric y OneLake. Para ello solicita un conjunto de permisos delegados. Si no se ha dado el consentimiento a esos permisos en el nivel del inquilino, se pide a cada usuario que dé su consentimiento la primera vez que una función los necesita: la ventana emergente "Permisos solicitados". Conceder el consentimiento de administrador para todo el inquilino una sola vez elimina esas solicitudes para todos.

La carga de trabajo está registrada como dos aplicaciones de Entra, un front-end y un back-end, y ambas necesitan consentimiento. Esta página trata las dos.

La versión breve

Si la persona que agrega la carga de trabajo es administrador de Entra, todo se reduce a tres solicitudes dentro de Fabric: una al agregar la carga de trabajo (la aplicación de back-end), otra al abrir el primer mapa (la aplicación de front-end) y otra la primera vez que se conecta un Lakehouse o un Eventhouse (el permiso de OneLake o de Eventhouse que se solicita a petición). Marque Consentimiento en nombre de la organización en cada una y nadie más del inquilino tendrá que responder nunca. Los administradores que prefieran no abrir el producto pueden hacerlo todo, incluida la preparación del inquilino y la aprobación previa de los permisos solicitados a petición, con un solo script: Onboard-IconMapTenant.ps1 (Opción C). Todo lo que sigue explica qué contienen esas solicitudes y las alternativas.

El consentimiento es delegado: Icon Map actúa como el usuario que ha iniciado sesión y solo puede llegar a los datos que ese usuario ya puede ver. El consentimiento de administrador no concede a Icon Map ningún acceso independiente a sus datos; solo aprueba de antemano los permisos para que no se pregunte a cada usuario.

Quién lo hace

Un Administrador global, un Administrador de roles con privilegios o un Administrador de aplicaciones en la nube de Microsoft Entra.

Las aplicaciones

El front-end es la aplicación en la que inician sesión sus usuarios. El back-end es la aplicación a la que llama el propio Fabric en cada creación, guardado y eliminación de elementos, y la que ejecuta los trabajos del Generador de teselas y sirve a los objetos visuales de Power BI. Si solo se da el consentimiento al front-end, el inquilino queda configurado a medias.

Front-end Back-end
Nombre para mostrar Tekantis.IconMap Tekantis.IconMap-Backend
Id. de aplicación (cliente) 8ac140d7-88a0-4857-84b4-73c708afd645 81c50c7d-ca21-414c-b7d9-524410f38339
Dominio del editor tekantis.com tekantis.com
Audiencia de inicio de sesión Multiinquilino: aparece una entidad de servicio en su inquilino con el primer uso o al dar el consentimiento Multiinquilino: aparece una entidad de servicio en su inquilino al dar el consentimiento

Las dos aplicaciones fallan de forma distinta cuando falta un permiso. Si falta un permiso del front-end, aparece una ventana emergente "Permisos solicitados". El back-end nunca muestra solicitudes: si falta un permiso del back-end, se manifiesta más tarde como un trabajo del Generador de teselas que falla o una lista de catálogos organizativos vacía en un objeto visual de Power BI, algo mucho más difícil de relacionar con el consentimiento.

A qué da su consentimiento

Tekantis.IconMap (front-end)

El front-end solicita estos permisos delegados. Se corresponden directamente con las funciones del producto que leen sus datos:

API Permiso Se usa para
Microsoft Graph User.Read Iniciar su sesión y leer su perfil básico.
Power BI / Fabric Fabric.Extend Ejecutarse como carga de trabajo de Fabric dentro del shell de Fabric.
Power BI / Fabric Fabric.Extend.IframeSandbox Ejecutar el iframe del editor con el espacio aislado flexible de Fabric para que los archivos exportados (CSV, GeoJSON, planos de planta, vídeos de recorridos) se descarguen directamente desde el navegador, sin ningún servidor de Tekantis de por medio.
Power BI / Fabric Workspace.Read.All Enumerar las áreas de trabajo que usted puede ver.
Power BI / Fabric Capacity.Read.All Comprobar la capacidad que respalda un área de trabajo.
Power BI / Fabric Item.ReadWrite.All Abrir y guardar el elemento de Icon Map, y leer los elementos de origen.
Power BI / Fabric Item.Execute.All Ejecutar consultas en Warehouse y en los puntos de conexión de análisis SQL, y la actualización programada.
Power BI / Fabric OneLake.ReadWrite.All Administrar el rol de acceso a datos de OneLake que concede al lector de mapas publicados acceso de solo lectura al publicar. Solo se usa cuando publica un mapa insertado.
Power BI / Fabric Dataset.Read.All Orígenes de modelo semántico y consultas DAX. El modelo sigue aplicando la seguridad de nivel de fila.
Power BI / Fabric Connection.Read.All Enumerar las conexiones, para descubrir un geocatálogo de Planetary Computer. Solo lectura.

Hay dos permisos que no están en esta lista a propósito y que se solicitan a petición, la primera vez que una función los necesita. Consulte Permisos solicitados a petición:

API Permiso Se usa para
Azure Storage user_impersonation Leer y escribir sus archivos de OneLake: las tablas y la carpeta Files de Lakehouse, las imágenes, las teselas, los mapas publicados y la reescritura se leen a través del punto de conexión de OneLake con su identidad, y las URL SAS de OneLake de corta duración que usa el navegador para las teselas se generan a partir de este token.
Azure Data Explorer user_impersonation Ejecutar consultas KQL en Eventhouse.

Fíjese en lo que tampoco está en la lista. Icon Map no tiene ningún permiso de Fabric Lakehouse.* ni Eventhouse.*: las tablas y los archivos de Lakehouse se leen directamente desde OneLake, y Eventhouse se consulta en el clúster de Kusto. Tampoco tiene Tenant.Read.All ni Tenant.ReadWrite.All, los permisos de la API de administración de Fabric, así que no puede ver nada en el ámbito de todo el inquilino.

Todos ellos son delegados (actúan como el usuario): en la experiencia de creación no hay ningún acceso a datos solo de aplicación.

openid, profile y offline_access de Microsoft Graph se consienten junto con ellos: son los elementos básicos del inicio de sesión y no dan acceso a datos. offline_access es lo que el cuadro de diálogo de consentimiento describe como "Mantener el acceso a los datos a los que le ha concedido acceso": permite a Icon Map actualizar su token de forma silenciosa en lugar de volver a pedírselo.

Tekantis.IconMap-Backend

El back-end nunca mantiene una sesión propia. Cuando Fabric lo llama, o cuando un objeto visual de Power BI inicia sesión en él, intercambia el token del autor de la llamada en nombre de ese usuario (OAuth 2.0 On-Behalf-Of) por tokens de Fabric y OneLake de corta duración, de modo que solo llega a lo que el usuario ya puede alcanzar. Sus permisos delegados son un subconjunto de los del front-end:

API Permiso Se usa para
Microsoft Graph User.Read Elementos básicos del inicio de sesión.
Microsoft Graph SensitivityLabel.Read Leer las etiquetas de confidencialidad de los elementos que usa un mapa, y sus derechos de uso según esas etiquetas, para que las exportaciones y la publicación respeten la etiqueta. Solo consentimiento de administrador; sin él, las exportaciones de datos etiquetados se rechazan en lugar de permitirse.
Power BI / Fabric Fabric.Extend Resolver los permisos del usuario sobre un elemento de Icon Map a través de la API de control de la carga de trabajo.
Power BI / Fabric Workspace.Read.All Enumerar las áreas de trabajo que el usuario puede ver, para los objetos visuales de Power BI y para la publicación.
Power BI / Fabric Item.ReadWrite.All, Item.Execute.All Leer los elementos de catálogo organizativo que el usuario puede ver, para los objetos visuales de Power BI y para la publicación, y crear y ejecutar la definición de trabajo de Spark en la que se basan los trabajos del Generador de teselas.

También tiene el único permiso de aplicación (solo de aplicación) de todo el conjunto de Icon Map: CrossTenantInformation.ReadBasic.All de Microsoft Graph, que se usa para resolver el nombre para mostrar y el dominio de su inquilino. Son metadatos del directorio y no dan acceso a sus datos, pero aparecen en la pantalla de consentimiento en Permisos de aplicación, y solo un administrador puede concederlos. Esta es una de las razones por las que el back-end necesita el consentimiento de administrador en lugar del consentimiento del usuario.

El back-end también lee y escribe en OneLake en nombre del usuario (la salida del Generador de teselas, y los manifiestos de catálogos organizativos y las imágenes de Lakehouse para los objetos visuales de Power BI) con user_impersonation de Azure Storage. Como en el front-end, ese permiso se solicita a petición: Icon Map lo pide la primera vez que alguien inicia un trabajo del Generador de teselas, y un administrador puede aprobarlo de antemano para todos (consulte Permisos solicitados a petición).

A diferencia del front-end, el back-end solicita todo su conjunto de permisos a la vez (/.default). Si falta un permiso en la concesión para todo el inquilino, no se pregunta a nadie; la llamada simplemente falla. Si los trabajos del Generador de teselas o la exploración de catálogos organizativos desde Power BI dejan de funcionar después de cambiar el consentimiento, vuelva a ejecutar la URL de consentimiento de administrador del back-end que aparece más abajo y, después, vuelva a conceder el permiso de Azure Storage a petición para el back-end.

Sobre el "All" de estos nombres

Item.ReadWrite.All, Dataset.Read.All y los demás parecen indicar que Icon Map puede ver todo lo que hay en su inquilino. No es así. Son permisos delegados: el token lleva la identidad del usuario que ha iniciado sesión, y Fabric evalúa los permisos de ese usuario sobre los elementos en cada llamada. Item.ReadWrite.All significa "leer y modificar los elementos que este usuario ya tiene permitido leer y modificar". El sufijo es la convención de nomenclatura de Microsoft para toda la superficie de la API de Fabric, no una indicación de alcance: no existe ninguna variante más restringida por área de trabajo o por elemento que se pueda solicitar en su lugar. Los permisos que sí abarcan todo un inquilino son Tenant.Read.All y Tenant.ReadWrite.All, e Icon Map no solicita ninguno de los dos.

Si quiere restringir aún más el alcance, hágalo controlando quién puede usar la aplicación en lugar del ámbito: consulte Restringir quién puede usar Icon Map más abajo.

Restringir quién puede usar Icon Map

El consentimiento de administrador se aplica a todo el inquilino, pero el uso de la aplicación no tiene por qué. Hay dos controles, ambos totalmente en sus manos y sin necesidad de nada por parte de Tekantis:

  • Exigir la asignación. En Entra ID, Aplicaciones empresariales, Tekantis.IconMap, Propiedades, establezca ¿Se requiere asignación? en Sí y, después, añada en Usuarios y grupos solo los usuarios o grupos que deben tener Icon Map. A cualquier persona fuera de ese conjunto se le deniega el token, digan lo que digan los permisos consentidos. Combina bien con limitar la configuración del inquilino de Fabric al mismo grupo de seguridad.
  • Acceso condicional. Aplique a la aplicación una directiva de acceso condicional para MFA, dispositivos compatibles o unidos a un dominio híbrido, ubicaciones con nombre o frecuencia de inicio de sesión, igual que con cualquier otra aplicación empresarial.

Para la mayoría de las organizaciones, este control es más significativo que la lista de permisos, porque limita quién puede actuar en absoluto, y no lo que un usuario autorizado ya podría hacer por sí mismo.

Antes de dar el consentimiento: prepare su inquilino

Microsoft Entra solo permite dar el consentimiento a una aplicación para un servicio de Microsoft cuando ese servicio tiene una entrada (una entidad de servicio) en su inquilino. Entra crea esa entrada la primera vez que se da el consentimiento a cualquier aplicación de terceros para el servicio, pero no puede crearla como parte de ese mismo consentimiento. Fabric tampoco la crea. Por eso, en un inquilino que nunca ha usado un servicio a través de una aplicación de terceros, el primer consentimiento para ese servicio falla con:

AADSTS650052: The app is trying to access a service '<id>'(Azure Storage) that your
organization '<tenant>' lacks a service principal for.

El consentimiento propio de Icon Map ya no depende de esos servicios (solo de Microsoft Graph y Power BI, que están en todos los inquilinos de Fabric), así que las dos URL de consentimiento de administrador que aparecen más abajo funcionan en cualquier inquilino. Pero la primera vez que alguien conecta un Lakehouse (Azure Storage) o un Eventhouse (Azure Data Explorer), Entra necesita que exista la entrada. Créela una vez, en Azure Cloud Shell o en cualquier sesión de az iniciada en su inquilino como Administrador de aplicaciones en la nube, Administrador de aplicaciones o Administrador global:

az ad sp create --id e406a681-f3d4-42a8-90b6-c2b029497af1

y, solo si va a conectar orígenes Eventhouse / KQL:

az ad sp create --id 2746ea77-4702-4b45-80ca-3c97e680e8b7

Ambos comandos son idempotentes: "Another object with the same value for property appId already exists" significa que la entrada ya existía. El equivalente en Graph PowerShell es New-MgServicePrincipal -AppId <id>. Estas entradas no llevan credenciales ni conceden acceso; son los mismos objetos que Entra crearía de forma silenciosa la primera vez que otra aplicación usara esos servicios. Para comprobar si su inquilino ya las tiene, busque Azure Storage y Azure Data Explorer en Aplicaciones empresariales con el filtro Tipo de aplicación establecido en Todas las aplicaciones.

En Azure Portal. Ninguna página del Centro de administración de Microsoft Entra crea la entrada de un servicio de Microsoft (Aplicaciones empresariales, Nueva aplicación solo ofrece la galería y sus propios registros), pero puede ejecutar el comando sin instalar nada con el shell integrado del portal:

  1. Inicie sesión en portal.azure.com como administrador del inquilino.
  2. Seleccione el icono de Cloud Shell en la barra superior (el símbolo >_) y elija PowerShell. La primera vez, acepte el aviso de almacenamiento o elija No se requiere ninguna cuenta de almacenamiento.
  3. Compruebe que el shell está en el inquilino correcto: az account show --query tenantId -o tsv. Si no lo está, ejecute az login --tenant <your-tenant-id> --allow-no-subscriptions.
  4. Pegue la línea az ad sp create anterior y pulse Entrar.
  5. Confirme en Microsoft Entra ID, Aplicaciones empresariales con el filtro Tipo de aplicación establecido en Todas las aplicaciones: ahora aparece Azure Storage.

O descargue el script: Prepare-IconMapTenant.ps1 hace la comprobación y la creación de una vez (-TenantId <guid>, añada -IncludeEventhouse para la segunda entrada y -WhatIf para obtener una vista previa) y solo necesita la CLI de Azure, así que también se ejecuta en Cloud Shell.

Esto es una característica de Microsoft Entra y Fabric, no de Icon Map: afecta a todas las cargas de trabajo de asociados que leen OneLake a través de la API de Azure Storage, y el inicio rápido de la propia carga de trabajo de Fabric de Microsoft incluye el mismo paso. Los inquilinos que ya han usado Azure Storage o Azure Data Explorer a través de cualquier aplicación de terceros tendrán las entradas creadas y pueden omitir esta sección.

Cómo conceder el consentimiento

Dé el consentimiento a las dos aplicaciones. Todos los métodos que se describen a continuación dan el consentimiento a todo el conjunto de permisos de una aplicación en una sola acción: no es necesario hacerlo función por función.

Opción A - aceptar las solicitudes en Fabric (recomendado)

Cuando un administrador agrega la carga de trabajo y abre el primer mapa, el propio Fabric muestra las solicitudes de consentimiento, y la solicitud que ve un administrador incluye la casilla Consentimiento en nombre de la organización. Al marcarla se registra la misma concesión para todo el inquilino que con las URL que aparecen más abajo.

  1. Inicie sesión en Fabric con un usuario que sea a la vez administrador de Fabric (o administrador de capacidad) y Administrador global, Administrador de aplicaciones en la nube o Administrador de aplicaciones de Entra.
  2. Agregue la carga de trabajo desde el Centro de cargas de trabajo. Aparece una solicitud para Tekantis.IconMap-Backend, la aplicación a la que llama Fabric en cada operación con elementos. Marque Consentimiento en nombre de la organización y elija Aceptar.
  3. Cree o abra un elemento de Icon Map. Aparece una solicitud para Tekantis.IconMap la primera vez que el editor pide un token a Fabric. Vuelva a marcar la casilla y elija Aceptar.
  4. Conecte un Lakehouse (y, si los usa, un Eventhouse). El permiso solicitado a petición se solicita una vez; marque la casilla por tercera vez. En un inquilino que nunca ha usado Azure Storage, en este paso aparece en su lugar la página prepare su inquilino: ejecute el comando y vuelva a intentarlo.

Esa es la incorporación completa para la mayoría de las organizaciones. Si falta la casilla, su cuenta no tiene un rol de administrador o la directiva de consentimiento de su inquilino la ha deshabilitado; use la opción B.

Opción B - URL de consentimiento de administrador

Para los administradores que prefieren dar el consentimiento antes de poner la carga de trabajo a disposición de nadie, o sin abrir el producto. Abra cada una de las siguientes URL por orden, con la sesión iniciada como administrador, sustituyendo {your-tenant-id} por el identificador de su inquilino de Entra (un GUID). Revise los permisos y elija Aceptar cada vez para dar el consentimiento en nombre de toda la organización.

El redirect_uri de cada URL envía el resultado a la página propia de Icon Map, que muestra una confirmación o el motivo exacto por el que se rechazó el consentimiento. Sin él, Entra elige una de las direcciones registradas de la aplicación y el resultado puede perderse en una página de Fabric.

Front-end, Tekantis.IconMap:

https://login.microsoftonline.com/{your-tenant-id}/adminconsent?client_id=8ac140d7-88a0-4857-84b4-73c708afd645&redirect_uri=https://app.iconmap.ai/close

Back-end, Tekantis.IconMap-Backend:

https://login.microsoftonline.com/{your-tenant-id}/adminconsent?client_id=81c50c7d-ca21-414c-b7d9-524410f38339&redirect_uri=https://app.iconmap.ai/close

Estas dos URL cubren los permisos que declara cada aplicación. El permiso de OneLake se solicita a petición y no está incluido, así que, si su inquilino no permite que los usuarios den su consentimiento por sí mismos, abra también estas dos: aprueban de antemano el acceso a OneLake para todos, de modo que el primer Lakehouse nunca muestra una solicitud:

https://login.microsoftonline.com/{your-tenant-id}/adminconsent?client_id=8ac140d7-88a0-4857-84b4-73c708afd645&scope=https://storage.azure.com/user_impersonation&redirect_uri=https://app.iconmap.ai/close
https://login.microsoftonline.com/{your-tenant-id}/adminconsent?client_id=81c50c7d-ca21-414c-b7d9-524410f38339&scope=https://storage.azure.com/user_impersonation&redirect_uri=https://app.iconmap.ai/close

Estas URL necesitan que exista la entrada de Azure Storage de Antes de dar el consentimiento. Eventhouse depende de cada clúster, así que es más fácil aprobarlo de antemano con el script. Consulte Permisos solicitados a petición.

Opción C - un script para todo

Onboard-IconMapTenant.ps1 realiza toda la incorporación a través de Microsoft Graph, sin abrir el producto ni las URL, y es idempotente: si lo vuelve a ejecutar, informa de lo que ya está configurado:

  1. Crea la entrada del inquilino para Azure Storage (y para Azure Data Explorer con -IncludeEventhouse): el paso prepare su inquilino.
  2. Crea las entidades de servicio de Tekantis.IconMap y Tekantis.IconMap-Backend.
  3. Registra la concesión para todo el inquilino de los permisos declarados de cada aplicación: lo mismo que hacen las solicitudes de la opción A y las URL de la opción B.
  4. Asigna el único permiso de aplicación del back-end (CrossTenantInformation.ReadBasic.All de Microsoft Graph).
  5. Aprueba de antemano el permiso de Azure Storage a petición para las dos aplicaciones, y Azure Data Explorer para el front-end con -IncludeEventhouse, de modo que el primer Lakehouse o Eventhouse tampoco muestra ninguna solicitud.
  6. Enumera todas las concesiones que ha registrado, para su documentación.
./Onboard-IconMapTenant.ps1 -TenantId {your-tenant-id} -WhatIf
./Onboard-IconMapTenant.ps1 -TenantId {your-tenant-id} -IncludeEventhouse

Solo necesita la CLI de Azure, así que se ejecuta en Azure Cloud Shell (cargue el archivo con el botón de carga del shell y ejecútelo desde ~). Use primero -WhatIf para ver qué cambiaría. El paso 4 necesita un Administrador global o un Administrador de roles con privilegios; un Administrador de aplicaciones en la nube puede ejecutar todo lo demás, y el script lo indica si tiene que omitir ese paso.

Opción D - Aplicaciones empresariales

  1. En el Centro de administración de Microsoft Entra, vaya a Aplicaciones empresariales.
  2. Busque Tekantis.IconMap (aparece después de habilitar la carga de trabajo o después de un primer inicio de sesión).
  3. Abra Permisos y elija Conceder consentimiento de administrador para <su organización>.
  4. Repita el proceso para Tekantis.IconMap-Backend. Si todavía no aparece, su entidad de servicio no se ha creado en su inquilino; use en su lugar la URL del back-end de la opción B, que la crea y da el consentimiento en un solo paso.

Esta página solo muestra los permisos que una aplicación declara, así que no puede aprobar de antemano los que se solicitan a petición.

Scripts

Los tres son de PowerShell, solo necesitan la CLI de Azure, se ejecutan en Azure Cloud Shell, admiten -WhatIf y son idempotentes.

Script Qué hace Cuándo usarlo
Onboard-IconMapTenant.ps1 Todo lo que se describe en esta página: prepara el inquilino, da el consentimiento a las dos aplicaciones para todos los usuarios, asigna el permiso de aplicación del back-end y aprueba de antemano los permisos solicitados a petición Quiere una implantación sin solicitudes y sin hacer clic en el producto
Prepare-IconMapTenant.ps1 Solo crea las entradas de Azure Storage (y, opcionalmente, de Azure Data Explorer) Da el consentimiento mediante las solicitudes o las URL y solo necesita la preparación inicial
Grant-IconMapResourceConsent.ps1 Aprueba de antemano un permiso solicitado a petición (Storage o Eventhouse) para una aplicación El consentimiento ya está hecho y quiere eliminar después la solicitud de Lakehouse o de Eventhouse

Permisos solicitados a petición

Azure Storage (OneLake) y Azure Data Explorer (Eventhouse) no están declarados en las aplicaciones de Icon Map y, por tanto, no los cubren las URL de consentimiento de administrador anteriores. Icon Map los solicita la primera vez que un usuario usa una función que los necesita:

Permiso Se solicita por primera vez cuando Qué aplicación
Azure Storage user_impersonation Se usa una tabla o un archivo de Lakehouse, una imagen de OneLake, un catálogo organizativo o la publicación Tekantis.IconMap (front-end)
Azure Storage user_impersonation Se inicia un trabajo del Generador de teselas Tekantis.IconMap-Backend
Azure Data Explorer user_impersonation Se consulta un origen de base de datos Eventhouse / KQL Tekantis.IconMap (front-end)

Los mapas base, el catálogo de Icon Map, los orígenes de modelo semántico y los orígenes de Warehouse y de puntos de conexión SQL no necesitan ninguno de ellos y funcionan en cuanto se da el consentimiento a las aplicaciones.

En un inquilino que permite el consentimiento del usuario, el usuario ve una solicitud para el permiso y la acepta.

Si sus usuarios no pueden dar su consentimiento por sí mismos (la opción No permitir el consentimiento del usuario de Entra, o la opción de editores comprobados, que excluye estos permisos), el usuario ve "Needs administrator consent" la primera vez que conecta un Lakehouse o un Eventhouse y no puede continuar: las dos URL de consentimiento de administrador de la opción B no cubren por sí solas estos permisos. Un administrador tiene que aprobarlos de antemano una vez, de cualquiera de estas tres formas, y a partir de ese momento no se pregunta a ningún usuario:

  1. Desde la solicitud. La primera vez que un administrador usa la función, marca Consentimiento en nombre de la organización en la solicitud. No hace falta ninguna herramienta.

  2. URL de consentimiento de administrador con un ámbito. El mismo punto de conexión anterior acepta un parámetro scope:

    https://login.microsoftonline.com/{your-tenant-id}/adminconsent?client_id=8ac140d7-88a0-4857-84b4-73c708afd645&scope=https://storage.azure.com/user_impersonation&redirect_uri=https://app.iconmap.ai/close
    https://login.microsoftonline.com/{your-tenant-id}/adminconsent?client_id=81c50c7d-ca21-414c-b7d9-524410f38339&scope=https://storage.azure.com/user_impersonation&redirect_uri=https://app.iconmap.ai/close
    

    Para Eventhouse, el ámbito es https://{your-cluster}.kusto.fabric.microsoft.com/user_impersonation; la vía de Graph que se describe a continuación es más sencilla.

  3. Script. Onboard-IconMapTenant.ps1 lo hace como parte de una incorporación completa; para añadirlo después, Grant-IconMapResourceConsent.ps1 -TenantId <tenant> -Resource Storage (o -Resource Eventhouse, y -App Backend para el back-end) registra la concesión a través de Microsoft Graph. También crea las entradas de servicio de Antes de dar el consentimiento si faltan. Solo necesita la CLI de Azure, así que se ejecuta en Azure Cloud Shell; añada -WhatIf para obtener una vista previa.

Tenga en cuenta que el botón Aplicaciones empresariales, Permisos, Conceder consentimiento de administrador del Centro de administración de Microsoft Entra no es una de estas vías: solo concede los permisos que declara una aplicación, y estos no están declarados a propósito. La casilla de la solicitud y la URL con un parámetro scope son las dos formas que solo requieren el navegador.

Si su inquilino bloquea el consentimiento del usuario (véase más abajo), se necesita una de estas vías antes de que nadie pueda usar orígenes de Lakehouse o de Eventhouse; el producto se lo indica a los usuarios y encamina la solicitud a través del flujo de trabajo de solicitudes de consentimiento del administrador si su inquilino lo usa.

Configuración del consentimiento del usuario de Entra

Además de lo anterior, Entra ID, Aplicaciones empresariales, Consentimiento y permisos controla si los usuarios normales pueden dar su consentimiento por sí mismos:

  • Permitir el consentimiento del usuario para aplicaciones: los usuarios ven la ventana emergente "Permisos solicitados" y pueden aceptarla ellos mismos. Icon Map funciona, pero se pregunta a cada usuario.
  • No permitir el consentimiento del usuario: los usuarios ven "Se necesita la aprobación del administrador" y quedan bloqueados hasta que un administrador da el consentimiento. Con esta configuración, el consentimiento de administrador para todo el inquilino no es opcional: es un requisito previo para que nadie pueda usar Icon Map.
  • Permitir el consentimiento del usuario para aplicaciones de editores comprobados, para permisos seleccionados: la opción intermedia. Varios permisos de Icon Map son ámbitos *.All de Fabric restringidos a administradores, así que los usuarios siguen bloqueados en ellos.

Si su inquilino usa el flujo de trabajo de solicitudes de consentimiento del administrador, aparece una solicitud de Icon Map en Solicitudes de consentimiento del administrador para su aprobación.

Comprobar la concesión

Después de dar el consentimiento, compruebe las dos aplicaciones y compruebe que las concesiones están registradas para todos los usuarios y no para un usuario cada vez. En Aplicaciones empresariales, Tekantis.IconMap, Permisos, la pestaña Consentimiento del administrador debe mostrar los permisos del front-end indicados más arriba. Tekantis.IconMap-Backend debe mostrar el conjunto del back-end, incluido el permiso de aplicación de Microsoft Graph. Todo lo que solo aparezca en la pestaña Consentimiento del usuario lo ha consentido una persona concreta y seguirá generando una solicitud para la siguiente.

La misma comprobación desde la CLI de Azure: una concesión para todo el inquilino tiene consentType igual a AllPrincipals, y una por usuario tiene Principal:

az ad sp show --id 8ac140d7-88a0-4857-84b4-73c708afd645 --query id -o tsv
az rest --method GET --url "https://graph.microsoft.com/v1.0/servicePrincipals/<objectId>/oauth2PermissionGrants"

Repita con 81c50c7d-ca21-414c-b7d9-524410f38339 para el back-end. Su permiso de aplicación se registra por separado, como una asignación de rol de aplicación:

az rest --method GET --url "https://graph.microsoft.com/v1.0/servicePrincipals/<backendObjectId>/appRoleAssignments"

Después de conceder el consentimiento

  • Espere de 10 a 30 minutos a que el consentimiento se propague.
  • Los usuarios nuevos ya deberían poder abrir Icon Map y usar sus funciones sin ninguna solicitud de consentimiento.
  • Los usuarios que ya habían dado su consentimiento individualmente no se ven afectados; simplemente dejan de recibir la solicitud.

Solución de problemas

Apareció una solicitud nada más agregar la carga de trabajo, antes de que nadie abriera un mapa. Es lo esperado: es el consentimiento de la aplicación de back-end, que Fabric solicita al agregar la carga de trabajo. Acéptelo (en nombre de la organización si es administrador). La aplicación de front-end vuelve a mostrar una solicitud cuando se abre el primer mapa.

Se sigue preguntando a un usuario después del consentimiento de administrador. Entra muestra una solicitud para cualquier ámbito que no esté cubierto ya por una concesión para todo el inquilino, aunque la aplicación tenga consentimiento para lo demás. Compruebe en la pestaña Consentimiento del administrador que aparece el permiso concreto que indica la ventana emergente. Por ejemplo, una ventana emergente que dice "Ver todos los conjuntos de datos" corresponde a Dataset.Read.All, que solo usan los orígenes de modelo semántico y que es fácil pasar por alto si el consentimiento se concedió antes de que se usara esa función. Volver a ejecutar la URL de consentimiento de administrador recoge el conjunto actual completo.

Los trabajos del Generador de teselas fallan, o la pestaña Organizational Catalogs de un objeto visual de Power BI está vacía, y no apareció ninguna ventana emergente. La aplicación de back-end no tiene consentimiento, o a su concesión le falta un permiso. El back-end nunca muestra solicitudes. Compruebe Tekantis.IconMap-Backend en la pestaña Consentimiento del administrador, o vuelva a ejecutar su URL de consentimiento de administrador.

La ventana emergente, o la URL de consentimiento de administrador, falla con AADSTS650052 "...lacks a service principal for". Su inquilino nunca ha usado el servicio indicado (Azure Storage o Azure Data Explorer) a través de una aplicación de terceros, así que Entra todavía no tiene ninguna entrada para él y no puede registrar el consentimiento. Siga Antes de dar el consentimiento: prepare su inquilino (un solo comando crea la entrada) y vuelva a intentarlo. Icon Map muestra la misma explicación, con el comando, siempre que se encuentra con este caso.

Los orígenes de Lakehouse o de Eventhouse indican "needs administrator consent". Su inquilino no permite que los usuarios den su consentimiento, y el permiso solicitado a petición no se ha aprobado de antemano. Un administrador usa una de las tres vías de Permisos solicitados a petición.

La ventana emergente indica "no comprobado" y "Esta aplicación no está publicada por Microsoft". Es lo esperado. Icon Map lo publica Tekantis Limited y no Microsoft, y el cuadro de diálogo marca así a todos los editores que no son Microsoft. Conceder el consentimiento de administrador elimina por completo el cuadro de diálogo para sus usuarios.

La ventana emergente indica "Se necesita la aprobación del administrador". Su inquilino bloquea el consentimiento del usuario: consulte Configuración del consentimiento del usuario de Entra más arriba. Un administrador tiene que dar el consentimiento.

Solicitudes repetidas de inicio de sesión o de MFA. Se deben al acceso condicional, no al consentimiento, y este paso no las elimina. Consulte Navegador y red.

Otras aplicaciones de Icon Map

Las dos aplicaciones anteriores son la carga de trabajo de Fabric. Icon Map usa a propósito aplicaciones de Entra distintas para cada superficie del producto, cada una con los permisos mínimos para su función, así que, además de la carga de trabajo, solo da su consentimiento a lo que implanta:

  • Icon Map Desktop (f68c8ff5-476f-4282-a125-47151eb8c6e8): la usa el inicio de sesión de la aplicación de escritorio: acceso al almacenamiento de OneLake, más Workspace.Read.All e Item.ReadWrite.All para explorar áreas de trabajo e implementar mapas, y Dataset.Read.All para los orígenes de modelo semántico. Dé su consentimiento de la misma forma si implanta la aplicación de escritorio; el uso puramente local no necesita ningún inicio de sesión.
  • Icon Map QGIS Connector (ab3aeae9-ced2-40cb-bc4f-9ce4cbb109f3): la usa el complemento de QGIS: acceso al almacenamiento de OneLake, más Workspace.Read.All, Item.Read.All, Item.ReadWrite.All e Item.Execute.All para los modos de exploración y de creación de mapas. El complemento incluye un asistente de consentimiento de administrador; sin consentimiento de administrador, un modo reducido permite a los usuarios publicar pegando identificadores de área de trabajo y de elemento, con solo el permiso de OneLake que los usuarios pueden consentir.
  • Icon Map Embed Viewer (31651b7a-301b-4581-871e-100cfd4d2099): se usa cuando inserta un mapa en directo en su propia aplicación interna y deja que sea el mapa el que inicie la sesión de cada lector. Si es su propia aplicación la que proporciona el token de acceso (la configuración más habitual), se usa su propia aplicación de Entra y esta no interviene, así que no hay nada que consentir. Tiene permisos delegados y de solo lectura, y nada más: acceso al almacenamiento de OneLake, Workspace.Read.All, Item.Read.All y Dataset.Read.All; el acceso a Azure Data Explorer para Eventhouse se solicita a petición. A propósito, no tiene Item.ReadWrite.All, porque un mapa insertado nunca se edita.
  • Icon Map (18b07876-c5f0-4548-bfcb-d7c6693692f6): la aplicación de inicio de sesión de "Sign in with Microsoft" en el portal de clientes de Icon Map, en la página de activación de Microsoft Marketplace y en la comprobación de licencia de Icon Map AI. Solo sirve para iniciar sesión y no tiene permisos sobre datos; consulte La aplicación de inicio de sesión de Icon Map más abajo.
  • Tekantis.IconMap-Embed: la entidad de servicio que lee los mapas publicados para el servicio público de inserción. Es una aplicación dedicada sin permisos de API a los que dar consentimiento. Obtiene un rol de acceso a datos de OneLake de solo lectura sobre el Lakehouse que contiene sus mapas publicados, concedido automáticamente al publicar (consulte Configurar la publicación), nunca como Colaborador del área de trabajo. Las empresas pueden aportar su propia entidad de servicio en su lugar.

Cada aplicación se consiente de la misma forma que la carga de trabajo, sustituyendo su propio identificador de aplicación en la URL de consentimiento de administrador. Solo necesita dar el consentimiento a las que realmente implante.

La tabla completa de permisos, aplicación por aplicación y con la justificación de cada permiso, está en el documento técnico de seguridad.

La aplicación de inicio de sesión de Icon Map

Icon Map (18b07876-c5f0-4548-bfcb-d7c6693692f6, editor Tekantis Limited, comprobado) es la aplicación que hay detrás de Sign in with Microsoft fuera de Fabric. No forma parte de la carga de trabajo de Fabric, que nunca la usa. Sus usuarios la encuentran en tres lugares:

  • el portal de clientes de Icon Map (www.icon-map.com/portal), donde un usuario puede iniciar sesión con su cuenta profesional o educativa en lugar de con una dirección de correo electrónico;
  • la página de activación de Microsoft Marketplace, cuando alguien de su organización activa una suscripción de Icon Map comprada a través de Microsoft Marketplace;
  • Icon Map AI, que inicia sesión con la aplicación Icon Map Desktop y después pide un token para esta aplicación para comprobar los derechos de su organización. Tekantis ha autorizado previamente a Icon Map Desktop para ello, así que no se pide a los usuarios que den su consentimiento por separado.

A qué puede acceder

Solo a la identidad de inicio de sesión. No declara ningún permiso de Microsoft Graph, Fabric, Power BI ni Azure Storage, y no tiene ningún permiso de aplicación (solo de aplicación). El consentimiento cubre los ámbitos estándar de inicio de sesión (openid, profile, offline_access) y el ámbito access propio de la aplicación, que se muestra como "Use the Icon Map customer portal" y permite al usuario que ha iniciado sesión usar el portal y los servicios de licencias de Icon Map, y nada más.

El token que recibe Icon Map contiene el nombre del usuario, su dirección de correo electrónico con el indicador de Microsoft que dice si su organización ha comprobado el dominio de ese correo, el identificador de su inquilino y el identificador de objeto del usuario. Icon Map reconoce a un usuario que vuelve por el identificador de inquilino y el identificador de objeto, y solo usa la dirección de correo electrónico cuando su organización ha comprobado su dominio. La aplicación no puede leer correo, archivos, calendarios, usuarios, grupos ni nada más de su directorio o de Microsoft 365.

Qué aparece en su directorio

La primera vez que alguien de su organización inicia sesión con ella, Microsoft Entra crea en su directorio una aplicación empresarial llamada Icon Map, como hace con cualquier aplicación multiinquilino. No se crean cuentas de invitado, y no se añade nada al directorio de Tekantis para sus usuarios.

Si su inquilino permite el consentimiento del usuario, los usuarios dan su consentimiento ellos mismos en su primer inicio de sesión. Si no lo permite, ven "Se necesita la aprobación del administrador" hasta que un administrador da el consentimiento.

Consentimiento previo para su organización

  • Desde la solicitud. Un administrador inicia sesión una vez (por ejemplo, en el portal de clientes) y marca Consentimiento en nombre de la organización.

  • Con Microsoft Graph, sin iniciar sesión en Icon Map, desde Azure Cloud Shell o cualquier sesión de az iniciada en su inquilino como Administrador de aplicaciones en la nube, Administrador de aplicaciones o Administrador global:

    az ad sp create --id 18b07876-c5f0-4548-bfcb-d7c6693692f6
    SP=$(az ad sp show --id 18b07876-c5f0-4548-bfcb-d7c6693692f6 --query id -o tsv)
    GRAPH=$(az ad sp show --id 00000003-0000-0000-c000-000000000000 --query id -o tsv)
    az rest --method POST --url https://graph.microsoft.com/v1.0/oauth2PermissionGrants --body "{\"clientId\":\"$SP\",\"consentType\":\"AllPrincipals\",\"resourceId\":\"$SP\",\"scope\":\"access\"}"
    az rest --method POST --url https://graph.microsoft.com/v1.0/oauth2PermissionGrants --body "{\"clientId\":\"$SP\",\"consentType\":\"AllPrincipals\",\"resourceId\":\"$GRAPH\",\"scope\":\"openid profile email offline_access\"}"
    

    Estos comandos usan la sintaxis de Bash, así que elija Bash en lugar de PowerShell en Cloud Shell. La primera línea es idempotente y, por sí sola, simplemente crea la aplicación empresarial.

El botón Conceder consentimiento de administrador de la aplicación empresarial no es una de estas vías: solo concede los permisos que declara una aplicación, y esta no declara ninguno.

Restringirla o bloquearla

Cree primero la aplicación empresarial si nadie ha iniciado sesión todavía (az ad sp create --id 18b07876-c5f0-4548-bfcb-d7c6693692f6) y, después, en Entra ID, Aplicaciones empresariales, Icon Map, Propiedades:

  • establezca ¿Se requiere asignación? en Sí y añada en Usuarios y grupos solo los usuarios o grupos que pueden usarla; o
  • establezca ¿Habilitado para que los usuarios inicien sesión? en No para bloquearla para todos.

Las directivas de acceso condicional se le aplican como a cualquier otra aplicación empresarial. Bloquearla no impide que sus usuarios inicien sesión en el portal de clientes con su dirección de correo electrónico. Sí impide el inicio de sesión de Microsoft en el portal y en la página de activación de Marketplace, e impide que Icon Map AI compruebe sus derechos con las identidades de Microsoft de sus usuarios; en ese caso funciona una clave de licencia introducida en Icon Map Desktop.

Icon Map AI informa de AADSTS500011 y menciona Icon Map. Microsoft Entra todavía no tiene ninguna aplicación empresarial para Icon Map en su inquilino, algo que puede ocurrir cuando nadie de la organización ha usado el inicio de sesión de Microsoft en el portal. Un administrador ejecuta az ad sp create --id 18b07876-c5f0-4548-bfcb-d7c6693692f6 una vez y, después, el usuario vuelve a intentarlo.

Pasos siguientes