Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby spełnić wymagania dotyczące zgodności, organizacje często muszą klasyfikować i oznaczać wszystkie poufne dane w usłudze Power BI. To zadanie może być trudne w przypadku dzierżaw, które mają duże ilości danych w usłudze Power BI. Aby ułatwić i bardziej efektywne zadanie, możesz użyć interfejsów API REST administratora usługi Power BI do programowego ustawiania i usuwaniaLabels na dużej liczbie artefaktów usługi Power BI.
Interfejsy API ustawiają lub usuwają etykiety z artefaktów według identyfikatora artefaktu.
Wymagania i zagadnienia
- Aby wywoływać te interfejsy API, użytkownicy muszą być administratorami sieci szkieletowej.
- Użytkownik administracyjny (i użytkownik delegowany, jeśli podano) musi mieć wystarczające prawa użytkowania, aby ustawić lub usunąć etykiety.
- Aby ustawić etykietę poufności przy użyciu interfejsu API setLabels, administrator (lub użytkownik delegowany, jeśli podano) musi mieć etykietę dołączona do zasad etykiet.
- Interfejsy API umożliwiają maksymalnie 25 żądań na godzinę. Każde żądanie może zaktualizować maksymalnie 2000 artefaktów.
- Wymagany zakres: Tenant.ReadWrite.All
Dokumentacja interfejsu API
Przykład
W poniższym przykładzie pokazano, jak ustawić i usunąć etykiety poufności na pulpitach nawigacyjnych usługi Power BI. Podobny kod może służyć do ustawiania i usuwania etykiet na semantycznych modelach, raportach i przepływach danych.
const string adminBearerToken = "<adminBearerToken>";
const string ApiUrl = "<api url>";
var persistedDashboardId = Guid.Parse("<dashboard object Id>");
var credentials = new TokenCredentials(adminBearerToken, "Bearer");
var artifacts = new InformationProtectionArtifactsChangeLabel();
artifacts.Dashboards = new List<ArtifactId> { new ArtifactId(id: persistedDashboardId) };
using (PowerBIClient client = new PowerBIClient(credentials))
{
client.BaseUri = new Uri(ApiUrl);
// Delete labels
var removeResponse = client.InformationProtection.RemoveLabelsAsAdmin(artifacts);
foreach (var updateLabelResult in removeResponse.Dashboards)
{
if (updateLabelResult.Status == Status.Succeeded)
{
Console.WriteLine($"label has been deleted from artifact {updateLabelResult.Id}");
}
else
{
Console.WriteLine($"label has not been deleted from artifact {updateLabelResult.Id}");
}
}
// Set labels
var setLabelRequest = new InformationProtectionChangeLabelDetails();
setLabelRequest.Artifacts = artifacts;
setLabelRequest.LabelId = Guid.Parse("<label Id>");
// assignmentMethod (optional)
setLabelRequest.AssignmentMethod = AssignmentMethod.Priviledged;
// delegetedUser (optional)
var delegatedUser = new DelegatedUser();
delegatedUser.EmailAddress = "<delegated user email address>";
setLabelRequest.DelegatedUser = delegatedUser;
var setResponse = client.InformationProtection.SetLabelsAsAdmin(setLabelRequest);
foreach (var updateLabelResult in setResponse.Dashboards)
{
if (updateLabelResult.Status == Status.Succeeded)
{
Console.WriteLine($"label has been upsert on artifact {updateLabelResult.Id}");
}
else
{
Console.WriteLine($"label has not been upsert on artifact {updateLabelResult.Id}");
}
}
}
}