Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:✅ встроенная аналитика Power BI для ваших клиентов (App-owns-data)
В этой статье объясняется, как встроить содержимое Power BI, использующее OLS, в сценарии Power BI App owns data (встраивание для ваших клиентов).
В этом сценарии у ISV есть таблица с конфиденциальными данными и метаданными, которые необходимо скрыть от клиентов отчета.
Дополнительные сведения об OLS см. в описании безопасности на уровне объектов (OLS).
Предварительные требования
В этой статье предполагается, что у вас есть отчет, использующий OLS и который вы хотите внедрить в приложение. Сведения о создании отчета, использующего OLS, см. в разделе "Безопасность на уровне объектов" (OLS).
Отчет можно создать с помощью любой из следующих моделей:
- Cloud OLS
- Отчет с подключением в реальном времени к Azure Analysis Services с ролями OLS
- Отчет с динамическим подключением к SQL Server Analysis Services с ролями OLS
Внедрение отчета, использующего безопасность на уровне объекта
Процесс создания токенов внедрения для элементов, использующих OLS, такой же, как и для статического RLS. Вам нужна роль и имя пользователя.
Если отчет, который вы хотите внедрить, использует один из следующих сценариев, может потребоваться выполнить некоторые дополнительные действия.
- Создание токена OLS в облаке
- Создание маркера SQL Server Analysis Services (SSAS)
- Создание токена Microsoft Entra ID
В следующем примере показано, как создать маркер для скрытия таблицы с конфиденциальной информацией с помощью 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.