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:
- Chmura OLS
- Raport połączony na żywo z usługami Azure Analysis Services z rolami OLS
- Raport połączony na żywo z usługami SQL Server Analysis Services z rolami OLS
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:
- Generowanie tokenów OLS w chmurze
- Generowanie tokenów usług SQL Server Analysis Services (SSAS)
- Generowanie tokenu identyfikatora Entra firmy Microsoft
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.
Powiązana zawartość
Zabezpieczenia na poziomie obiektu w usługach Azure Analysis Services
Masz więcej pytań? Spróbuj zapytać Społeczność usługi Power BI.