Share via


Seguridad de nivel de objeto

SE APLICA A: La aplicación es la propietaria de los datos El usuario es el propietario de los datos

En este artículo se explica cómo insertar contenido de Power BI que usa OLS en App owns data de Power BI (inserción para los clientes).

En este escenario, el ISV tiene una tabla con datos confidenciales y metadatos que quieren ocultar de los clientes del informe.

Para más información sobre OLS, vaya a Seguridad de nivel de objeto (OLS).

Requisitos previos

Este artículo supone que tiene un informe que usa OLS y que desea insertarlo en una aplicación. Para crear un informe que use OLS, consulte Seguridad de nivel de objeto (OLS).

El informe se puede compilar con cualquiera de los modelos siguientes:

Inserción de un informe con seguridad de nivel de objeto

El proceso de generación de tokens de inserción para elementos que usan OLS es el mismo que para RLS estático. Necesita el rol y el nombre de usuario.

Si el informe que desea insertar usa uno de los escenarios siguientes, es posible que tenga que realizar algunos pasos adicionales:

En el ejemplo siguiente se muestra cómo generar un token para ocultar una tabla con información confidencial mediante 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;
    }

Consideraciones y limitaciones

Consulte las restricciones de los modelos OLS.

Seguridad de nivel de objeto en Azure Analysis Services

¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI.