Kusto bağlantı dizeleri

Kusto bağlantı dizeleri, Kusto istemci uygulamasının Kusto hizmet uç noktasına bağlantı kurması için gereken bilgileri sağlar. Kusto bağlantı dizeleri, ADO.NET bağlantı dizelerinden sonra modellenir. Başka bir ifadeyle, bağlantı dizesi, isteğe bağlı olarak tek bir URI'nin ön ekini alan noktalı virgülle ayrılmış ad-değer parametre çiftleri listesidir.

Örneğin, aşağıdaki Kusto bağlantı dizesi iletişim için hizmet uç noktasını belirten bir URI ile başlar: https://help.kusto.windows.net. Bu URI özelliğine Data Source atanır. Ardından, /Samples bağlantı dizesi içinde varsayılan veritabanını temsil eder ve özelliğine Initial Catalog atanır. Son olarak, ve diğer iki özellik FedAccept, bağlantı için daha fazla yapılandırma veya özelleştirme seçeneği sağlar.

https://help.kusto.windows.net/Samples; Fed=true; Accept=true

Not

  • Özellik adları büyük/küçük harfe duyarlı değildir.
  • Özellik değerleri büyük/küçük harfe duyarlıdır.
  • Ad-değer parametre çiftleri arasındaki boşluklar yoksayılır.
  • Noktalı virgül (), tek tırnak işareti (;' ) veya çift tırnak işareti (") içeren bir özellik değeri, çift tırnak işaretleri arasına alınmalıdır.

Çeşitli Kusto istemci araçları, ClusterName/InitialCatalog'un kısa biçimli biçimine izin veren bağlantı dizesi URI ön eki üzerinde bir uzantıyı @ destekler. Örneğin, bu araçlar bağlantı dizesi @help/Samples olarak https://help.kusto.windows.net/Samples; Fed=trueçevirir.

Program aracılığıyla, C# Kusto.Data.KustoConnectionStringBuilder sınıfı Kusto bağlantı dizelerini ayrıştırabilir ve işleyebilir. Bu sınıf tüm bağlantı dizelerini doğrular ve doğrulama başarısız olursa bir çalışma zamanı özel durumu oluşturur. Bu işlevsellik Kusto SDK'nın tüm özelliklerinde mevcuttur.

Güvenilen uç noktalar

Kusto uç noktasıyla bağlantı kurulabilmesi için bu uç noktaya güvenilmesi gerekir. Kusto istemcisi, ana bilgisayar adı bölümü hizmet tarafından verilen tüm uç noktalara güvenir. Örneğin, DNS ana bilgisayar adı ile kusto.windows.netbiten uç noktalar.

Varsayılan olarak, istemci diğer uç noktalara bağlantı kurmaz. Diğer uç noktalara bağlantılara izin vermek için sınıfını Kusto.Data.Common.KustoTrustedEndpoints kullanarak güvenilen uç noktalar listesine uç noktalar ekleyin. Varsayılan ilkeyi geçersiz kılmak ve AddTrustedHosts var olan ilkeye yeni girdiler eklemek için kullanınSetOverridePolicy.

KustoTrustedEndpoints.AddTrustedHosts(
    new[]
    {
        // Allow an explicit service address
        new FastSuffixMatcher.MatchRule("my-kusto.contoso.com", exact: true),
        // Allow services whose DNS name end with ".contoso.com"
        new FastSuffixMatcher.MatchRule(".contoso.com", exact: false),
    }
);

Bağlantı dizesi özellikleri

Aşağıdaki tablolarda Kusto bağlantı dizesi dahil edilebilecek tüm olası özellikler listelenmiştir. Tablolar ayrıca her özellik için diğer adlar sağlar. Ayrıca, tablolar nesnedeki özelliğin Kusto.Data.KustoConnectionStringBuilder adını temsil eden her özellikle ilişkili programlı adları gösterir.

Genel özellikler

Özellik adı Programlı ad Description
İzleme için İstemci Sürümü TraceClientVersion İstemci sürümünü izlediğinizde bu özelliği kullanın.
Veri Kaynağı

Diğer Adları: Ekleyici, Adres, Ağ Adresi, Sunucu
Datasource Kusto hizmet uç noktasını belirten URI. Örneğin, https://mycluster.kusto.windows.net.
İlk Katalog

Diğer Adı: Veritabanı
InitialCatalog Varsayılan olarak kullanılacak veritabanının adı. Örneğin, MyDatabase.
Sorgu Tutarlılığı

Diğer Adı: QueryConsistency
QueryConsistency strongconsistency Çalıştırmadan önce sorgunun meta verilerle eşitlenip eşitlenmediğini belirlemek için veya weakconsistency olarak ayarlayın.

Kullanıcı kimlik doğrulaması özellikleri

Özellik adı Programlı ad Description
Microsoft Entra Kimliği Federasyon Güvenliği

Takma: Federasyon Güvenliği, Federasyon, Fed, AADFed
FederatedSecurity İstemciye Microsoft Entra kimlik doğrulaması gerçekleştirmesini emreden boole değeri.
Yetkili Kimliği

Diğer Adı: TenantId
Yetkili Kullanıcının kiracısının adını veya kimliğini sağlayan dize değeri. microsoft.com varsayılan değerdir. Daha fazla bilgi için bkz. Microsoft Entra yetkilisi.
MFA

Diğer Adını Zorla: MFA, EnforceMFA
EnforceMfa İstemciye çok faktörlü kimlik doğrulama belirteci alma talimatı veren isteğe bağlı bir boole değeri.
Kullanıcı Kimliği

Diğer Adları: UID, Kullanıcı
UserID İstemciye belirtilen kullanıcı adıyla kullanıcı kimlik doğrulaması gerçekleştirmesini emreden bir dize değeri.
İzleme için Kullanıcı Adı TraceUserName İsteği dahili olarak izlerken hangi kullanıcı adının kullanılacağını hizmete bildiren isteğe bağlı bir dize değeri.
Kullanıcı Belirteci

Diğer Adları: UsrToken, UserToken
Usertoken İstemciye belirtilen taşıyıcı belirteci ile kullanıcı kimlik doğrulaması gerçekleştirmesini emreden bir dize değeri.

ApplicationClientId, ve ApplicationKeyApplicationTokengeçersiz kılar. Belirtilirse, sağlanan belirteç yerine gerçek istemci kimlik doğrulama akışını atlar.

Kullanıcı kimlik doğrulaması için desteklenen özellik bileşimleri

Kullanıcı kimlik doğrulaması için olarak truebelirtinAAD Federated Security. Ardından, aşağıdaki kimlik doğrulama modlarından birini seçin ve bu mod için ilgili özellikleri belirtin.

Kimlik doğrulaması modu Özellik adları
Microsoft Entra kullanıcı istemi kimlik doğrulaması - Kullanıcı Kimliği (isteğe bağlı)
- Yetkili Kimliği (isteğe bağlı)
- MFA'yı zorunlu kılma (isteğe bağlı)
- İzleme için Kullanıcı Adı (isteğe bağlı)
Microsoft Entra kullanıcı Belirteci Kimlik Doğrulaması - Kullanıcı Belirteci
- MFA'yı Zorunlu Kılma (isteğe bağlı)
- İzleme için Kullanıcı Adı (isteğe bağlı)

Uygulama kimlik doğrulaması özellikleri

Özellik adı Programlı ad Description
Microsoft Entra Kimliği Federasyon Güvenliği

Takma: Federasyon Güvenliği, Federasyon, Fed, AADFed
FederatedSecurity İstemciye Microsoft Entra kimliği federasyon kimlik doğrulaması gerçekleştirmesini emreden boole değeri.
Uygulama Sertifikası SendX5c

Diğer Adları: Uygulama Sertifikası Genel Sertifika Gönder, SendX5c
ApplicationCertificateSendX5c İstemciye konu adı ve veren tabanlı kimlik doğrulaması gerçekleştirmesini emreden boole değeri.
Uygulama Sertifikası Parmak İzi

Diğer Adı: AppCert
ApplicationCertificateThumbprint Uygulama istemci sertifikası kimlik doğrulama akışı kullanılırken kullanılacak istemci sertifikasının parmak izini sağlayan dize değeri.
Uygulama İstemci Kimliği

Diğer Adı: AppClientId
ApplicationClientId Kimlik doğrulaması sırasında kullanılacak uygulama istemci kimliğini sağlayan dize değeri.
Uygulama Anahtarı

Diğer Adı: AppKey
ApplicationKey Uygulama gizli dizisi akışı kullanılarak kimlik doğrulaması yapılırken kullanılacak uygulama anahtarını sağlayan dize değeri.
İzleme

Diğer Adı için Uygulama Adı: TraceAppName
ApplicationNameForTracing İsteği dahili olarak izlerken hangi uygulama adının kullanılacağını hizmete bildiren isteğe bağlı bir dize değeri.
Uygulama Belirteci

Diğer Adı: AppToken
ApplicationToken İstemciye belirtilen taşıyıcı belirteci ile uygulama kimlik doğrulaması gerçekleştirmesini belirten bir dize değeri.
Yetkili Kimliği

Diğer Adı: TenantId
Yetkili Uygulamanın kayıtlı olduğu kiracının adını veya kimliğini sağlayan dize değeri. microsoft.com varsayılan değerdir. Daha fazla bilgi için bkz. Microsoft Entra yetkilisi.
Azure Bölgesi

Diğer Adları: AzureRegion, Bölge
AzureRegion Kimliğinin doğrulandığı Azure Bölgesi'nin adını sağlayan bir dize değeri.
ManagedServiceIdentity EmbeddedManagedIdentity İstemciye yönetilen kimlik kimlik doğrulaması ile hangi uygulama kimliğinin kullanılacağını belirten bir dize değeri. Sistem tarafından atanan kimliği belirtmek için kullanın system .

Bu özellik bir bağlantı dizesi ile ayarlanamaz, yalnızca program aracılığıyla ayarlanabilir.
Uygulama Sertifikası Konusu Ayırt Edici Ad Diğer Adı

: Uygulama Sertifikası Konusu
ApplicationCertificateSubjectDistinguishedName Uygulama sertifikası konu ayırt edici adını belirten bir dize değeri.
Uygulama Sertifikası Veren Ayırt Edici Ad Diğer Adı

: Uygulama Sertifikası Veren
ApplicationCertificateIssuerDistinguishedName Uygulama sertifikası veren ayırt edici adını belirten bir dize değeri.

Uygulama kimlik doğrulaması için desteklenen özellik bileşimleri

Uygulama kimlik doğrulaması için olarak truebelirtinAAD Federated Security. Ardından, aşağıdaki kimlik doğrulama modlarından birini seçin ve bu mod için ilgili özellikleri belirtin.

Kimlik doğrulaması modu Özellik adları
Uygulama Anahtarı Kimlik Doğrulamayı Microsoft Entra - Uygulama İstemci Kimliği
- Uygulama Anahtarı
- Yetkili Kimliği
- İzleme için Uygulama Adı (isteğe bağlı)
Uygulama Parmak İzi Kimlik Doğrulamayı Microsoft Entra - Uygulama İstemci Kimliği
- Uygulama Sertifikası Parmak İzi
- Yetkili Kimliği
- İzleme için Uygulama Adı (isteğe bağlı)
Microsoft Entra Uygulama Konusu ve Veren Kimlik Doğrulaması - Uygulama İstemci Kimliği
- Uygulama Sertifikası Konu Ayırt Edici Adı
- Uygulama Sertifikası Veren Ayırt Edici Adı
- Yetkili Kimliği
- Azure Bölgesi (isteğe bağlı)
- Uygulama Sertifikası SendX5c (isteğe bağlı)
- İzleme için Uygulama Adı (isteğe bağlı)
Microsoft Entra Uygulama Konu Adı Kimlik Doğrulaması - Uygulama İstemci Kimliği
- Uygulama Sertifikası Konu Ayırt Edici Adı
- Yetkili Kimliği
ve Azure Bölgesi (isteğe bağlı)
- İzleme için Uygulama Adı (isteğe bağlı)
Uygulama Belirteci Kimlik Doğrulamayı Microsoft Entra - Uygulama Belirteci
- İzleme için Uygulama Adı (isteğe bağlı)

Uygulama sertifikasıyla kimlik doğrulaması

  1. Uygulama, verilen sertifikayı kabul etmek üzere yapılandırılmalıdır. Microsoft Entra uygulamanın sertifikasını temel alarak kimlik doğrulaması.
  2. Uygulama, ilgili Kusto kümesinde yetkili bir sorumlu olarak yapılandırılmalıdır.
  3. Sertifikanın Yerel Makine deposunda veya Geçerli Kullanıcı deposunda yüklü olması gerekir.
  4. Sertifikanın ortak anahtarı en az 2048 bit içermelidir.

İstemci iletişim özellikleri

Özellik adı Programlı ad Description
Kabul Et Kabul Et Hata durumunda ayrıntılı hata nesnelerinin döndürülmesini isteyen boole değeri.
Akış Akış İstemcinin çağırana veri sağlamadan önce veri biriktirmemesi isteğinde bulunan boole değeri. Bu, varsayılan davranıştır.
Sıkıştırılmamış Sıkıştırılmamış İstemciden aktarım düzeyinde sıkıştırma istememe isteğinde bulunan boole değeri.

Not

Streaming Bayrak etkinleştirildiğinde (varsayılan olarak), SDK tüm yanıt verilerini bellekte arabelleğe almaz; bunun yerine çağıran istekte bulunduğunda verileri hizmetten "çeker". Bu nedenle, hizmetle ağ bağlantısı gereksiz yere açık tutulduktan sonra, bu durumda çağıranın verileri (örneğin IDataReader) verileri okuması tamamlandıktan sonra düzgün bir şekilde atması önemlidir.

Örnekler

Oturum açmış durumdaki kullanıcı kimliğini kullanarak Microsoft Entra Kimliği Federasyon kimlik doğrulaması (gerekirse kullanıcıdan istenir)

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
var authority = "contoso.com"; // Or the AAD tenant GUID
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadUserPromptAuthentication(authority);
// Equivalent Kusto connection string: $"Data Source={kustoUri};Database=NetDefaultDB;Fed=True;Authority Id={authority}"

kullanıcı kimliği ipucuyla Microsoft Entra Kimliği Federasyon kimlik doğrulaması (gerekirse kullanıcıdan istenir)

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
var authority = "contoso.com"; // Or the AAD tenant GUID
var userId = "johndoe@contoso.com";
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
  .WithAadUserPromptAuthentication(authority, userId);
// Equivalent Kusto connection string: $"Data Source={kustoUri};Database=NetDefaultDB;Fed=True;Authority Id={authority};User ID={userId}"

ApplicationClientId ve ApplicationKey kullanarak Microsoft Entra Kimliği Federasyon uygulaması kimlik doğrulaması

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
var appId = "<appId>";
var appKey = "<appKey>";
var authority = "contoso.com"; // Or the AAD tenant GUID
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadApplicationKeyAuthentication(appId, appKey, authority);
// Equivalent Kusto connection string: $"Data Source={kustoUri};Database=NetDefaultDB;Fed=True;AppClientId={appId};AppKey={appKey};Authority Id={authority}"

Sistem Tarafından Atanan Yönetilen Kimliği Kullanma

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadSystemManagedIdentity();

Kullanıcı Tarafından Atanan Yönetilen Kimliği Kullanma

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
var managedIdentityClientId = "<managedIdentityClientId>";
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadUserManagedIdentity(managedIdentityClientId);

kullanıcı / uygulama belirteci kullanarak Microsoft Entra Kimliği Federasyon kimlik doğrulaması

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
var userAccessToken = "<userAccessToken>";
var appAccessToken = "<appAccessToken>";
// AAD User token
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadUserTokenAuthentication(userAccessToken);
    
// Equivalent Kusto connection string: "Data Source={kustoUri};Database=NetDefaultDB;Fed=True;UserToken={userAccessToken}"
// AAD Application token
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadApplicationTokenAuthentication(appAccessToken);
    
// Equivalent Kusto connection string: "Data Source={kustoUri};Database=NetDefaultDB;Fed=True;ApplicationToken={appAccessToken}"

Belirteç sağlayıcısı geri çağırmasını kullanma (belirteç her gerektiğinde çağrılır)

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
Func<string> tokenProviderCallback; // User-defined method to retrieve the access token
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadTokenProviderAuthentication(tokenProviderCallback);

X.509 sertifikası kullanma

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
var appId = "<appId>";
X509Certificate2 appCert;
var authority = "contoso.com"; // Or the AAD tenant GUID
bool sendX5c; // Set to 'True' to use Trusted Issuer feature of AAD
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadApplicationCertificateAuthentication(appId, appCert, authority, sendX5c);

Parmak iziyle X.509 sertifikasını kullanma (istemci sertifikayı yerel depodan yüklemeyi dener)

var kustoUri = "https://<clusterName>.<region>.kusto.windows.net";
var appId = "<appId>";
var appCert = "<appCert>";
var authority = "contoso.com"; // Or the AAD tenant GUID
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(kustoUri)
    .WithAadApplicationThumbprintAuthentication(appId, appCert, authority);
// Equivalent Kusto connection string: $"Data Source={kustoUri};Database=NetDefaultDB;Fed=True;AppClientId={appId};AppCert={appCert};Authority Id={authority}"