Bagikan melalui


Mengonfigurasi informasi masuk secara terprogram untuk Power BI

BERLAKU UNTUK: Aplikasi memiliki data Milik pengguna

Untuk mengonfigurasi kredensial secara terprogram untuk Power BI, ikuti langkah-langkah dalam artikel ini. Mengonfigurasi kredensial secara terprogram juga memungkinkan Anda mengenkripsi kredensial.

Catatan

  • Pengguna panggilan harus merupakan pemilik model semantik atau admin gateway. Anda juga dapat menggunakan perwakilan layanan. Misalnya, perwakilan layanan dapat menjadi pemilik model semantik.
  • Sumber data cloud dan infromasi masuk terkaitnya dikelola di tingkat pengguna.

Memperbarui alur kredensial untuk sumber data

  1. Temukan sumber data model semantik dengan memanggil Get Datasources. Isi respons untuk setiap sumber data berisi jenis, detail koneksi, gateway, dan ID sumber data.

    // Select a datasource
    var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value;
    var datasource = datasources.First();
    
  2. Buat string kredensial sesuai dengan Contoh Sumber Data Pembaruan. Konten string kredensial bergantung pada jenis kredensial.

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

    Catatan

    Jika Anda menggunakan sumber data cloud, jangan ikuti langkah-langkah berikutnya di bagian ini. Panggil Update Datasource untuk mengatur kredensial dengan menggunakan ID gateway dan ID sumber data yang Anda peroleh di langkah 1.

  3. Ambil kunci publik gateway dengan memanggil Get Gateway.

    var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);
    
  4. Enkripsi informasi masuk.

    var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);
    
  5. Buat detail kredensial dengan kredensial terenkripsi.

    Gunakan kelas AsymetricKeyEncryptor dengan kunci publik yang diambil di Langkah 3.

    var credentialDetails = new CredentialDetails(
            credentials,
            PrivacyLevel.Private,
            EncryptedConnection.Encrypted,
            credentialsEncryptor);
    
  6. Atur kredensial dengan memanggil Perbarui Sumber Data.

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

Mengonfigurasi sumber data baru untuk gateway data

  1. Pasang Gateway data lokal di komputer Anda.

  2. Ambil ID gateway dan kunci publik dengan memanggil Dapatkan Gateway.

    // Select a gateway
    var gateways = pbiClient.Gateways.GetGateways().Value;
    var gateway = gateways.First();
    
  3. Buat detail kredensial dengan mengikuti prosedur yang dijelaskan di bagian perbarui kredensial untuk sumber data dengan menggunakan kunci publik gateway yang Anda ambil di langkah 2.

  4. Bangun isi permintaan.

    var request = new PublishDatasourceToGatewayRequest(
            dataSourceType: "SQL",
            connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}",
            credentialDetails: credentialDetails,
            dataSourceName: "my sql datasource");
    
  5. Panggil Buat Sumber Data API.

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

Jenis informasi masuk

Saat Anda memanggil Buat Sumber Data atau Perbarui Sumber Data dari Power BI REST API di gateway lokal perusahaan, enkripsi nilai kredensial dengan menggunakan kunci publik gateway.

Catatan

.NET SDK v3 juga dapat menjalankan contoh .NET SDK v2 berikut.

Windows dan informasi masuk dasar

// 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);

Informasi masuk utama

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

Informasi masuk OAuth2

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

Informasi masuk anonim

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

Pemecahan Masalah

Tidak ada gateway dan ID sumber data yang ditemukan saat memanggil dapatkan sumber data

Masalah ini berarti bahwa model semantik tidak terikat ke gateway. Saat Anda membuat model semantik baru, sumber data tanpa kredensial dibuat secara otomatis di gateway cloud pengguna untuk setiap koneksi cloud. Gateway cloud digunakan untuk menyimpan kredensial untuk koneksi cloud.

Setelah Anda membuat model semantik, pengikatan otomatis dibuat antara model semantik dan gateway yang sesuai, yang berisi sumber data yang cocok untuk semua koneksi. Pengikatan otomatis gagal jika tidak ada gateway atau gateway yang cocok.

Jika Anda menggunakan model semantik lokal, buat sumber data lokal yang hilang, dan ikat model semantik ke gateway secara manual dengan menggunakan Ikat Ke Gateway.

Untuk menemukan gateway yang dapat diikat, gunakan Temukan Gateway.