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:
- Configurar o ambiente para filtrar o relatório
- Filtrar os dados ao nível do relatório ou da consulta
- 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 é usado para filtrar ou consultar 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
Na janela Propriedades do modelo semântico, no painel esquerdo, selecione Filtrar.
No menu suspenso Expressão, selecione o parâmetro que deseja usar para filtrar os dados.
Selecione o botão Função Valor.
Na janela Expressão, na lista Categoria, selecione Campos internos.
Na lista Item, selecione UserID e selecione OK.
Na janela Propriedades do modelo semântico, verifique se a expressão é o parâmetro selecionado = UserID e selecione OK.
Usando uma consulta
Na janela Propriedades do modelo semântico, no painel de navegação esquerdo, selecione Parâmetros e selecione Adicionar.
No campo Nome do parâmetro, digite @UserID e, no valor do parâmetro, adicione [&UserID].
No painel esquerdo, selecione Consulta, na Consulta adicione o parâmetro UserID como parte da consulta e selecione 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.
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 tem 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 seu 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 pelo menos membro ou (não visualizador ou colaborador).