Freigeben über


Sicherheit auf Objektebene

GILT FÜR: Die App besitzt die Daten Der Benutzer besitzt die Daten

Dieser Artikel erklärt, wie Sie Power BI-Inhalte, die OLS verwenden, in ein Power BI-Szenario App besitzt Daten einbetten (für Ihre Kunden einbetten).

In diesem Szenario verfügen ISVs über eine Tabelle mit vertraulichen Daten und Metadaten, die sie aus den Berichtskunden ausblenden möchten.

Weitere Informationen zu OLS finden Sie unter Sicherheit auf Objektebene (OLS).

Voraussetzungen

In diesem Artikel wird davon ausgegangen, dass Sie über einen Bericht verfügen, der OLS verwendet und den Sie in eine App einbetten möchten. Informationen zum Erstellen eines Berichts, der OLS verwendet, finden Sie unter Sicherheit auf Objektebene (OLS).

Der Bericht kann mithilfe einer der folgenden Modelle erstellt werden:

Einbetten eines Berichts, der Sicherheit auf Objektebene verwendet

Der Prozess der Generierung von Einbettungstoken für Elemente, die OLS verwenden, entspricht der statischen RLS. Sie benötigen die Rolle und den Benutzernamen.

Wenn der Bericht, den Sie einbetten möchten, eines der folgenden Szenarien verwendet, müssen Sie möglicherweise einige zusätzliche Schritte ausführen:

Im folgenden Beispiel wird gezeigt, wie ein Token generiert wird, um eine Tabelle mit vertraulichen Informationen mithilfe von OLS auszublenden:

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;
    }

Überlegungen und Einschränkungen

Siehe Einschränkungen für OLS-Modelle.

Sicherheit auf Objektebene in Azure Analysis Services

Weitere Fragen? Stellen Sie Ihre Frage in der Power BI-Community.