Segurança ao nível do objeto

Aplica-se a:✅ Análises embutidas do Power BI para os seus clientes (App-owns-data)

Este artigo explica como incorporar conteúdo do Power BI que utiliza OLS num cenário do Power BI App owns data (incorporar para os 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 gerar tokens de incorporação para itens que usam OLS é o mesmo que o dos itens com 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 dos modelos OLS.

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

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