Power BI için kimlik bilgilerini program aracılığıyla yapılandırma

Şunlar için geçerlidir:✅ Müşterileriniz için Power BI gömülü analizi (App-owns-data) ve kuruluşunuz için Power BI gömülü analizi (User-owns-data)

Power BI'da kimlik bilgilerini program aracılığıyla yapılandırmak için bu makaledeki adımları izleyin. Kimlik bilgilerini program aracılığıyla yapılandırmak, kimlik bilgilerini şifrelemenize de olanak tanır.

Bu makaledeki örnekler, C# dilinde .NET içindir. Java, Python ve PowerShell'deki örnekleri bulmak için ilgili depoya gidin. KeyPair kimlik bilgisi şifreleme örnekleri için bkz. Python ve PowerShell. KeyPair kimlik bilgisi şifreleme örnekleri için bkz. Python ve PowerShell.

Not

  • Çağıran kullanıcı veya hizmet sorumlusu bir anlam modeli sahibi veya ağ geçidi yöneticisi olmalıdır.
  • Bulut veri kaynakları ve buna karşılık gelen kimlik bilgileri kullanıcı düzeyinde yönetilir.

Veri kaynakları için kimlik bilgileri akışını güncelleştirme

  1. Get Datasources'ı çağırarak anlamsal modelin veri kaynaklarını keşfedin. Her veri kaynağının yanıt gövdesi türü, bağlantı ayrıntıları, ağ geçidi ve veri kaynağı kimliğini içerir.

    // Select a datasource
    var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value;
    var datasource = datasources.First();
    
  2. Veri Kaynağını Güncelleştirme Örnekleri'ne göre kimlik bilgileri dizesini oluşturun. Kimlik bilgileri dizesinin içeriği kimlik bilgilerinin türüne bağlıdır.

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

    Not

    Bulut veri kaynaklarını kullanıyorsanız bu bölümdeki sonraki adımları izlemeyin. 1. adımda elde ettiğiniz ağ geçidi kimliğini ve veri kaynağı kimliğini kullanarak kimlik bilgilerini ayarlamak için Update Datasource'u çağırın.

  3. Get Gateway'i çağırarak ağ geçidi ortak anahtarını alın.

    var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);
    
  4. Kimlik bilgilerini şifreleyin.

    var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);
    
  5. Kimlik bilgisi ayrıntılarını şifrelenmiş kimlik bilgileriyle oluşturun.

    AsymetricKeyEncryptor sınıfını, 3. Adımda elde edilen açık anahtarla kullanın.

    var credentialDetails = new CredentialDetails(
            credentials,
            PrivacyLevel.Private,
            EncryptedConnection.Encrypted,
            credentialsEncryptor);
    
  6. Güncelleştirme Veri Kaynağını çağırarak kimlik bilgilerini ayarlayın.

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

Veri ağ geçidi için yeni bir veri kaynağı yapılandırma

  1. Makinenize Şirket içi veri ağ geçidini yükleyin.

  2. Get Gateways işlevini çağırarak ağ geçidi kimliğini ve açık anahtarı alın.

    // Select a gateway
    var gateways = pbiClient.Gateways.GetGateways().Value;
    var gateway = gateways.First();
    
  3. 2. adımda aldığınız ağ geçidi ortak anahtarını kullanarak veri kaynakları için kimlik bilgileri akışını güncelleştirme bölümünde açıklanan yordamı izleyerek kimlik bilgisi ayrıntılarını oluşturun.

  4. İstek gövdesini oluşturun.

    var request = new PublishDatasourceToGatewayRequest(
            dataSourceType: "SQL",
            connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}",
            credentialDetails: credentialDetails,
            dataSourceName: "my sql datasource");
    
  5. Veri Kaynağı Oluşturma API'sini çağırın.

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

Kimlik bilgileri türleri

Kurumsal şirket içi ağ geçidindeki Power BI REST API'sinden Veri Kaynağı Oluştur veya Veri Kaynağını Güncelleştir'i çağırdığınızda, ağ geçidi ortak anahtarını kullanarak kimlik bilgileri değerini şifreleyin.

Not

.NET SDK v3, aşağıdaki .NET SDK v2 örneklerini de çalıştırabilir.

Windows ve temel kimlik bilgileri

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

Anahtar kimlik bilgileri

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

OAuth2 kimlik bilgileri

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

Anonim kimlik bilgileri

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

Sorun giderme

Get veri kaynakları çağrılırken ağ geçidi ve veri kaynağı kimliği bulunamadı

Bu sorun, anlamsal modelin bir ağ geçidine bağlı olmadığı anlamına gelir. Yeni bir anlam modeli oluşturduğunuzda, her bulut bağlantısı için kullanıcının bulut ağ geçidinde kimlik bilgileri olmayan bir veri kaynağı otomatik olarak oluşturulur. Bulut ağ geçidi, bulut bağlantılarının kimlik bilgilerini depolamak için kullanılır.

Semantik modeli oluşturduktan sonra, semantik model ile tüm bağlantılar için eşleşen veri kaynaklarını içeren uygun bir ağ geçidi arasında otomatik bağlama oluşturulur. Uygun bir veya daha fazla ağ geçidi yoksa otomatik bağlama başarısız olur.

Şirket içi anlam modelleri kullanıyorsanız eksik şirket içi veri kaynaklarını oluşturun ve Ağ Geçidine Bağlama'yı kullanarak anlam modelini el ile bir ağ geçidine bağlayın.

Bağlanabilen ağ geçitlerini bulmak için Ağ Geçitlerini Bulma'yı kullanın.