Como: Ativar a segurança a nível da linha no Power BI no Power Pages
Tal como o Power Pages é a ferramenta de escolha para expandir rapidamente a sua implementação do Microsoft Dataverse para o público sob a forma de um Web site, o Power BI é a ferramenta de escolha para compor visualizações orientadas por dados elegantes. A beleza do Power Platform reside na sua capacidade de combinar as duas na perfeição. No passado, para compor um relatório do Power BI numa página Web, os administradores tinham de publicar o relatório na Web e incorporá-lo num iFrame. Mesmo que se aplicassem Permissões de páginas para bloquear a página com o relatório, se um indivíduo tivesse a ligação utilizada para incorporar o relatório, qualquer pessoa ainda poderia aceder ao relatório fora do site.
A finalidade de publicar na Web é permitir que qualquer indivíduo na Web consuma os dados e inclusivamente volte a partilhar o relatório.
Aviso
Quando utiliza Publicar na Web, qualquer pessoa na Internet pode ver o seu relatório ou elemento visual publicado. A visualização não requer autenticação. Inclui a visualização dos dados ao nível do detalhe que os seus relatórios agregam. Antes de publicar um relatório, certifique-se de que pode partilhar publicamente os dados e visualizações. Não publique informações confidenciais ou proprietárias. Se tiver dúvidas, consulte as políticas da sua organização antes da publicação.
Com o Power BI embedded, é possível apresentar contextualmente os componentes do Power BI aos utilizadores, transmitir filtros automáticos utilizando um parâmetro de filtro e permitir capacidades de segurança a nível da linha para permitir que uma organização proteja verdadeiramente os dados dos utilizadores e apresente apenas aquilo que devem ver.
Nota
A segurança a nível da linha só é suportada para o Power BI Embedded.
Pré-requisitos
- Inquilino com um ambiente do Microsoft Dataverse e um site do Power Pages implementado.
- Uma página Web para incorporar um relatório ou dashboard do Power BI.
- Dados de negócio relevantes armazenados no Dataverse.
- Power BI Desktop.
- Capacidade para publicar conteúdo do Power BI Embedded.
- Direitos de administração globais de inquilino.
- Administrador global de inquilino com função de Administrador na área de trabalho do serviço Power BI.
- Organização, Área de trabalho do Power BI não pessoal.
- Registo/autenticação ativado no Web site.
Cenário
Trabalha para um clube de fitness em grupo e utiliza o Dataverse para monitorizar as aulas de fitness em grupo e os participantes. Os instrutores de fitness em grupo não residem no seu inquilino, uma vez que cada um é tratado como contratante. O seu site será utilizado por estes instrutores de fitness em grupo para iniciar sessão e ver um histórico das aulas dadas, da agenda futura e das taxas de participação. Só deverão conseguir ver as aulas que os próprios deram e não as de todos.
Os instrutores são representados pelos registos Contacto no Dataverse. Ao aceder ao site do Power Pages, estão a fazê-lo como o respetivo registo Contacto . Os dados de que necessitam de ver no site têm origem na nossa tabela Aulas personalizada. A tabela Aulas tem uma relação N*:1 com um contacto, uma vez que o formulário de aulas tem um campo de pesquisa denominado Instrutor, que é para a tabela de contactos.
Para a segurança a nível da linha funcionar para os utilizadores do Power Pages (Contactos), tem de haver uma relação direita entre o Contacto e a tabela em relação à qual está a reportar. Segue-se um modelo de dados de exemplo deste cenário:
Configurar relatório ou dashboard do Power BI
Abra o relatório ou dashboard do Power BI no Power BI Desktop.
Temos de alterar a relação entre o Contacto e a nossa tabela (Aulas neste cenário) para utilizar a filtragem bidirecional. Para o fazer, selecione o separador Modelo na parte mais esquerda.
Selecione a linha que associa a sua tabela contacto à tabela que contém os dados do seu relatório. No caso de exemplo, isto é vbd_class porque estamos a reportar as aulas.
Na janela Editar relação existem duas listas de opções. Na parte superior, escolha a tabela que está a reportar (vbd_class) e selecione a coluna que tem o identificador exclusivo do registo.
Na lista de opções inferior, selecione a tabela contacto e selecione a coluna Contacto.
A cardinalidade indica Muitos para Um (*:1). Altere Direção de filtro cruzado como Ambos.
Selecione OK.
À medida que implementamos a Segurança ao Nível da Linha(RLS), precisamos de criar a nossa função. No friso superior Base, selecione Gerir funções.
Em Funções, selecione Criar. Nome da função. O cenário de exemplo utilizava pagesuser.
A partir da coluna Tabelas, selecione contacto.
Preencha a caixa de texto à direita com a expressão DAX:
[User Name] = username()
Nota
O campo
[Username]
reside na tabela de contactos e não é um nome de utilizador real. Isto referencia a tabela adx_externalidentity utilizada pelo Power Pages. Tem o GUID que é enviado para o Power BI na função username().Selecione Guardar e guarde o seu ficheiro.
A partir do friso Base, selecione Publicar.
Selecione uma área de trabalho da organização da qual seja proprietário e que será utilizada pela integração do Power Pages . Escolha Selecionar.
Configurar a integração do Power BI
Consulte Configurar a integração do Power BI para ativar o seu site para a integração do Power BI.
Incorporar relatório do Power BI
Navegue para Power Pages. Encontre o site do Power Pages em que vai incorporar o relatório e, em seguida, selecione Editar para abrir o estúdio de design do Power Pages.
Na área de trabalho Páginas, selecione a página Web onde pretende incorporar o relatório.
Adicione uma secção ao corpo da página Web.
Escolha o ícone do Power BI quando lhe for solicitado que escolha o componente que está a adicionar na secção.
Quando o componente preenche a secção, selecione no canto superior esquerdo; Editar Power BI.
Selecione Tipo de acesso. As opções são:
Incorporar para os seus clientes: permite partilhar o Power BI com utilizadores externos sem uma licença do Power BI ou uma identidade do Microsoft Entra.
Incorporar para a sua organização: utiliza a autenticação do Microsoft Entra para partilhar o relatório do Power BI para os utilizadores internos poderem ver isto.
Publicar na Web: isto permite a qualquer utilizador na Internet aceder ao relatório e aos dados.
Atenção
Certifique-se de que não são informações confidenciais!
Informações adicionais: Publicar na Web
Escolha Incorporar para os seus clientes.
Selecione a área de trabalho que contém o relatório ou o dashboard, especifique o tipo como Relatório ou Dashboard e, em seguida, escolha o relatório ou o dashboard na última lista pendente. Se se tratar de um relatório, tem de especificar a página que está a incorporar.
Para ver o código incorporou o relatório ou o dashboard, selecione Editar código no canto superior direito do estúdio.
Quando lhe for pedido, selecione Abrir Visual Studio Code. À esquerda, em PowerPages (Área de Trabalho), o nome do site do Power Pages tem uma lista pendente para a página Web. Nessa secção, verá um ficheiro .css, um ficheiro .js e a cópia HTML. Certifique-se de que está no ficheiro de cópia HTML.
Selecione CTRL + F e procure
{%
para podermos identificar rapidamente o código que contém a referência ao nosso dashboard ou relatório do Power BI.{%
indica a abertura de uma etiqueta, que cria lógica para a linguagem Liquid. A Liquid é a nossa ponte entre o Dataverse e os utilizadores que interagem no site. Quando utilizamos o editor do estúdio para incorporar componentes, é criado automaticamente um elemento de código do Liquid no código de origem da página Web. Poderá obter mais informações sobre a etiqueta do Liquid para o Power BI aqui: Etiquetas do Liquid para Dataverse e Adicionar relatório do Power BI.A linha completa de código Liquid que vê será semelhante a:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection" %}
Feche o separador Visual Studio Code para a Web.
No estúdio de design do Power Pages, selecione o componente do Power BI incorporado e escolha Editar Power BI.
Desloque-se para baixo para alternar Aplicar funções para verdadeiro/sim.
Na caixa de texto Funções, escreva o nome da função que criou no Power BI Desktop.
Para ver as alterações que isto fez ao código que incorporou o relatório ou o dashboard, selecione novamente Editar código no canto superior direito do estúdio.
A linha completa de código Liquid que vê será agora semelhante a:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection" roles:"pagesuser" %}
Feche o separador Visual Studio Code para regressar ao estúdio de design.
Pré-visualize o relatório ou dashboard incorporado resultante no browser ao selecionar Sincronizar no canto superior direito e, em seguida, selecione Pré-visualizar > Ambiente de Trabalho.
Para testar o relatório, sem utilizadores com sessão iniciada poderá ver que o RLS foi aplicado, uma vez que não existem registos devolvidos ai navegar para o site do Power Pages:
Existem dados subjacentes neste relatório, tal como ao vê-los a partir do Power BI Desktop sem o RLS aplicado, pode ver que existem vários registos globais, mas estão relacionados com um registo de contacto.
Para o testar mais profundamente, se iniciarmos sessão no site com um utilizador com um contacto correspondente que tenha dados relacionados, só poderá ver os registos relacionados com o utilizador com sessão iniciada na página Web:
Resumo
Incorporou um relatório ou dashboard do Power BI que utiliza segurança a nível da linha no seu site do Power Pages!
O painel de filtro aparece por predefinição. É necessário JavaScript para ocultar o painel de filtro. Os passos para o fazer estão documentados aqui: Adicionar um relatório ou dashboard do Power BI para uma página Web num portal.