Udostępnij za pośrednictwem


Zabezpieczenia na poziomie obiektu

DOTYCZY: Aplikacja jest właścicielem danych Użytkownik jest właścicielem danych

W tym artykule wyjaśniono, jak osadzić zawartość usługi Power BI korzystającą z usługi OLS w scenariuszu aplikacji Power BI app owns data (osadzanie dla klientów).

W tym scenariuszu niezależnego dostawcy oprogramowania ma tabelę zawierającą poufne dane i metadane, które chcą ukryć przed klientami raportów.

Aby uzyskać więcej informacji na temat usługi OLS, przejdź do artykułu Zabezpieczenia na poziomie obiektu (OLS).

Wymagania wstępne

W tym artykule założono, że masz raport korzystający z usługi OLS i chcesz go osadzić w aplikacji. Aby utworzyć raport korzystający z usługi OLS, zobacz Zabezpieczenia na poziomie obiektu (OLS).

Raport można utworzyć przy użyciu dowolnego z następujących modeli:

Osadzanie raportu korzystającego z zabezpieczeń na poziomie obiektu

Proces generowania tokenów osadzania dla elementów korzystających z usługi OLS jest taki sam jak w przypadku statycznych zabezpieczeń na poziomie wiersza. Potrzebna jest rola i nazwa użytkownika.

Jeśli raport, który chcesz osadzić, korzysta z jednego z następujących scenariuszy, może być konieczne wykonanie dodatkowych kroków:

W poniższym przykładzie pokazano, jak wygenerować token w celu ukrycia tabeli z poufnymi informacjami przy użyciu usługi 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;
    }

Rozważania i ograniczenia

Zobacz ograniczenia dotyczące modeli OLS.

Zabezpieczenia na poziomie obiektu w usługach Azure Analysis Services

Masz więcej pytań? Spróbuj zapytać Społeczność usługi Power BI.