Jaa


Luottamuksellisuustunnisteiden määrittäminen tai poistaminen Power BI REST -järjestelmänvalvojan ohjelmointirajapintojen avulla

Yhteensopivuuden vaatimusten täyttämiseksi organisaatioita vaaditaan usein luokittelemaan ja merkitsemään kaikki arkaluontoiset tiedot Power BI:ssä. Tämä voi olla haastavaa vuokraajille, joilla on suuria tietomääriä Power BI:ssä. Voit tehdä tehtävästä helpompaa ja tehokkaampaa käyttämällä Power BI -järjestelmänvalvojan REST-ohjelmointirajapintoja, jotka määrittävät ohjelmallisestiLabels- ja removeLabels-tiedot suurissa joukoissa Power BI -artefakteja.

Ohjelmointirajapinnat määrittävät tai poistavat otsikoita artefakteja artefaktin tunnuksen perusteella.

Vaatimukset ja huomioitavat seikat

  • Käyttäjillä on oltava järjestelmänvalvojan oikeudet (kuten Microsoft 365:n yleinen järjestelmänvalvoja tai Fabric-järjestelmänvalvoja), jotta he voivat kutsua näitä ohjelmointirajapintoja.
  • Järjestelmänvalvojakäyttäjällä (ja tarvittaessa delegoidulla käyttäjällä) on oltava riittävät käyttöoikeudet tunnisteiden määrittämiseen tai poistamiseen.
  • Jos haluat määrittää luottamuksellisuustunnisteen setLabels-ohjelmointirajapinnan avulla, järjestelmänvalvojakäyttäjällä (tai tarvittaessa delegoidulla käyttäjällä) on oltava tunniste tunnisteen mukana otsikkokäytännössä.
  • Ohjelmointirajapinnat sallivat enintään 25 pyyntöä tunnissa. Jokainen pyyntö voi päivittää enintään 2 000 artefaktia.
  • Vaadittu vaikutusalue: Tenant.ReadWrite.All

Ohjelmointirajapintadokumentaatio

Näyte

Seuraavassa mallissa näytetään, miten voit määrittää ja poistaa luottamuksellisuustunnisteita Power BI -koontinäytöissä. Vastaavaa koodia voidaan käyttää semanttisten mallien, raporttien ja tietovoiden otsikoiden määrittämiseen ja poistamiseen.

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

            }

        }