Conceder consentimento do administrador (permissões do AD)
Esta é a etapa mais importante para uma experiência sem pop-ups.
O Icon Map conecta cada usuário com a identidade do Microsoft Entra (Azure AD) dele e, em nome dele, lê os dados do Fabric e do OneLake. Para isso, ele solicita um conjunto de permissões delegadas. Se essas permissões não tiverem recebido consentimento no nível do locatário, cada usuário recebe uma solicitação de consentimento na primeira vez que um recurso precisa delas: o pop-up "Permissões solicitadas". Conceder o consentimento do administrador para todo o locatário uma única vez elimina essas solicitações para todos.
A carga de trabalho está registrada como dois aplicativos do Entra, um frontend e um backend, e ambos precisam de consentimento. Esta página trata dos dois.
Em resumo
Se a pessoa que adiciona a carga de trabalho for administradora do Entra, tudo se resume a três solicitações dentro do Fabric: uma quando a carga de trabalho é adicionada (o aplicativo de backend), uma quando o primeiro mapa é aberto (o aplicativo de frontend) e uma na primeira vez que um Lakehouse ou Eventhouse é conectado (a permissão sob demanda do OneLake ou do Eventhouse). Marque Consentimento em nome da sua organização em cada uma e ninguém mais no locatário receberá a solicitação. Os administradores que preferem não abrir o produto podem fazer tudo isso, incluindo preparar o locatário e pré-aprovar as permissões sob demanda, com um único script: Onboard-IconMapTenant.ps1 (Opção C). Todo o restante desta página explica o que essas solicitações contêm e as alternativas.
O consentimento é delegado: o Icon Map age como o usuário conectado e só consegue acessar os dados que esse usuário já tem permissão para ver. O consentimento do administrador não dá ao Icon Map acesso independente aos seus dados; ele apenas pré-aprova as permissões para que cada usuário não precise ser consultado.
Quem faz isso
Um Administrador Global, Administrador de Função Privilegiada ou Administrador de Aplicativos de Nuvem no Microsoft Entra.
Os aplicativos
O frontend é o aplicativo no qual os seus usuários entram. O backend é o aplicativo que o próprio Fabric chama a cada criação, salvamento e exclusão de item, e o que executa os trabalhos do Construtor de tilesets e atende os visuais do Power BI. Dar consentimento apenas ao frontend deixa o locatário configurado pela metade.
| Frontend | Backend | |
|---|---|---|
| Nome de exibição | Tekantis.IconMap | Tekantis.IconMap-Backend |
| ID do aplicativo (cliente) | 8ac140d7-88a0-4857-84b4-73c708afd645 |
81c50c7d-ca21-414c-b7d9-524410f38339 |
| Domínio do editor | tekantis.com | tekantis.com |
| Público de entrada | Multilocatário: uma entidade de serviço aparece no seu locatário no primeiro uso ou no consentimento | Multilocatário: uma entidade de serviço aparece no seu locatário no consentimento |
Os dois aplicativos falham de formas diferentes quando falta uma permissão. Uma permissão ausente no frontend aparece como um pop-up "Permissões solicitadas". O backend nunca faz solicitações: uma permissão ausente no backend aparece mais tarde como um trabalho do Construtor de tilesets com falha ou uma lista de Catálogos Organizacionais vazia em um visual do Power BI, o que é muito mais difícil de relacionar ao consentimento.
Com o que você está consentindo
Tekantis.IconMap (frontend)
O frontend solicita estas permissões delegadas. Elas correspondem diretamente aos recursos do produto que leem os seus dados:
| API | Permissão | Usada para |
|---|---|---|
| Microsoft Graph | User.Read |
Conectar você e ler o seu perfil básico. |
| Power BI / Fabric | Fabric.Extend |
Executar como carga de trabalho do Fabric dentro do shell do Fabric. |
| Power BI / Fabric | Fabric.Extend.IframeSandbox |
Executar o iframe do editor com o sandbox flexibilizado do Fabric, para que os arquivos exportados (CSV, GeoJSON, plantas, vídeos de tour) sejam baixados diretamente do navegador, sem nenhum servidor da Tekantis no caminho. |
| Power BI / Fabric | Workspace.Read.All |
Listar os workspaces que você pode ver. |
| Power BI / Fabric | Capacity.Read.All |
Verificar a capacidade associada a um workspace. |
| Power BI / Fabric | Item.ReadWrite.All |
Abrir e salvar o item do Icon Map e ler os itens de origem. |
| Power BI / Fabric | Item.Execute.All |
Executar consultas em Warehouse e em pontos de extremidade de análise SQL, e a atualização agendada. |
| Power BI / Fabric | OneLake.ReadWrite.All |
Gerenciar a função de acesso a dados do OneLake que concede ao leitor de mapas publicados acesso somente leitura no momento da publicação. Só é usada quando você publica um mapa incorporado. |
| Power BI / Fabric | Dataset.Read.All |
Fontes de modelo semântico e consultas DAX. A segurança em nível de linha continua sendo aplicada pelo modelo. |
| Power BI / Fabric | Connection.Read.All |
Listar conexões, para descobrir um geocatálogo do Planetary Computer. Somente leitura. |
Duas permissões ficam deliberadamente fora desta lista e são solicitadas sob demanda, na primeira vez que um recurso precisa delas. Consulte Permissões solicitadas sob demanda:
| API | Permissão | Usada para |
|---|---|---|
| Azure Storage | user_impersonation |
Ler e gravar os seus arquivos do OneLake: tabelas e Arquivos do Lakehouse, imagens, blocos, mapas publicados e write-back são todos lidos pelo ponto de extremidade do OneLake com a sua identidade, e as URLs SAS de curta duração do OneLake que o navegador usa para os blocos são geradas a partir desse token. |
| Azure Data Explorer | user_impersonation |
Executar consultas KQL no Eventhouse. |
Repare no que mais não está na lista. O Icon Map não tem nenhuma permissão Lakehouse.* ou Eventhouse.* do Fabric: as tabelas e os arquivos do Lakehouse são lidos diretamente do OneLake, e o Eventhouse é consultado no cluster Kusto. Ele também não tem Tenant.Read.All nem Tenant.ReadWrite.All, as permissões da API de administração do Fabric, então não consegue ver nada no nível do locatário.
Todas essas permissões são delegadas (agem como o usuário): não há acesso a dados somente de aplicativo na experiência de criação.
openid, profile e offline_access do Microsoft Graph recebem consentimento junto com elas: são o básico da entrada e não dão acesso a dados. offline_access é o que a caixa de diálogo de consentimento descreve como "Manter o acesso aos dados aos quais você concedeu acesso": ela permite que o Icon Map atualize o seu token em segundo plano, em vez de pedir de novo.
Tekantis.IconMap-Backend
O backend nunca mantém uma sessão própria. Quando o Fabric o chama, ou quando um visual do Power BI se conecta a ele, ele troca o token de quem chamou, em nome desse usuário (OAuth 2.0 On-Behalf-Of), por tokens do Fabric e do OneLake de curta duração, de modo que só acessa o que o usuário já pode acessar. As permissões delegadas dele são um subconjunto das do frontend:
| API | Permissão | Usada para |
|---|---|---|
| Microsoft Graph | User.Read |
Básico da entrada. |
| Microsoft Graph | SensitivityLabel.Read |
Ler os rótulos de confidencialidade dos itens que um mapa usa, e os seus direitos de uso sob eles, para que as exportações e a publicação respeitem o rótulo. Somente com consentimento do administrador; sem ele, as exportações de dados rotulados são recusadas em vez de permitidas. |
| Power BI / Fabric | Fabric.Extend |
Resolver as permissões do usuário em um item do Icon Map pela API de controle da carga de trabalho. |
| Power BI / Fabric | Workspace.Read.All |
Listar os workspaces que o usuário pode ver, para os visuais do Power BI e para a publicação. |
| Power BI / Fabric | Item.ReadWrite.All, Item.Execute.All |
Ler os itens de Catálogo Organizacional que o usuário pode ver, para os visuais do Power BI e para a publicação, e criar e executar a Definição de Trabalho do Spark por trás dos trabalhos do Construtor de tilesets. |
Ele também tem a única permissão de aplicativo (somente de aplicativo) de todo o conjunto do Icon Map: Microsoft Graph CrossTenantInformation.ReadBasic.All, usada para obter o nome de exibição e o domínio do seu locatário. São metadados do diretório e não dão acesso aos seus dados, mas a permissão aparece na tela de consentimento em Permissões de aplicativo, e só um administrador pode concedê-la. Esse é um dos motivos pelos quais o backend precisa de consentimento do administrador, e não do usuário.
O backend também lê e grava no OneLake em nome do usuário (o resultado do Construtor de tilesets e, para os visuais do Power BI, os manifestos de catálogos organizacionais e as imagens do Lakehouse) com o user_impersonation do Azure Storage. Assim como no frontend, essa permissão é solicitada sob demanda: o Icon Map a pede na primeira vez que alguém inicia um trabalho do Construtor de tilesets, e um administrador pode pré-aprová-la para todos (consulte Permissões solicitadas sob demanda).
Ao contrário do frontend, o backend solicita todo o seu conjunto de permissões de uma só vez (/.default). Uma permissão ausente da concessão para todo o locatário não gera solicitação para ninguém; a chamada simplesmente falha. Se os trabalhos do Construtor de tilesets ou a navegação nos Catálogos Organizacionais pelo Power BI pararem de funcionar depois de uma alteração no consentimento, abra novamente a URL de consentimento do administrador do backend abaixo e conceda de novo a permissão sob demanda do Azure Storage para o backend.
Sobre o "All" nestes nomes
Item.ReadWrite.All, Dataset.Read.All e as demais dão a impressão de que o Icon Map pode ver tudo no seu locatário. Ele não pode. Essas são permissões delegadas: o token leva a identidade do usuário conectado, e o Fabric avalia as permissões de item desse próprio usuário em cada chamada. Item.ReadWrite.All significa "ler e alterar os itens que este usuário já tem permissão para ler e alterar". O sufixo é a convenção de nomes da Microsoft para toda a superfície da API do Fabric, e não uma indicação de alcance: não existe uma variante mais restrita, por workspace ou por item, que se possa solicitar no lugar. As permissões que realmente abrangem um locatário são Tenant.Read.All e Tenant.ReadWrite.All, e o Icon Map não solicita nenhuma delas.
Se quiser restringir ainda mais o alcance, faça isso controlando quem pode usar o aplicativo, e não pelo escopo: consulte Restringir quem pode usar o Icon Map abaixo.
Restringir quem pode usar o Icon Map
O consentimento do administrador vale para todo o locatário, mas o uso do aplicativo não precisa valer. Há dois controles, ambos totalmente nas suas mãos e nenhum deles depende da Tekantis:
- Exigir atribuição. Em Entra ID, Aplicativos empresariais, Tekantis.IconMap, Propriedades, defina Atribuição obrigatória como Sim e adicione em Usuários e grupos somente os usuários ou grupos que devem ter o Icon Map. Qualquer pessoa fora desse conjunto tem o token recusado, independentemente das permissões consentidas. Isso combina bem com limitar as configurações de locatário do Fabric ao mesmo grupo de segurança.
- Acesso Condicional. Direcione ao aplicativo uma política de Acesso Condicional para MFA, dispositivos em conformidade ou com ingresso híbrido, locais nomeados ou frequência de entrada, como para qualquer outro aplicativo empresarial.
Para a maioria das organizações, esse é um controle mais significativo do que a lista de permissões, porque limita quem pode agir, e não o que um usuário autorizado já poderia fazer por conta própria.
Antes de consentir: prepare o seu locatário
O Microsoft Entra só permite que um aplicativo receba consentimento para um serviço da Microsoft depois que esse serviço tiver uma entrada no seu locatário, uma entidade de serviço. O Entra cria essa entrada na primeira vez que qualquer aplicativo de terceiros recebe consentimento para o serviço, mas não consegue criá-la como parte desse mesmo consentimento. O Fabric também não a cria. Por isso, em um locatário que nunca usou um serviço por meio de um aplicativo de terceiros, o primeiro consentimento para ele falha com:
AADSTS650052: The app is trying to access a service '<id>'(Azure Storage) that your
organization '<tenant>' lacks a service principal for.
O consentimento do próprio Icon Map não depende mais desses serviços (somente do Microsoft Graph e do Power BI, que todo locatário do Fabric tem), então as duas URLs de consentimento do administrador abaixo funcionam em qualquer locatário. Mas, na primeira vez que alguém conecta um Lakehouse (Azure Storage) ou um Eventhouse (Azure Data Explorer), o Entra precisa que a entrada exista. Crie-a uma vez, no Azure Cloud Shell ou em qualquer sessão az conectada ao seu locatário como Administrador de Aplicativos de Nuvem, Administrador de Aplicativos ou Administrador Global:
az ad sp create --id e406a681-f3d4-42a8-90b6-c2b029497af1
e, somente se você for conectar fontes do Eventhouse / KQL:
az ad sp create --id 2746ea77-4702-4b45-80ca-3c97e680e8b7
Os dois comandos são idempotentes: "Another object with the same value for property appId already exists" significa que a entrada já existia. O equivalente no Graph PowerShell é New-MgServicePrincipal -AppId <id>. Essas entradas não têm credenciais e não dão acesso; são os mesmos objetos que o Entra criaria em silêncio na primeira vez que outro aplicativo usasse esses serviços. Para verificar se o seu locatário já as tem, procure Azure Storage e Azure Data Explorer em Aplicativos empresariais com o filtro Tipo de aplicativo definido como Todos os aplicativos.
No portal do Azure. Não há nenhuma página no Centro de administração do Microsoft Entra que crie a entrada de um serviço da Microsoft (Aplicativos empresariais, Novo aplicativo oferece apenas a galeria e os seus próprios registros), mas você pode executar o comando sem instalar nada usando o shell integrado do portal:
- Entre em portal.azure.com como administrador do locatário.
- Selecione o ícone do Cloud Shell na barra superior (o símbolo
>_) e escolha PowerShell. Na primeira vez, aceite a solicitação de armazenamento ou escolha Nenhuma conta de armazenamento necessária. - Verifique se o shell está no locatário certo:
az account show --query tenantId -o tsv. Se não estiver, executeaz login --tenant <your-tenant-id> --allow-no-subscriptions. - Cole a linha
az ad sp createacima e pressione Enter. - Confirme em Microsoft Entra ID, Aplicativos empresariais com o filtro Tipo de aplicativo definido como Todos os aplicativos: o Azure Storage agora aparece.
Ou baixe o script: Prepare-IconMapTenant.ps1 faz a verificação e a criação de uma só vez (-TenantId <guid>, adicione -IncludeEventhouse para a segunda entrada e -WhatIf para visualizar) e precisa apenas da CLI do Azure, então também é executado no Cloud Shell.
Isso é uma característica do Microsoft Entra e do Fabric, e não do Icon Map: toda carga de trabalho de parceiro que lê o OneLake pela API do Azure Storage está sujeita a isso, e o próprio início rápido de cargas de trabalho do Fabric da Microsoft traz a mesma etapa. Os locatários que já usaram o Azure Storage ou o Azure Data Explorer por meio de qualquer aplicativo de terceiros encontrarão as entradas e podem pular esta seção.
Como conceder o consentimento
Dê consentimento aos dois aplicativos. Cada método abaixo dá consentimento a todo o conjunto de permissões de um aplicativo em uma única ação: não é preciso consentir recurso por recurso.
Opção A - aceitar as solicitações dentro do Fabric (recomendado)
Quando um administrador adiciona a carga de trabalho e abre o primeiro mapa, o próprio Fabric mostra as solicitações de consentimento, e a solicitação mostrada a um administrador tem uma caixa de seleção Consentimento em nome da sua organização. Marcá-la registra a mesma concessão para todo o locatário que as URLs abaixo.
- Entre no Fabric como um usuário que seja ao mesmo tempo administrador do Fabric (ou administrador de capacidade) e Administrador Global, Administrador de Aplicativos de Nuvem ou Administrador de Aplicativos do Entra.
- Adicione a carga de trabalho pelo Hub de cargas de trabalho. Aparece uma solicitação para Tekantis.IconMap-Backend, o aplicativo que o Fabric chama a cada operação de item. Marque Consentimento em nome da sua organização e escolha Aceitar.
- Crie ou abra um item do Icon Map. Uma solicitação para Tekantis.IconMap aparece na primeira vez que o editor pede um token ao Fabric. Marque a caixa novamente e escolha Aceitar.
- Conecte um Lakehouse (e, se usar, um Eventhouse). A permissão sob demanda gera uma solicitação uma vez; marque a caixa pela terceira vez. Em um locatário que nunca usou o Azure Storage, é nesta etapa que aparece a página prepare o seu locatário: execute o comando e tente novamente.
Para a maioria das organizações, essa é toda a integração. Se a caixa de seleção não aparecer, a sua conta não tem uma função de administrador ou a política de consentimento do seu locatário a desativou; use a Opção B.
Opção B - URLs de consentimento do administrador
Para administradores que preferem consentir antes de a carga de trabalho ser disponibilizada para qualquer pessoa, ou sem abrir o produto. Abra cada uma das URLs a seguir, uma de cada vez, conectado como administrador, substituindo {your-tenant-id} pelo ID do seu locatário do Entra (um GUID). Revise as permissões e escolha Aceitar em cada uma para consentir em nome de toda a organização.
O redirect_uri de cada URL envia o resultado para a página do próprio Icon Map, que mostra uma confirmação ou o motivo exato da recusa do consentimento. Sem ele, o Entra escolhe um dos endereços registrados do aplicativo, e o resultado pode se perder em uma página do Fabric.
Frontend, Tekantis.IconMap:
https://login.microsoftonline.com/{your-tenant-id}/adminconsent?client_id=8ac140d7-88a0-4857-84b4-73c708afd645&redirect_uri=https://app.iconmap.ai/close
Backend, 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
Essas duas URLs cobrem as permissões que cada aplicativo declara. A permissão do OneLake é solicitada sob demanda e não está incluída; por isso, se o seu locatário não permite que os usuários consintam por conta própria, abra também estas duas, que pré-aprovam o acesso ao OneLake para todos, para que o primeiro Lakehouse nunca gere solicitação:
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
Elas exigem que a entrada do Azure Storage de Antes de consentir exista. O Eventhouse é por cluster, então é mais fácil pré-aprová-lo com o script. Consulte Permissões solicitadas sob demanda.
Opção C - um script para tudo
Onboard-IconMapTenant.ps1 faz toda a integração pelo Microsoft Graph, sem abrir o produto nem as URLs, e é idempotente: execute-o novamente e ele informa o que já está configurado:
- Cria a entrada do locatário para o Azure Storage (e para o Azure Data Explorer com
-IncludeEventhouse), a etapa prepare o seu locatário. - Cria as entidades de serviço de Tekantis.IconMap e Tekantis.IconMap-Backend.
- Registra a concessão para todo o locatário das permissões declaradas de cada aplicativo, o mesmo que as solicitações da Opção A e as URLs da Opção B fazem.
- Atribui a única permissão de aplicativo do backend (Microsoft Graph
CrossTenantInformation.ReadBasic.All). - Pré-aprova a permissão sob demanda do Azure Storage para os dois aplicativos, e a do Azure Data Explorer para o frontend com
-IncludeEventhouse, para que o primeiro Lakehouse ou Eventhouse também não gere solicitação. - Lista todas as concessões que registrou, para os seus registros.
./Onboard-IconMapTenant.ps1 -TenantId {your-tenant-id} -WhatIf
./Onboard-IconMapTenant.ps1 -TenantId {your-tenant-id} -IncludeEventhouse
Ele precisa apenas da CLI do Azure, então é executado no Azure Cloud Shell (carregue o arquivo com o botão de upload do shell e execute-o a partir de ~). Use -WhatIf primeiro para ver o que ele mudaria. A etapa 4 exige um Administrador Global ou Administrador de Função Privilegiada; um Administrador de Aplicativos de Nuvem pode executar todo o resto, e o script avisa se precisar pular essa etapa.
Opção D - Aplicativos empresariais
- No Centro de administração do Microsoft Entra, acesse Aplicativos empresariais.
- Encontre Tekantis.IconMap (ele aparece depois que a carga de trabalho é habilitada ou depois de uma primeira entrada).
- Abra Permissões e escolha Conceder consentimento do administrador para <sua organização>.
- Repita para Tekantis.IconMap-Backend. Se ele ainda não aparecer, a entidade de serviço dele não foi criada no seu locatário; use a URL do backend da Opção B, que a cria e dá o consentimento em uma única etapa.
Essa página só mostra as permissões que um aplicativo declara, então não consegue pré-aprovar as permissões sob demanda.
Scripts
Os três são PowerShell, precisam apenas da CLI do Azure, são executados no Azure Cloud Shell, aceitam -WhatIf e são idempotentes.
| Script | O que faz | Quando usar |
|---|---|---|
| Onboard-IconMapTenant.ps1 | Tudo o que está nesta página: prepara o locatário, dá consentimento aos dois aplicativos para todos os usuários, atribui a permissão de aplicativo do backend e pré-aprova as permissões sob demanda | Você quer uma implantação sem solicitações e sem cliques no produto |
| Prepare-IconMapTenant.ps1 | Cria somente as entradas do Azure Storage (e, opcionalmente, do Azure Data Explorer) | Você consente pelas solicitações ou pelas URLs e só precisa da preparação única |
| Grant-IconMapResourceConsent.ps1 | Pré-aprova uma permissão sob demanda (Storage ou Eventhouse) para um aplicativo | O consentimento já foi dado e você quer eliminar depois a solicitação do Lakehouse ou do Eventhouse |
Permissões solicitadas sob demanda
O Azure Storage (OneLake) e o Azure Data Explorer (Eventhouse) não são declarados nos aplicativos do Icon Map e, por isso, não são cobertos pelas URLs de consentimento do administrador acima. O Icon Map os solicita na primeira vez que um usuário usa um recurso que precisa deles:
| Permissão | Solicitada pela primeira vez quando | Qual aplicativo |
|---|---|---|
Azure Storage user_impersonation |
Uma tabela ou arquivo do Lakehouse, uma imagem do OneLake, um catálogo organizacional ou a publicação é usado | Tekantis.IconMap (frontend) |
Azure Storage user_impersonation |
Um trabalho do Construtor de tilesets é iniciado | Tekantis.IconMap-Backend |
Azure Data Explorer user_impersonation |
Uma fonte de Eventhouse / banco de dados KQL é consultada | Tekantis.IconMap (frontend) |
Os mapas base, o Catálogo do Icon Map, as fontes de modelo semântico, de Warehouse e de ponto de extremidade SQL não precisam de nenhuma delas e funcionam assim que os aplicativos recebem consentimento.
Em um locatário que permite o consentimento do usuário, o usuário vê uma solicitação para a permissão e a aceita.
Se os seus usuários não puderem consentir por conta própria (a configuração Não permitir o consentimento do usuário do Entra, ou a configuração de editores verificados, que exclui essas permissões), o usuário vê "Needs administrator consent" na primeira vez que conecta um Lakehouse ou Eventhouse e não consegue continuar: as duas URLs de consentimento do administrador da Opção B não cobrem essas permissões por si sós. Um administrador precisa pré-aprová-las uma vez, de uma destas três formas, e depois disso nenhum usuário é consultado:
Pela solicitação. Na primeira vez que um administrador usa o recurso, ele marca Consentimento em nome da sua organização na solicitação. Nenhuma ferramenta é necessária.
URL de consentimento do administrador com um escopo. O mesmo ponto de extremidade acima aceita um 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/closePara o Eventhouse, o escopo é
https://{your-cluster}.kusto.fabric.microsoft.com/user_impersonation; a opção pelo Graph abaixo é mais simples.Script. Onboard-IconMapTenant.ps1 faz isso como parte de uma integração completa; para adicionar a permissão depois, Grant-IconMapResourceConsent.ps1
-TenantId <tenant> -Resource Storage(ou-Resource Eventhouse, e-App Backendpara o backend) registra a concessão pelo Microsoft Graph. Ele também cria as entradas de serviço de Antes de consentir se elas estiverem faltando. Usa apenas a CLI do Azure, então é executado no Azure Cloud Shell; adicione-WhatIfpara visualizar.
Observe que o botão Aplicativos empresariais, Permissões, Conceder consentimento do administrador do Centro de administração do Microsoft Entra não é uma dessas formas: ele concede apenas as permissões que um aplicativo declara, e essas são deliberadamente não declaradas. A caixa de seleção da solicitação e a URL com o parâmetro scope são as duas formas que usam apenas o navegador.
Se o seu locatário bloqueia o consentimento do usuário (veja abaixo), uma dessas formas é obrigatória antes que alguém possa usar fontes do Lakehouse ou do Eventhouse; os usuários são avisados disso no produto, e o pedido é encaminhado pelo fluxo de solicitações de consentimento do administrador, quando o seu locatário usa um.
Configurações de consentimento do usuário no Entra
Independentemente do que foi dito acima, Entra ID, Aplicativos empresariais, Consentimento e permissões controla se os usuários comuns podem consentir por conta própria:
- Permitir consentimento do usuário para aplicativos: os usuários veem o pop-up "Permissões solicitadas" e podem aceitá-lo por conta própria. O Icon Map funciona, mas todos os usuários recebem a solicitação.
- Não permitir o consentimento do usuário: os usuários veem "Precisa de aprovação do administrador" e ficam bloqueados até que um administrador dê o consentimento. Nessa configuração, o consentimento do administrador para todo o locatário não é opcional: é um pré-requisito para que qualquer pessoa possa usar o Icon Map.
- Permitir o consentimento do usuário para aplicativos de editores verificados, para permissões selecionadas: a configuração intermediária. Várias permissões do Icon Map são escopos
*.Alldo Fabric restritos a administradores, então os usuários continuam bloqueados nelas.
Se o seu locatário usa o fluxo de solicitação de consentimento do administrador, uma solicitação do Icon Map aparece em Solicitações de consentimento do administrador para aprovação.
Verificar a concessão
Depois de dar o consentimento, verifique os dois aplicativos e confirme que as concessões estão registradas para todos os usuários, e não para um usuário de cada vez. Em Aplicativos empresariais, Tekantis.IconMap, Permissões, a guia Consentimento do administrador deve listar as permissões do frontend acima. Tekantis.IconMap-Backend deve listar o conjunto do backend, incluindo a permissão de aplicativo do Microsoft Graph. Tudo o que aparece apenas na guia Consentimento do usuário foi consentido por uma pessoa e continuará gerando solicitação para a próxima.
A mesma verificação pela CLI do Azure: uma concessão para todo o locatário tem consentType igual a AllPrincipals, e uma por usuário tem 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 com 81c50c7d-ca21-414c-b7d9-524410f38339 para o backend. A permissão de aplicativo dele é registrada separadamente, como uma atribuição de função de aplicativo:
az rest --method GET --url "https://graph.microsoft.com/v1.0/servicePrincipals/<backendObjectId>/appRoleAssignments"
Depois de conceder
- Aguarde de 10 a 30 minutos para que o consentimento seja propagado.
- Os novos usuários agora devem abrir o Icon Map e usar os recursos dele sem nenhuma solicitação de consentimento.
- Os usuários que já tinham consentido individualmente não são afetados; eles apenas deixam de receber a solicitação.
Solução de problemas
Uma solicitação apareceu assim que a carga de trabalho foi adicionada, antes de alguém abrir um mapa. É o esperado: esse é o consentimento do aplicativo de backend, que o Fabric solicita quando a carga de trabalho é adicionada. Aceite-o (em nome da sua organização, se você for administrador). O aplicativo de frontend gera mais uma solicitação quando o primeiro mapa é aberto.
Um usuário ainda recebe solicitação depois do consentimento do administrador. O Entra solicita qualquer escopo que ainda não esteja coberto por uma concessão para todo o locatário, mesmo que o aplicativo já tenha recebido consentimento para o resto. Verifique na guia Consentimento do administrador se a permissão específica citada no pop-up está listada. Um pop-up com "Exibir todos os conjuntos de dados" é Dataset.Read.All, por exemplo, que só as fontes de modelo semântico usam e que pode passar despercebido se o consentimento foi dado antes de esse recurso entrar em uso. Abrir novamente a URL de consentimento do administrador inclui todo o conjunto atual.
Os trabalhos do Construtor de tilesets falham, ou a guia Catálogos Organizacionais de um visual do Power BI está vazia, e não houve pop-up. O aplicativo de backend não recebeu consentimento, ou falta uma permissão na concessão dele. O backend nunca gera solicitações. Verifique Tekantis.IconMap-Backend na guia Consentimento do administrador ou abra novamente a URL de consentimento do administrador dele.
O pop-up, ou a URL de consentimento do administrador, falha com AADSTS650052 "...lacks a service principal for". O seu locatário nunca usou o serviço citado (Azure Storage ou Azure Data Explorer) por meio de um aplicativo de terceiros, então o Entra ainda não tem uma entrada para ele e não consegue registrar o consentimento. Siga Antes de consentir: prepare o seu locatário (um único comando cria a entrada) e tente novamente. O Icon Map mostra a mesma explicação, com o comando, sempre que encontra esse erro.
As fontes do Lakehouse ou do Eventhouse dizem "needs administrator consent". O seu locatário não permite que os usuários consintam, e a permissão sob demanda não foi pré-aprovada. Um administrador usa uma das três formas descritas em Permissões solicitadas sob demanda.
O pop-up diz "não verificado" e "Este aplicativo não é publicado pela Microsoft". É o esperado. O Icon Map é publicado pela Tekantis Limited, e não pela Microsoft, e a caixa de diálogo identifica assim todos os editores que não são a Microsoft. Conceder o consentimento do administrador elimina a caixa de diálogo para os seus usuários.
O pop-up diz "Precisa de aprovação do administrador". O seu locatário bloqueia o consentimento do usuário. Consulte Configurações de consentimento do usuário no Entra acima. Um administrador precisa dar o consentimento.
Solicitações repetidas de entrada ou de MFA. Isso é Acesso Condicional, não consentimento, e esta etapa não as elimina. Consulte Navegador e rede.
Outros aplicativos do Icon Map
Os dois aplicativos acima são a carga de trabalho do Fabric. O Icon Map usa deliberadamente aplicativos do Entra separados para cada superfície do produto, cada um com as permissões mínimas para a sua função; assim, além da carga de trabalho, você só consente o que implantar:
- Icon Map Desktop (
f68c8ff5-476f-4282-a125-47151eb8c6e8): usado na entrada do aplicativo desktop. Acesso ao armazenamento do OneLake, maisWorkspace.Read.AlleItem.ReadWrite.Allpara navegar pelos workspaces e implantar mapas, eDataset.Read.Allpara fontes de modelo semântico. Dê consentimento da mesma forma se você implantar o aplicativo desktop; o uso puramente local não exige entrada. - Icon Map QGIS Connector (
ab3aeae9-ced2-40cb-bc4f-9ce4cbb109f3): usado pelo plug-in do QGIS. Acesso ao armazenamento do OneLake, maisWorkspace.Read.All,Item.Read.All,Item.ReadWrite.AlleItem.Execute.Allpara os modos de navegação e de criação de mapas. O plug-in inclui um assistente de consentimento do administrador; sem o consentimento do administrador, um modo reduzido permite que os usuários publiquem colando os IDs do workspace e do item, usando apenas a permissão do OneLake que o próprio usuário pode consentir. - Icon Map Embed Viewer (
31651b7a-301b-4581-871e-100cfd4d2099): usado quando você incorpora um mapa ao vivo no seu próprio aplicativo interno e deixa que o mapa conecte cada leitor. Se, em vez disso, o seu próprio aplicativo fornecer o token de acesso (o arranjo mais comum), é usado o seu próprio aplicativo do Entra, e este não entra em jogo; portanto, não há nada a consentir aqui. Ele tem permissões delegadas e somente leitura, e nada mais: acesso ao armazenamento do OneLake,Workspace.Read.All,Item.Read.AlleDataset.Read.All; o acesso ao Azure Data Explorer para o Eventhouse é solicitado sob demanda. Ele deliberadamente não temItem.ReadWrite.All, porque um mapa incorporado nunca é editado. - Icon Map (
18b07876-c5f0-4548-bfcb-d7c6693692f6): o aplicativo de entrada para "Entrar com a Microsoft" no portal do cliente do Icon Map, na página de ativação do Microsoft Marketplace e na verificação de licença do Icon Map AI. Ele serve apenas para entrada e não tem permissões sobre dados. Consulte O aplicativo de entrada do Icon Map abaixo. - Tekantis.IconMap-Embed: a entidade de serviço de leitura de mapas publicados do serviço de incorporação público. É um aplicativo dedicado sem permissões de API a consentir. Ele recebe uma função de acesso a dados do OneLake somente leitura no Lakehouse que guarda os seus mapas publicados, concedida automaticamente ao publicar (consulte Configurar a publicação), nunca de Colaborador do workspace. As empresas podem fornecer a própria entidade de serviço para isso.
Cada aplicativo recebe consentimento da mesma forma que a carga de trabalho, substituindo pelo ID do aplicativo correspondente na URL de consentimento do administrador. Você só precisa consentir os que realmente implantar.
A tabela completa de permissões, aplicativo por aplicativo, com a justificativa de cada permissão, está no whitepaper de segurança.
O aplicativo de entrada do Icon Map
O Icon Map (18b07876-c5f0-4548-bfcb-d7c6693692f6, editor Tekantis Limited, verificado) é o aplicativo por trás de Entrar com a Microsoft fora do Fabric. Ele não faz parte da carga de trabalho do Fabric, que nunca o usa. Os seus usuários o encontram em três lugares:
- no portal do cliente do Icon Map (www.icon-map.com/portal), onde um usuário pode entrar com a conta corporativa ou de estudante em vez de um endereço de e-mail;
- na página de ativação do Microsoft Marketplace, quando alguém da sua organização ativa uma assinatura do Icon Map comprada pelo Microsoft Marketplace;
- no Icon Map AI, que entra com o aplicativo Icon Map Desktop e depois pede um token para este aplicativo para verificar o direito de uso da sua organização. A Tekantis pré-autorizou o Icon Map Desktop para isso, então os usuários não precisam consentir separadamente.
O que ele pode acessar
Somente a identidade de entrada. Ele não declara nenhuma permissão do Microsoft Graph, do Fabric, do Power BI ou do Azure Storage e não tem nenhuma permissão de aplicativo (somente de aplicativo). O consentimento abrange os escopos padrão de entrada (openid, profile, offline_access) e o escopo access do próprio aplicativo, exibido como "Use the Icon Map customer portal", que permite ao usuário conectado usar o portal e os serviços de licenciamento do Icon Map, e nada mais.
O token que o Icon Map recebe traz o nome do usuário, o endereço de e-mail dele com o indicador da Microsoft que informa se a sua organização verificou o domínio desse e-mail, o ID do seu locatário e o ID de objeto do usuário. O Icon Map reconhece um usuário que retorna pelo ID do locatário e pelo ID de objeto, e só usa o endereço de e-mail quando a sua organização verificou o domínio dele. O aplicativo não pode ler e-mails, arquivos, calendários, usuários, grupos nem nada mais no seu diretório ou no Microsoft 365.
O que aparece no seu diretório
Na primeira vez que alguém da sua organização entra com ele, o Microsoft Entra cria um aplicativo empresarial chamado Icon Map no seu diretório, como faz com qualquer aplicativo multilocatário. Nenhuma conta de convidado é criada, e nada é adicionado ao diretório da Tekantis para os seus usuários.
Quando o seu locatário permite o consentimento do usuário, os usuários consentem por conta própria na primeira entrada. Quando não permite, eles veem "Precisa de aprovação do administrador" até que um administrador dê o consentimento.
Pré-consentir para a sua organização
Pela solicitação. Um administrador entra uma vez (por exemplo, no portal do cliente) e marca Consentimento em nome da sua organização.
Com o Microsoft Graph, sem entrar no Icon Map, a partir do Azure Cloud Shell ou de qualquer sessão
azconectada ao seu locatário como Administrador de Aplicativos de Nuvem, Administrador de Aplicativos ou 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\"}"Esses comandos usam a sintaxe do Bash; por isso, escolha Bash em vez de PowerShell no Cloud Shell. A primeira linha é idempotente e, sozinha, apenas cria o aplicativo empresarial.
O botão Conceder consentimento do administrador do aplicativo empresarial não é uma dessas formas: ele concede apenas as permissões que um aplicativo declara, e este não declara nenhuma.
Restringir ou bloquear
Crie primeiro o aplicativo empresarial se ninguém tiver entrado ainda (az ad sp create --id 18b07876-c5f0-4548-bfcb-d7c6693692f6) e, em seguida, em Entra ID, Aplicativos empresariais, Icon Map, Propriedades:
- defina Atribuição obrigatória como Sim e adicione em Usuários e grupos somente os usuários ou grupos que podem usá-lo; ou
- defina Habilitado para os usuários entrarem como Não para bloqueá-lo para todos.
As políticas de Acesso Condicional se aplicam a ele como a qualquer outro aplicativo empresarial. Bloqueá-lo não impede que os seus usuários entrem no portal do cliente com o endereço de e-mail. Mas impede a entrada com a Microsoft no portal e na página de ativação do Marketplace, e impede que o Icon Map AI verifique o direito de uso da sua organização com as identidades Microsoft dos seus usuários; nesse caso, uma chave de licença inserida no Icon Map Desktop funciona no lugar.
O Icon Map AI informa AADSTS500011, citando o Icon Map. O Microsoft Entra ainda não tem um aplicativo empresarial para o Icon Map no seu locatário, o que pode acontecer quando ninguém na organização usou a entrada com a Microsoft no portal. Um administrador executa az ad sp create --id 18b07876-c5f0-4548-bfcb-d7c6693692f6 uma vez, e o usuário tenta novamente.
Próximas etapas
- Habilitar as configurações de locatário: as configurações que permitem esse acesso aos dados.
- Navegador e rede: outras causas de solicitações.