使用 Power BI REST 系統管理員 API 設定或移除敏感度標籤
為了符合合規性需求,組織通常需要分類和標記 Power BI 中的所有敏感數據。 對於在Power BI 中具有大量數據的租使用者而言,這項工作可能會很困難。 若要讓工作更容易且更有效率,您可以使用 Power BI 系統管理員 REST API,在大量 Power BI 成品上以程序設計方式 設定Labels 和 removeLabels 。
API 會依成品標識碼設定或移除成品中的標籤。
需求和考慮
- 用戶必須具有系統管理員許可權(例如 Microsoft 365 全域管理員或網狀架構系統管理員),才能呼叫這些 API。
- 系統管理員使用者(如果提供的話,和委派的用戶)必須有足夠的 許可權 來設定或移除標籤。
- 若要使用 setLabels API 來設定敏感度標籤,系統管理使用者(或提供的委派用戶)必須包含其標籤原則中的標籤。
- 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}");
}
}
}
}
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應