Segurança em nível de objeto
APLICA-SE A: Aplicativo possui dados O usuário possui dados
Este artigo explica como inserir um conteúdo do Power BI que usa OLS em um cenário do Power BI do tipo O aplicativo tem controle dos dados (inserir para os seus clientes).
Nesse cenário, o ISV tem uma tabela com dados e metadados confidenciais que deseja ocultar dos clientes do relatório.
Para obter mais informações sobre a OLS, acesse Segurança em nível de objeto (OLS).
Pré-requisitos
Este artigo pressupõe que você tenha um relatório que usa OLS e que deseje inseri-lo em um aplicativo. Para criar um relatório que usa a OLS, consulte Segurança no nível do objeto (OLS).
O relatório pode ser criado usando um dos seguintes modelos:
- OLS de nuvem
- Relatório conectado ao vivo para o Azure Analysis Services com funções de OLS
- Relatório conectado ao vivo para o SQL Server Analysis Services com funções de OLS
Inserir um relatório que usa segurança no nível do objeto
O processo de gerar tokens de inserção para itens que usam OLS é o mesmo que para a RLS estática. Você precisa da função e do nome de usuário.
Se o relatório que você deseja inserir estiver usando um dos seguintes cenários, talvez seja necessário executar algumas etapas adicionais:
- Geração de token OLS na nuvem
- Geração de token do SQL Server Analysis Services (SSAS)
- Geração de token do Microsoft Entra ID
O seguinte exemplo mostra como gerar um token para ocultar uma tabela com informações confidenciais usando OLS:
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// Defines the user identity and roles.
var olsIdentity = new EffectiveIdentity(
username: "All",
roles: new List<string>{ "SensitiveTableOLS" }, // Role created to hide a table that has sensitive information
datasets: new List<string>{ datasetId.ToString()}
);
// Create a request for getting an embed token for the OLS identity defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { olsIdentity }
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
Considerações e limitações
Ver restrições para modelos OLS.
Conteúdo relacionado
Segurança em nível de objeto no Azure Analysis Services
Mais perguntas? Experimente perguntar à Comunidade do Power BI.