Zabezpečení na úrovni objektů
PLATÍ PRO: Aplikace vlastní data , která uživatel vlastní.
Tento článek vysvětluje, jak vložit obsah Power BI, který používá OLS v aplikaci Power BI , vlastní data (vložení pro vaše zákazníky).
V tomto scénáři má isV tabulku s citlivými daty a metadaty, která chtějí před zákazníky sestavy skrýt.
Další informace o OLS najdete v tématu Zabezpečení na úrovni objektu (OLS).
Požadavky
Tento článek předpokládá, že máte sestavu, která používá OLS a kterou chcete vložit do aplikace. Pokud chcete vytvořit sestavu, která používá OLS, přečtěte si téma Zabezpečení na úrovni objektů (OLS).
Sestavu je možné sestavit pomocí některého z následujících modelů:
- Cloud OLS
- Živá propojená sestava se službou Azure Analysis Services s rolemi OLS
- Živá propojená sestava s Služba Analysis Services serveru SQL s rolemi OLS
Vložení sestavy, která používá zabezpečení na úrovni objektů
Proces generování tokenů pro vložení pro položky, které používají OLS, je stejný jako u statických zabezpečení na úrovni řádků. Potřebujete roli a uživatelské jméno.
Pokud sestava, kterou chcete vložit, používá jeden z následujících scénářů, možná budete muset provést několik dalších kroků:
- Generování tokenů OLS v cloudu
- Generování tokenů Služba Analysis Services serveru SQL (SSAS)
- Generování tokenu Microsoft Entra ID
Následující příklad ukazuje, jak vygenerovat token pro skrytí tabulky s citlivými informacemi pomocí 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;
}
Úvahy a omezení
Související obsah
Zabezpečení na úrovni objektů ve službě Azure Analysis Services
Máte ještě další otázky? Zkuste se zeptat Komunita Power BI.