Ορισμός ή κατάργηση ετικετών ευαισθησίας με χρήση API διαχειριστή REST του Power BI
Για να ικανοποιούν τις απαιτήσεις συμμόρφωσης, συχνά απαιτείται από τους οργανισμούς να ταξινομούν και να επισημαίνουν όλα τα ευαίσθητα δεδομένα στο Power BI. Αυτή η εργασία μπορεί να είναι δύσκολη για μισθωτές που έχουν μεγάλους όγκους δεδομένων στο Power BI. Για να κάνετε την εργασία πιο εύκολη και πιο αποτελεσματική, μπορείτε να χρησιμοποιήσετε τα API REST διαχειριστή του Power BI για να ορίσετε προγραμματισμού τιςLabels και να καταργήσετε τηνLabels σε μεγάλους αριθμούς αντικειμένων σχεδίασης Power BI.
Τα API ορίζουν ή καταργούν ετικέτες από αντικείμενα σχεδίασης κατά αναγνωριστικό αντικειμένου σχεδίασης.
Απαιτήσεις και ζητήματα
- Οι χρήστες πρέπει να είναι διαχειριστές Fabric για να καλέσουν αυτά τα API.
- Ο διαχειριστής (και ο πληρεξούσιος χρήστης, εάν παρέχεται) πρέπει να έχουν επαρκή δικαιώματα χρήσης για τον ορισμό ή την κατάργηση ετικετών.
- Για να ορίσετε μια ετικέτα ευαισθησίας χρησιμοποιώντας το API setLabels, ο διαχειριστής (ή ο πληρεξούσιος χρήστης, εάν παρέχεται) πρέπει να έχει την ετικέτα να περιλαμβάνεται στην πολιτική ετικέτας του.
- Τα API επιτρέπουν έως και 25 αιτήσεις ανά ώρα. Κάθε αίτηση μπορεί να ενημερώσει έως και 2000 αντικείμενα σχεδίασης.
- Απαιτούμενη εμβέλεια: Tenant.ReadWrite.All
Τεκμηρίωση API
Δείγμα
Το παρακάτω δείγμα παρουσιάζει τον τρόπο ορισμού και κατάργησης ετικετών ευαισθησίας σε πίνακες εργαλείων Power BI. Παρόμοιος κώδικας μπορεί να χρησιμοποιηθεί για τον ορισμό και την κατάργηση ετικετών σε σημασιολογικά μοντέλα, αναφορές και ροές δεδομένων.
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}");
}
}
}
}