Partilhar via


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:

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:

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.

Segurança em nível de objeto no Azure Analysis Services

Tem dúvidas? Tente perguntar à Comunidade do Power BI.