Поделиться через


Безопасность на уровне объекта

ОБЛАСТЬ ПРИМЕНЕНИЯ: Приложение владеет данными, принадлежащими пользователю данных

В этой статье объясняется, как внедрить содержимое Power BI, которое использует OLS в сценарии владения данными приложения Power BI (внедрение для клиентов).

В этом сценарии isV содержит таблицу с конфиденциальными данными и метаданными, которые они хотят скрыть от клиентов отчета.

Дополнительные сведения об OLS см. в описании безопасности на уровне объектов (OLS).

Необходимые компоненты

В этой статье предполагается, что у вас есть отчет, использующий OLS и который вы хотите внедрить в приложение. Сведения о создании отчета, использующего OLS, см. в разделе "Безопасность на уровне объектов" (OLS).

Отчет можно создать с помощью любой из следующих моделей:

Внедрение отчета, использующего безопасность на уровне объекта

Процесс создания маркеров внедрения для элементов, использующих OLS, совпадает с статическими RLS. Вам нужна роль и имя пользователя.

Если отчет, который вы хотите внедрить, использует один из следующих сценариев, может потребоваться выполнить некоторые дополнительные действия.

В следующем примере показано, как создать маркер для скрытия таблицы с конфиденциальной информацией с помощью 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.