Beveiliging op objectniveau
VAN TOEPASSING OP: App is eigenaar van gegevens die gebruiker eigenaar is van gegevens
In dit artikel wordt uitgelegd hoe u Power BI-inhoud insluit die gebruikmaakt van OLS in een Power BI-app die eigenaar is van gegevens (insluiten voor uw klanten).
In dit scenario heeft de ISV een tabel met gevoelige gegevens en metagegevens die ze willen verbergen voor de rapportklanten.
Voor meer informatie over OLS gaat u naar OLS (Object level Security).
Vereisten
In dit artikel wordt ervan uitgegaan dat u een rapport hebt dat gebruikmaakt van OLS en dat u het wilt insluiten in een app. Als u een rapport wilt maken dat gebruikmaakt van OLS, raadpleegt u Beveiliging op objectniveau (OLS).
Het rapport kan worden gebouwd met behulp van een van de volgende modellen:
- Cloud OLS
- Live verbonden rapport met Azure Analysis Services met OLS-rollen
- Live verbonden rapport met SQL Server Analysis Services met OLS-rollen
Een rapport insluiten dat gebruikmaakt van beveiliging op objectniveau
Het proces voor het genereren van insluittokens voor items die OLS gebruiken, is hetzelfde als voor statische beveiliging op rijniveau. U hebt de rol en gebruikersnaam nodig.
Als het rapport dat u wilt insluiten een van de volgende scenario's gebruikt, moet u mogelijk extra stappen uitvoeren:
- Cloud OLS-token genereren
- SSAS-tokengeneratie (SQL Server Analysis Services)
- Genereren van Microsoft Entra ID-token
In het volgende voorbeeld ziet u hoe u een token genereert om een tabel met gevoelige informatie te verbergen met behulp van 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;
}
Overwegingen en beperkingen
Zie beperkingen voor OLS-modellen.
Gerelateerde inhoud
Beveiliging op objectniveau in Azure Analysis Services
Meer vragen? Probeer het Power BI-community te vragen.