Implementando segurança em nível de linha em relatórios paginados incorporados

APLICA-SE A: App possui dados O usuário possui dados

Este artigo explica como incorporar um relatório paginado que usa RLS (segurança em nível de linha) em seu aplicativo possui aplicativo de dados .

Nota

Este artigo só é relevante para clientes de dados proprietários de aplicativos.

Para usar a RLS para seus relatórios paginados:

  1. Configurar o ambiente para filtrar o relatório
  2. Filtrar os dados ao nível do relatório ou da consulta
  3. Passar o parâmetro configurado usando um token de incorporação

Pré-requisitos

  • Este artigo pressupõe que você saiba como incorporar um relatório paginado do Power BI. Ele explica como gerar o token de incorporação para que o relatório mostre apenas o que o usuário tem permissão para acessar.

  • Os relatórios paginados são criados usando o mecanismo do SQL Server Reporting Services e não o mecanismo do Power BI (Analysis Services), portanto, a filtragem RLS é configurada no Construtor de Relatórios do Power BI.

Configurar o ambiente

Para aplicar segurança em nível de linha a um relatório paginado do Power BI, use o campo interno UserID para atribuir um parâmetro. Este parâmetro será utilizado para filtrar ou consultar os seus dados.

Em seguida, passe o UserID para o Embed Token - Generate Token API para obter o token de incorporação.

Usar UserID como um filtro no nível de relatório ou consulta

Você pode usar UserId como um filtro ou em uma consulta à fonte de dados.

Filtrar os dados

  1. Na janela Propriedades do modelo semântico, no painel esquerdo, selecione Filtrar.

    Screenshot of the Power BI Report Builder filter.

  2. No menu suspenso Expressão, selecione o parâmetro que deseja usar para filtrar os dados.

    Screenshot shows the value Color selected from the Expression menu.

  3. Clique no botão Função Valor.

    Power BI Report Builder value

  4. Na janela Expressão, na lista Categoria, selecione Campos internos.

    Screenshot shows the Expression window with Built-in Fields selected as Category and ExecutionTime selected as Item.

  5. Na lista Item, selecione UserID e clique em OK.

    Power BI Report Builder UserID

  6. Na janela Propriedades do modelo semântico, verifique se a expressão é o parâmetro selecionado = UserID e clique em OK.

    Power BI Report Builder semantic model properties

Usando uma consulta

  1. Na janela Propriedades do modelo semântico, no painel de navegação esquerdo, selecione Parâmetros e clique em Adicionar.

    Power BI Report Builder parameters

  2. No campo Nome do parâmetro, digite @UserID e, no valor do parâmetro, adicione [&UserID].

    Power BI Report Builder parameter name

  3. No painel esquerdo, selecione Consulta, na Consulta adicione o parâmetro UserID como parte da consulta e clique em OK.

    Nota

    Na captura de tela abaixo o parâmetro color é usado como exemplo (WHERE FinalTable.Color = @UserID). Se necessário, você pode criar uma consulta mais complexa.

    Power BI Report Builder queries edit

Gerar um token de incorporação

Ao incorporar um relatório paginado para seus clientes, use a API Reports GenerateTokenInGroup para obter o token de incorporação. Esse token também pode ser usado para filtrar alguns dados do relatório paginado.

Você só pode gerar um token usando uma entidade de serviço. Não é possível gerar um token como usuário mestre. A entidade de serviço deve ter pelo menos permissões de membro para o espaço de trabalho no serviço do Power BI. (Se a entidade de serviço for um contribuidor ou visualizador, não poderá gerar um token).

Para gerar um token, atribua o username campo com as informações que deseja exibir. Por exemplo, em um relatório paginado que tenha um parâmetro de cor, se você inserir verde no username campo, o token de incorporação restringirá os dados incorporados apenas aos dados que têm verde como valor na coluna de cores.

{
 "reports": [
 {
  "id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
 }
 ],
 "identities": [
 {
  "username": "green",
  "reports": [
  "8d57615e-cfed-4d60-bd21-7dc05727193c"
  ]
 }
 ]
}

Nota

Se você gerar token de incorporação sem especificar um ID de usuário, o ID de objeto da entidade de serviço será usado.

Considerações e limitações

  • O usuário mestre não é suportado com relatórios paginados para incorporação para seus clientes. O usuário-mestre é suportado para incorporação em sua organização.
  • A entidade de serviço deve ter permissões de espaço de trabalho de membro ou superior (não visualizador ou colaborador).

Gerar um token de incorporação