Power BI Embedded, генерирование встроенного токена только с помощью View Access - PullRequest
0 голосов
/ 26 апреля 2019

Я включил отчет power bi с использованием принципала службы, как указано здесь .

Я создаю токен для встраивания, как показано ниже,

var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel:"View",allowSaveAs:false,identities: new EffectiveIdentity[] { new EffectiveIdentity(username: serviceAccount, roles: new string[] { "Viewer" }, datasets: new string[] { report.DatasetId }) });
EmbedToken embedToken = client.Reports.GenerateTokenInGroup(groupId, reportId, generateTokenRequestParameters);

Но когда я встраиваю отчет, используя javascript sdk, если я настраиваю разрешение, как показано ниже, пользователь может редактировать отчеты.Как запретить пользователю редактировать отчет в токене для вставки?

permissions: models.Permissions.ReadWrite,
viewMode: models.ViewMode.Edit,

1 Ответ

0 голосов
/ 22 мая 2019

У меня есть веб-приложение C # MVC, которое встраивает отчеты PowerBI.

Вот наша конфигурация для встраивания

var config = {
        type: 'report',
        id: embedReportId,
        accessToken: accessToken,
        tokenType: models.TokenType.Embed,
        embedUrl: embedUrl,
        permissions: models.Permissions.View,
        settings: {
            filterPaneEnabled: false,
            navContentPaneEnabled: true,
            background: models.BackgroundType.Transparent,
            layoutType: models.LayoutType.Custom,
            customLayout: {
                displayOption: models.DisplayOption.FitToWidth
            }
        }
    };

Вы упомянули свойство viewMode в своем вопросе.Как вы можете видеть, мы даже не устанавливаем свойство viewMode в нашей конфигурации.Мы только устанавливаем свойство permissions, но, насколько я могу судить, оно мало что дает.Это свойство используется редко или управляет только второстепенными вещами, которые вы можете видеть в пользовательском интерфейсе.

Если вы генерируете токен доступа, например, для «Вид», и кто-то редактирует страницу средства просмотра отчетов встраивания, чтобы изменить свойство разрешения изmodels.Permissions.View to models.Permissions.ReadWrite в HTML / javascript любые последующие вызовы, которые библиотека JavaScript PowerBI пытается выполнить после того, как редактирование страницы этого средства просмотра отчетов завершится неудачей, поскольку сгенерированный токен доступа предназначен для просмотра, а не для редактирования и APIвызовы Microsoft / PowerBI не будут работать.

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

Удачи

...