Segurança ao nível do objeto
APLICA-SE A: App possui dados O usuário possui dados
Este artigo explica como incorporar conteúdo do Power BI que usa OLS em um cenário de propriedade de dados do Aplicativo Power BI (incorporar para seus clientes).
Nesse cenário, o ISV tem uma tabela com dados confidenciais e metadados que eles desejam ocultar dos clientes de relatório.
Para obter mais informações sobre o OLS, vá para Segurança em nível de objeto (OLS).
Pré-requisitos
Este artigo pressupõe que você tenha um relatório que usa o OLS e que deseja incorporá-lo em um aplicativo. Para criar um relatório que usa o OLS, consulte Segurança no nível do objeto (OLS).
O relatório pode ser construído usando qualquer um dos seguintes modelos:
- OLS na nuvem
- Relatório conectado ao vivo ao Azure Analysis Services com funções OLS
- Relatório conectado em tempo real ao SQL Server Analysis Services com funções OLS
Incorporar um relatório que usa segurança no nível do objeto
O processo de geração de tokens de incorporação para itens que usam OLS é o mesmo que para RLS estática. Você precisa da função e do nome de usuário.
Se o relatório que você deseja incorporar estiver usando um dos seguintes cenários, talvez seja necessário executar algumas etapas adicionais:
- Geração de tokens OLS na nuvem
- Geração de token do SQL Server Analysis Services (SSAS)
- Geração de token do Microsoft Entra ID
O exemplo a seguir mostra como gerar um token para ocultar uma tabela com informações confidenciais usando o 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
Consulte as restrições para modelos OLS.
Conteúdos relacionados
Segurança em nível de objeto no Azure Analysis Services
Tem dúvidas? Tente perguntar à Comunidade do Power BI.