Bagikan melalui


Keamanan tingkat objek

BERLAKU UNTUK: Aplikasi memiliki data Milik pengguna

Artikel ini menjelaskan cara menyematkan konten Power BI yang menggunakan OLS dalam skenario Aplikasi Power BI memiliki data (disematkan untuk pelanggan Anda).

Dalam skenario ini, ISV memiliki tabel dengan data sensitif dan metadata yang ingin mereka sembunyikan dari pelanggan laporan.

Untuk informasi selengkapnya tentang OLS, buka Keamanan tingkat objek (OLS).

Prasyarat

Artikel ini mengasumsikan bahwa Anda memiliki laporan yang menggunakan OLS dan anda ingin menyematkannya ke dalam aplikasi. Untuk membuat laporan yang menggunakan OLS, lihat Keamanan tingkat objek (OLS).

Laporan dapat dibuat menggunakan salah satu model berikut:

Menyematkan laporan yang menggunakan keamanan tingkat objek

Proses pembuatan token semat untuk item yang menggunakan OLS sama dengan untuk RLS statis. Anda memerlukan peran dan nama pengguna.

Jika laporan yang ingin Anda sematkan menggunakan salah satu skenario berikut, Anda mungkin perlu mengambil beberapa langkah tambahan:

Contoh berikut menunjukkan cara membuat token untuk menyembunyikan tabel dengan informasi sensitif menggunakan 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;
    }

Pertimbangan dan batasan

Lihat pembatasan untuk model OLS.

Keamanan tingkat objek di Azure Analysis Services

Ada pertanyaan lagi? Coba tanyakan pada Komunitas Power BI.