Angi eller fjerne følsomhetsetiketter ved hjelp av POWER BI REST admin API-er
For å oppfylle samsvarskrav må organisasjoner ofte klassifisere og merke alle sensitive data i Power BI. Denne oppgaven kan være utfordrende for leiere som har store mengder data i Power BI. Hvis du vil gjøre oppgaven enklere og mer effektiv, kan du bruke REST-API-er for Power BI-administratorer til å programmereLabels og fjerneLabels på et stort antall Power BI-artefakter.
API-ene angir eller fjerner etiketter fra artefakter etter artefakt-ID.
Krav og hensyn
- Brukere må være Fabric-administratorer for å kunne kalle disse API-ene.
- Administratorbrukeren (og den delegerte brukeren, hvis angitt) må ha tilstrekkelige bruksrettigheter til å angi eller fjerne etiketter.
- Hvis du vil angi en følsomhetsetikett ved hjelp av setLabels API, må administratorbrukeren (eller den delegerte brukeren, hvis angitt) ha etiketten inkludert i etikettpolicyen.
- API-ene tillater maksimalt 25 forespørsler per time. Hver forespørsel kan oppdatere opptil 2000 artefakter.
- Obligatorisk omfang: Tenant.ReadWrite.All
API-dokumentasjon
Eksempel
Eksemplet nedenfor viser hvordan du angir og fjerner følsomhetsetiketter på Power BI-instrumentbord. Lignende kode kan brukes til å angi og fjerne etiketter på semantiske modeller, rapporter og dataflyter.
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}");
}
}
}
}