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:

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:

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

Beveiliging op objectniveau in Azure Analysis Services

Meer vragen? Vraag het Power BI-community