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:
- OLS en la nube
- Informe conectado activo a Azure Analysis Services con roles OLS
- Informe conectado activo a SQL Server Analysis Services con roles OLS
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:
- Generación de tokens OLS en la nube
- Generación de tokens de SQL Server Analysis Services (SSAS)
- Generación de tokens de Microsoft Entra ID
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.
Contenido relacionado
Seguridad de nivel de objeto en Azure Analysis Services
¿Tiene más preguntas? Pruebe a preguntar a la comunidad de Power BI.