#c# #powerbi
#c# #powerbi
Вопрос:
Мы хотим предоставлять нашим клиентам встроенные отчеты PowerBI. Изначально мы рассматриваем возможность использования одного отчета с набором данных, который содержит данные для всех клиентов. Я создал участника службы (только для авторизации в приложении), который имеет доступ к рабочей области, где я опубликовал отчет. Я также создал роль «business_customer» с выражением DAX ([CustomerNumber] = USERNAME()) в этом отчете.
Я пытаюсь получить токен встраивания для отчета с защитой на уровне строк через C # API (Microsoft.PowerBI.Api):
var tenantId = "<tenantId>";
var datasetId = "<datasetId>";
var reportId = "<reportId>";
var groupId = "<groupId>";
var applicationPassword = "<applicationPassword>";
var context = new AuthenticationContext($"https://login.microsoftonline.com/{tenantId}/");
var clientCredential = new ClientCredential(applicationId, applicationPassword);
var result = context.AcquireTokenAsync("https://analysis.windows.net/powerbi/api",
clientCredential).Resu<
var authHeader = new TokenCredentials(result.AccessToken, "Bearer");
var client = new PowerBIClient(new Uri("https://api.powerbi.com"), authHeader);
var groups = client.Groups.GetGroups();
var tokenRequest = new GenerateTokenRequest(TokenAccessLevel.View, datasetId,
new EffectiveIdentity("username", new List<string> { datasetId },
new List<string> { "business_customer" }));
var embedToken = client.Reports.GenerateTokenInGroupAsync(new Guid(groupId), new Guid(reportId),
tokenRequest, cancellationToken: CancellationToken.None).Resu<
Это приводит к сбою при вызове GenerateTokenInGroupsAsync:
"Invalid request: Creating embed token for accessing dataset <datasetId> shouldn't have effective identity"
Я пробовал использовать разные имена пользователей и пытался оставить имя пользователя пустым, но все мои попытки не увенчались успехом.
Есть ли способ получить токен встраивания таким образом или я на неправильном пути? Каким был бы «правильный» способ решения этого случая?
Заранее спасибо
Комментарии:
1. Убедитесь, что опубликованный отчет действительно содержит RLS, потому что одна из причин получения этого сообщения заключается в том, что в отчете нет RLS. Также, каков источник данных и набор данных для этого отчета? каково значение
IsEffectiveIdentityRequired
свойства dataset?2. @AndreyNikolov Я определил роль с помощью выражения DAX — но это не те критерии RLS, которые вам нужны? Источником данных является база данных MySQL, а
IsEffectiveIdentityRequired
являетсяfalse
набор данных.