Share via


Bizalmassági címkék beállítása vagy eltávolítása a Power BI REST felügyeleti API-kkal

A megfelelőségi követelmények teljesítése érdekében a szervezeteknek gyakran kell besorolniuk és címkézniük az összes bizalmas adatot a Power BI-ban. Ez a feladat kihívást jelenthet az olyan bérlők számára, amelyek nagy mennyiségű adatot tartalmazhatnak a Power BI-ban. A feladat egyszerűbbé és hatékonyabbá tétele érdekében a Power BI rendszergazdai REST API-jaival programozott módon állíthatja be aLabelsés removeLabels elemeket nagy számú Power BI-összetevőn.

Az API-k összetevő-azonosító alapján állítják be vagy távolítják el a címkéket az összetevőkből.

Követelmények és szempontok

  • Ezeknek az API-knak a meghívásához a felhasználóknak rendszergazdai jogosultságokkal (például a Microsoft 365 globális rendszergazdájával vagy Háló rendszergazdájával) kell rendelkezniük.
  • A rendszergazda felhasználónak (és ha van ilyen, delegált felhasználónak) megfelelő használati jogosultságokkal kell rendelkeznie a címkék beállításához vagy eltávolításához.
  • Ha bizalmassági címkét szeretne beállítani a setLabels API használatával, a rendszergazda felhasználónak (vagy ha van ilyen, delegált felhasználónak) tartalmaznia kell a címkét a címkeszabályzatban.
  • Az API-k óránként legfeljebb 25 kérést engedélyeznek. Minden kérés legfeljebb 2000 összetevőt frissíthet.
  • Kötelező hatókör: Tenant.ReadWrite.All

API-dokumentáció

Minta

Az alábbi minta bemutatja, hogyan állíthat be és távolíthat el bizalmassági címkéket a Power BI-irányítópultokon. Hasonló kóddal állíthat be és távolíthat el címkéket szemantikai modelleken, jelentéseken és adatfolyamokon.

            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}");
                    }
                }

            }

        }