Tunnistetietojen määrittäminen Power BI:hin ohjelmallisesti

Koskee seuraavia:✅ Power BI asiakkaillesi upotettuja analyysejä (sovellus omistaa tiedot) ja Power BI upotettuja analyyseja organisaatiollesi (käyttäjä omistaa tiedot)

Jos haluat määrittää Power BI:hin tunnistetiedot ohjelmallisesti, noudata tämän artikkelin ohjeita. Tunnistetietojen ohjelmamäärittämisen avulla voit myös salata tunnistetiedot.

Tämän artikkelin esimerkit ovat .NET-muodossa C#:ssa. Löytääksesi esimerkkejä Java-, Python- ja PowerShell-ohjelmista, mene kyseiseen repositorioon. KeyPairin tunnistetietojen salausesimerkkejä varten katso Python ja PowerShell. KeyPairin tunnistetietojen salausesimerkkejä varten katso Python ja PowerShell.

Muistiinpano

  • Soittavan käyttäjän tai palvelupäähenkilön tulee olla joko semanttisen mallin omistaja tai yhdyskäytävän ylläpitäjä.
  • Pilvitietolähteitä ja niiden tunnistetietoja hallitaan käyttäjätasolla.

Tietolähteiden tunnistetietojen saamisen päivittäminen

  1. Tutustu semanttisen mallin tietolähteisiin kutsumalla Nouda tietolähteet. Kunkin tietolähteen vastauksen leipäteksti sisältää tyypin, yhteyden tiedot, yhdyskäytävän ja tietolähteen tunnuksen.

    // Select a datasource
    var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value;
    var datasource = datasources.First();
    
  2. Luo tunnistemerkkijono Tietolähde-esimerkkien päivittäminen - asetuksen mukaisesti. Tunnistemerkkijonon sisältö määräytyy tunnistetietojen tyypin mukaan.

    var credentials =  new BasicCredentials(username: "username", password :"*****");
    

    Muistiinpano

    Jos käytät pilvipalvelutietolähteitä, älä seuraa tämän osion seuraavia vaiheita. Soita Update Datasource -toiminnolle asettaaksesi tunnistetiedot käyttämällä yhdyskäytävä-ID:tä ja datalähde-ID:tä, jotka sait vaiheessa 1.

  3. Nouda yhdyskäytävän julkinen avain kutsumalla Nouda yhdyskäytävä.

    var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);
    
  4. Salaa tunnistetiedot.

    var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);
    
  5. Luo salatuilla tunnistetiedoilla tarvitsemasi tunnistetiedot.

    Käytä AsymetricKeyEncryptor-luokkaa vaiheessa 3 noudetun julkisen avaimen kanssa.

    var credentialDetails = new CredentialDetails(
            credentials,
            PrivacyLevel.Private,
            EncryptedConnection.Encrypted,
            credentialsEncryptor);
    
  6. Määritä tunnistetiedot kutsumalla Päivitä tietolähde.

    pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
    

Uuden tietolähteen määrittäminen tietoyhdyskäytävälle

  1. Asenna koneeseesi paikallinen tietoyhdyskäytävä.

  2. Nouda yhdyskäytävän tunnus ja julkinen avain kutsumalla Nouda yhdyskäytävät.

    // Select a gateway
    var gateways = pbiClient.Gateways.GetGateways().Value;
    var gateway = gateways.First();
    
  3. Luo tunnistetiedot noudattamalla ohjeita, jotka on kuvattu osiossa Tietolähteiden tunnistetietojen päivittäminen käyttämällä vaiheessa 2 noutamaansa yhdyskäytävän julkista avainta.

  4. Luo pyynnön runko.

    var request = new PublishDatasourceToGatewayRequest(
            dataSourceType: "SQL",
            connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}",
            credentialDetails: credentialDetails,
            dataSourceName: "my sql datasource");
    
  5. Kutsu Luo tietolähde -ohjelmointirajapintaa.

    pbiClient.Gateways.CreateDatasource(gateway.Id, request);
    

Tunnistetietotyypit

Kun kutsut tietolähteenluomista tai tietolähteen päivittämistä yrityksen paikallisen yhdyskäytävän Power BI REST -ohjelmointirajapinnasta, salaa tunnistetietoarvo käyttämällä yhdyskäytävän julkista avainta.

Muistiinpano

.NET SDK v3 voi myös suorittaa seuraavat .NET SDK v2 -esimerkit.

Windows ja perustunnistetiedot

// Windows credentials
var credentials = new WindowsCredentials(username: "john", password: "*****");

// Or

// Basic credentials
var credentials = new BasicCredentials(username: "john", password: "*****");

var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);

Avaintunnistetiedot

var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);

OAuth2-tunnistetiedot

var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);

Anonyymit tunnistetiedot

var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);

Vianmääritys

Yhdyskäytävää ja tietolähteen tunnusta ei löydy Nouda tietolähteet -kutsua käytettäessä

Tämä ongelma tarkoittaa, että semanttinen malli ei ole sidottu yhdyskäytävään. Kun luot uuden semanttisen mallin, käyttäjän pilviyhdyskäytävään luodaan automaattisesti tietolähde, jolla ei ole tunnistetietoja kunkin pilviyhteyden osalta. Pilviyhdyskäytävää käytetään pilviyhteyksien tunnistetietojen tallentamiseen.

Kun olet luonut semanttisen mallin, semanttisen mallin ja sopivan yhdyskäytävän välille luodaan automaattinen sidonta, joka sisältää vastaavat tietolähteet kaikille yhteyksille. Automaattinen sidonta epäonnistuu, jos sopivaa yhdyskäytävää tai yhdyskäytäviä ei ole.

Jos käytät paikallisia semanttisia malleja, luo puuttuvat paikalliset tietolähteet ja sido semanttinen malli yhdyskäytävään manuaalisesti käyttämällä Sido yhdyskäytävään -toimintoa.

Voit etsiä sitovia yhdyskäytäviä Etsi yhdyskäytävät -parametrin avulla.