Angiv eller fjern følsomhedsmærkater ved hjælp af REST-administrations-API'er til Power BI
Organisationer skal ofte klassificere og mærke alle følsomme data i Power BI for at opfylde kravene til overholdelse af angivne standarder. Denne opgave kan være udfordrende for lejere, der har store datamængder i Power BI. Hvis du vil gøre opgaven nemmere og mere effektiv, kan du bruge REST API'er til Power BI-administratorer til programatisk setLabels og fjerneLabels på et stort antal Power BI-artefakter.
API'erne angiver eller fjerner mærkater fra artefakter efter artefakt-id.
Krav og overvejelser
- Brugerne skal være Fabric-administratorer for at kunne kalde disse API'er.
- Administratorbrugeren (og den delegerede bruger, hvis det er angivet) skal have tilstrækkelige brugsrettigheder til at angive eller fjerne mærkater.
- Hvis du vil angive en følsomhedsmærkat ved hjælp af API'en setLabels, skal administratorbrugeren (eller den delegerede bruger, hvis det er angivet) have mærkaten inkluderet i deres mærkatpolitik.
- API'erne tillader maksimalt 25 anmodninger pr. time. Hver anmodning kan opdatere op til 2000 artefakter.
- Påkrævet omfang: Tenant.ReadWrite.All
API-dokumentation
Eksempel
I følgende eksempel kan du se, hvordan du angiver og fjerner følsomhedsmærkater på Power BI-dashboards. Lignende kode kan bruges til at angive og fjerne mærkater på semantiske modeller, rapporter og dataflow.
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}");
}
}
}
}