Безопасность на уровне объекта
ОБЛАСТЬ ПРИМЕНЕНИЯ: Приложение владеет данными, принадлежащими пользователю данных
В этой статье объясняется, как внедрить содержимое Power BI, которое использует OLS в сценарии владения данными приложения Power BI (внедрение для клиентов).
В этом сценарии isV содержит таблицу с конфиденциальными данными и метаданными, которые они хотят скрыть от клиентов отчета.
Дополнительные сведения об OLS см. в описании безопасности на уровне объектов (OLS).
Необходимые компоненты
В этой статье предполагается, что у вас есть отчет, использующий OLS и который вы хотите внедрить в приложение. Сведения о создании отчета, использующего OLS, см. в разделе "Безопасность на уровне объектов" (OLS).
Отчет можно создать с помощью любой из следующих моделей:
- Облачные OLS
- Динамический подключенный отчет к Службам Azure Analysis Services с ролями OLS
- Динамический подключенный отчет к службам SQL Server Analysis Services с ролями OLS
Внедрение отчета, использующего безопасность на уровне объекта
Процесс создания маркеров внедрения для элементов, использующих OLS, совпадает с статическими RLS. Вам нужна роль и имя пользователя.
Если отчет, который вы хотите внедрить, использует один из следующих сценариев, может потребоваться выполнить некоторые дополнительные действия.
- Создание токена OLS в облаке
- Создание маркера SQL Server Analysis Services (SSAS)
- Создание маркера идентификатора Microsoft Entra
В следующем примере показано, как создать маркер для скрытия таблицы с конфиденциальной информацией с помощью 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;
}
Рекомендации и ограничения
См. ограничения для моделей OLS.
Связанный контент
Безопасность на уровне объектов в Службах Azure Analysis Services
Есть еще вопросы? Попробуйте попросить Сообщество Power BI.