Compartilhar via


Como: Habilitar segurança em nível de linha no Power BI no Power Pages

Assim como o Power Pages é a ferramenta de escolha para estender rapidamente a sua implantação do Microsoft Dataverse para o público na forma de um site, o Power BI é a ferramenta preferida para renderizar visualizações elegantes baseadas em dados. A perfeição do Power Platform reside na sua capacidade de combinar perfeitamente os dois. Antigamente, para renderizar um relatório do Power BI em uma página da Web, os administradores tinham que publicar o relatório na Web e incorporá-lo em um iFrame. Mesmo se alguém aplicasse Permissões de páginas para bloquear a página com o relatório, se um indivíduo tiver o link usado para incorporar o relatório, qualquer pessoa ainda poderá acessar o relatório fora do site.

O propósito de publicar na Web é permitir que qualquer pessoa na Web consuma os dados e até mesmo compartilhe novamente o relatório.

Aviso

Quando você usa Publicar na Web, qualquer pessoa na Internet pode exibir seu relatório ou visual publicado. A exibição não exige autenticação. Isso inclui a exibição de dados em nível de detalhe que seus relatórios agregam. Antes de publicar um relatório, verifique se não há problema em compartilhar os dados e as visualizações publicamente. Não publique informações confidenciais ou proprietárias. Em caso de dúvida, verifique as políticas de sua organização antes da publicação.

Com o Power BI Embedded, pode-se fornecer contextualmente componentes do Power BI para usuários, passar filtros automáticos usando um parâmetro de filtro e habilitar recursos de segurança em nível de linha para permitir uma organização para proteger verdadeiramente os dados visíveis aos usuários e exibir apenas o que eles devem ver.

Observação

A segurança em nível de linha é suportada apenas para Power BI Embedded.

Pré-requisitos

Cenário

Você trabalha para um estúdio de fitness em grupo e usa Dataverse para acompanhar as aulas de ginástica em grupo e sua frequência. Os instrutores de fitness em grupo não residem em seu locatário, pois cada um é tratado como um contratado. Seu site deve ser usado por esses instrutores de fitness em grupo para entrar e ver um histórico de suas aulas ministradas, sua programação futura e taxas de participantes. Eles só devem poder ver as aulas que eles mesmos ministraram, e não as de todos.

Os instrutores são representados pelos registros Contato no Dataverse. Ao acessar o site do Power Pages, eles fazem isso como seu registro de Contato. Os dados que eles precisam ver no site vêm de nossa tabela personalizada de Aulas. A tabela de Aulas tem um relacionamento N*:1 com um contato, já que o formulário de aulas tem um campo de pesquisa chamado Instrutor, que é para a tabela de contato.

Um registro de uma aula no Dataverse.

Para que a segurança em nível de linha funcione para usuários do Power Pages (Contatos), é necessário que haja uma relação direta entre o Contato e a tabela que você está relatando. Abaixo está um exemplo de modelo de dados deste cenário:

Relacionamento de contato com a tabela de aulas.

Configurar relatório ou painel do Power BI

  1. Abra seu relatório ou painel do Power BI no Power BI Desktop.

    Relatório do instrutor do Power BI.

  2. Devemos alterar o relacionamento entre Contato e nossa tabela (Aulas neste cenário) para usar a filtragem bidirecional. Para fazer isso, selecione a guia Modelo na extrema esquerda.

    Opção de modelo no Power BI.

  3. Selecione a linha que vincula sua tabela contato à tabela que contém os dados do seu relatório, no caso de amostra, isso é vbd_class já que estamos relatando as aulas.

  4. Na janela Editar relacionamento, há duas listas de opções. Na parte superior, escolha a tabela sobre a qual você está relatando (vbd_class) e selecione a coluna que contém o identificador exclusivo do registro.

  5. Na lista de opções inferior, selecione a tabela contato e selecione a coluna Contato.

  6. Cardinalidade indica muitos para um (*:1). Altere o valor de Direção do filtro cruzado para Ambos.

    Edição de links entre tabelas.

  7. Selecione OK.

  8. Como estamos implementando a Segurança em Nível de Linha (RLS), precisamos criar nossa função. Na faixa superior da Home page, selecione em Gerenciar funções.

  9. Em Funções, selecione Criar. Nomeie a função. O cenário de exemplo usou pagesuser.

  10. Da coluna Tabelas, selecione contato.

  11. Preencha a caixa de texto à direita com a expressão DAX:

    [User Name] = username()

    Observação

    O campo [Username] reside na tabela de contato e não é um nome de usuário real. Isso faz referência à tabela adx_externalidentity usada pelo Power Pages. Ela tem o GUID que é enviado para o Power BI na função username().

    Gerenciar funções no Power BI.

  12. Selecione Salvar e salve seu arquivo.

  13. Na faixa da Página Inicial, selecione Publicar.

  14. Selecione um espaço de trabalho da organização do qual você é proprietário e que será usado pela integração do Power Pages. Clique em Selecionar.

Configurar a integração do Power BI

Consulte Configurar integração do Power BI para habilitar seu site para integração do Power BI.

Inserir o relatório do Power BI

  1. Navegar para Power Pages. Encontre o site Power Pages no qual você incorporará o relatório e selecione Editar para abrir o estúdio de design do Power Pages.

  2. No espaço de trabalho Páginas, selecione a página da Web onde deseja incorporar o relatório.

  3. Adicione uma seção ao corpo da página da Web.

  4. Escolha o ícone Power BI quando solicitado para escolher qual componente você está adicionando na seção.

    Adicionar uma seção a uma página da Web.

  5. Quando o componente preencher a seção, selecione no canto superior esquerdo; Editar Power BI.

  6. Selecionar Tipo de acesso. As opções são:

    1. Inserir para seus clientes: permite compartilhar o Power BI com usuários externos sem uma licença do Power BI ou uma identidade do Microsoft Entra.

    2. Incorporar para sua organização: usa a autenticação do Microsoft Entra para compartilhar o relatório de Power BI para que os usuários internos possam ver isso.

    3. Publicar na Web: permite que qualquer pessoa na internet acesse o relatório e os dados.

    Cuidado

    Certifique-se de que esta não é uma informação confidencial!

    Informações adicionais: Publicar na Web

    Escolha Inserir para seus clientes.

  7. Selecione seu espaço de trabalho que contém o relatório ou painel, especifique o tipo como Relatório ou Painel e escolha o relatório ou painel no último menu suspenso. Se for um relatório, você precisa especificar qual página está incorporando.

    Selecionar relatório.

  8. Para ver o código que incorporou o relatório ou painel, selecione Editar código no canto superior direito do estúdio.

    Editar código.

  9. Quando solicitado, selecione Abrir Visual Studio Code. À esquerda, em PowerPages (Espaço de trabalho) o nome do site do Power Pages tem um menu suspenso para a página da Web. Nessa seção, você vê um arquivo .css, um arquivo .js e a cópia HTML. Assegure-se de estar no arquivo de cópia HTML.

    VS Code.

  10. Selecione CTRL + F e procure por {% para que possamos identificar rapidamente o código que contém a referência ao nosso painel ou relatório do Power BI. {% indica a abertura de uma tag, o que cria lógica para a linguagem do Liquid. O Liquid é a nossa ponte entre o Dataverse e o que os usuários interagem no site. Quando usamos o editor de estúdio para incorporar componentes, um pedaço de código líquido é criado automaticamente no código-fonte da página da Web. Mais informações na marca do Liquid do Power BI pode ser encontrada aqui: Marcas do Liquid do Dataverse e Relatório Adicionar Power BI.

  11. A linha completa de código do Liquid que você 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" %}
    
  12. Feche a guia Visual Studio Code para a Web.

  13. No estúdio de design do Power Pages, selecione o componente do Power BI incorporado e escolha Editar Power BI.

  14. Role para baixo para alternar Aplicar funções para verdadeiro/sim.

  15. Na caixa de texto Funções, digite o nome da função que você criou no Power BI Desktop.

    Adicionar funções ao componente do Power BI.

  16. Para ver as alterações feitas no código que incorporou o relatório ou painel, selecione novamente Editar código no canto superior direito do estúdio.

  17. A linha completa de código do Liquid que você vê agora será 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" %}
    
  18. Feche a guia Visual Studio Code para retornar ao estúdio de design.

  19. Visualize o relatório ou painel incorporado resultante em seu navegador selecionando Sincronizar no canto superior direito e, em seguida, selecionando Visualizar > Área de trabalho.

  20. Para testar o relatório, sem nenhum usuário conectado, você pode ver que o RLS foi aplicado, pois não há registros retornados navegando para o site do Power Pages:

    Relatório em branco.

    Há dados subjacentes neste relatório, pois quando você o visualiza o Power BI Desktop sem o RLS aplicado, pode ver que há vários registros gerais, mas eles estão relacionados a um registro de contato.

  21. Para testar isso ainda mais, se entrarmos no site com um usuário que tenha um contato correspondente com dados relacionados, você poderá ver apenas os registros relacionados ao usuário assinado na página da Web:

    Relatório de aulas na página da Web.

Resumo

Você incorporou um relatório ou painel do Power BI que usa segurança em nível de linha em seu site do Power Pages!

O painel de filtragem aparece por padrão. Ocultar o painel de filtro requer JavaScript. As etapas para fazer isso estão documentadas aqui: Adicionar um relatório ou painel do Power BI a uma página da Web em um portal.