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:
- Cloud OLS
- Live verbundener Bericht zu Azure Analysis Services mit OLS-Rollen
- Live verbundener Bericht zu SQL Server Analysis Services mit OLS-Rollen
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:
- Generierung von Cloud-OLS-Token
- SQL Server Analysis Services (SSAS)-Tokengenerierung
- Microsoft Entra ID-Tokengenerierung
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.
Zugehöriger Inhalt
Sicherheit auf Objektebene in Azure Analysis Services
Weitere Fragen? Stellen Sie Ihre Frage in der Power BI-Community.