Säkerhet på objektnivå

GÄLLER FÖR: Appen äger data Användaren äger data

Den här artikeln beskriver hur du bäddar in Power BI-innehåll som använder OLS i ett Power BI-app äger data (bädda in för dina kunder).

I det här scenariot har ISV en tabell med känsliga data och metadata som de vill dölja för rapportkunderna.

Mer information om OLS finns i Säkerhet på objektnivå (OLS).

Förutsättningar

Den här artikeln förutsätter att du har en rapport som använder OLS och att du vill bädda in den i en app. Information om hur du skapar en rapport som använder OLS finns i Säkerhet på objektnivå (OLS).

Rapporten kan skapas med någon av följande modeller:

Bädda in en rapport som använder säkerhet på objektnivå

Processen för att generera inbäddningstoken för objekt som använder OLS är densamma som för statisk RLS. Du behöver rollen och användarnamnet.

Om rapporten som du vill bädda in använder något av följande scenarier kan du behöva vidta några extra åtgärder:

I följande exempel visas hur du genererar en token för att dölja en tabell med känslig information med 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;
    }

Beaktanden och begränsningar

Se begränsningar för OLS-modeller.

Säkerhet på objektnivå i Azure Analysis Services

Har du fler frågor? Prova att fråga Power BI Community.