in src/Serilog.Sinks.AzureDataExplorer/Extensions/AzureDataExplorerSinkOptionsExtensions.cs [41:90]
private static KustoConnectionStringBuilder GetKcsbWithAuthentication(KustoConnectionStringBuilder kcsb,
AzureDataExplorerSinkOptions options)
{
switch (options.AuthenticationMode)
{
case AuthenticationMode.AadApplicationCertificate:
kcsb = kcsb.WithAadApplicationCertificateAuthentication(options.ApplicationClientId,
options.ApplicationCertificate, options.Authority, options.SendX5C, options.AzureRegion);
break;
case AuthenticationMode.AadApplicationKey:
kcsb = kcsb.WithAadApplicationKeyAuthentication(options.ApplicationClientId, options.ApplicationKey,
options.Authority);
break;
case AuthenticationMode.AadApplicationSubjectName:
kcsb = kcsb.WithAadApplicationSubjectNameAuthentication(options.ApplicationClientId,
options.ApplicationCertificateSubjectDistinguishedName, options.Authority, options.AzureRegion);
break;
case AuthenticationMode.AadApplicationThumbprint:
kcsb = kcsb.WithAadApplicationThumbprintAuthentication(options.ApplicationClientId,
options.ApplicationCertificateThumbprint, options.Authority);
break;
case AuthenticationMode.AadApplicationToken:
kcsb = kcsb.WithAadApplicationTokenAuthentication(options.ApplicationToken);
break;
case AuthenticationMode.AadAzureTokenCredentials:
kcsb = kcsb.WithAadAzureTokenCredentialsAuthentication(options.TokenCredential);
break;
case AuthenticationMode.AadUserToken:
kcsb = kcsb.WithAadUserTokenAuthentication(options.UserToken);
break;
case AuthenticationMode.AadSystemManagedIdentity:
kcsb = kcsb.WithAadSystemManagedIdentity();
break;
case AuthenticationMode.AadUserManagedIdentity:
kcsb = kcsb.WithAadUserManagedIdentity(options.ApplicationClientId);
break;
case AuthenticationMode.AadWorkloadIdentity:
kcsb = kcsb.WithAadAzureTokenCredentialsAuthentication(new WorkloadIdentityCredential());
break;
case AuthenticationMode.AadUserPrompt:
default:
kcsb = kcsb.WithAadAzureTokenCredentialsAuthentication(new ChainedTokenCredential(new AzureCliCredential(), new InteractiveBrowserCredential()));
break;
}
kcsb.ApplicationNameForTracing = AppName;
kcsb.ClientVersionForTracing = ClientVersion;
kcsb.SetConnectorDetails(AppName, ClientVersion, "Serilog", "4.0.0");
return kcsb;
}