Share via


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

UYGULANANLAR: Uygulama verilerin sahibidir Veriler Kullanıcıya aittir

Power BI 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.

Dekont

  • Çağıran kullanıcının anlam modeli sahibi veya ağ geçidi yöneticisi olması gerekir. Hizmet sorumlusu da kullanabilirsiniz. Örneğin, hizmet sorumlusu anlam modeli sahibi olabilir.
  • 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. Veri Kaynaklarını Al'ı çağırarak anlam modelinin 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 :"*****");
    

    Dekont

    Bulut veri kaynaklarını kullanıyorsanız bu bölümdeki sonraki adımları izlemeyin. 1. adımda aldığınız 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.

    3. Adımda alınan ortak anahtarla AsymetricKeyEncryptor sınıfını 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. Ağ geçitlerini al'ı çağırarak ağ geçidi kimliğini ve ortak 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 bilgisi 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.

Dekont

.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 ağ geçidi veya 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.