Zdieľať cez


Nastavenie alebo odstránenie označení citlivosti pomocou rozhraní API správcu služby Power BI REST

Na splnenie požiadaviek na dodržiavanie súladu sú organizácie často povinné klasifikovať a označovať všetky citlivé údaje v službe Power BI. Pre nájomníkov, ktorí majú veľké objemy údajov v službe Power BI, môže byť táto úloha náročná. Ak chcete túto úlohu zjednodušiť a zefektívniť, môžete pomocou rozhraní REST API správcu služby Power BI programovo nastaviťlabels a odstrániť značkyLabels vo veľkom počte artefaktov služby Power BI.

Rozhrania API nastavia alebo odstrania označenia z artefaktov pomocou ID artefaktu.

Požiadavky a dôležité informácie

  • Aby mohli používatelia volať tieto rozhrania API, musia mať práva správcu (napríklad globálny správca služby Microsoft 365 alebo správca služby Fabric).
  • Používateľ v roli správcu (a delegovaný používateľ, ak je uvedený), musí mať dostatočné práva na používanie na nastavenie alebo odstránenie označení.
  • Ak chcete nastaviť označenie citlivosti pomocou rozhrania API setLabels, používateľ správcu (alebo delegovaný používateľ, ak je uvedený), musí mať označenie zahrnuté v politike označenia.
  • Rozhrania API umožňujú maximálne 25 žiadostí za hodinu. Každá žiadosť sa môže aktualizovať až na 2 000 artefaktov.
  • Požadovaný rozsah: Tenant.ReadWrite.All

Dokumentácia k API

a marketingu

V nasledujúcej ukážke je ukázané, ako nastaviť a odstrániť označenia citlivosti na tabuliach v službe Power BI. Podobný kód možno použiť na nastavenie a odstránenie označení v sémantických modeloch, zostavách a tokoch údajov.

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

            }

        }