Beispiel #1
0
 public KustoManagementGatewayFactory(
     TokenProviderParameterization tokenProvider,
     ITracer tracer)
 {
     _tokenProvider = tokenProvider;
     _tracer        = tracer;
 }
Beispiel #2
0
        private static KustoConnectionStringBuilder CreateKustoConnectionStringBuilder(
            Uri clusterUri,
            TokenProviderParameterization tokenProvider)
        {
            var builder = new KustoConnectionStringBuilder(clusterUri.ToString());

            if (tokenProvider.Login != null)
            {
                return(builder.WithAadApplicationKeyAuthentication(
                           tokenProvider.Login.ClientId,
                           tokenProvider.Login.Secret,
                           tokenProvider.Login.TenantId));
            }
            else if (tokenProvider.Tokens != null)
            {
                var token = tokenProvider.Tokens.Values
                            .Where(t => t.ClusterUri != null)
                            .Where(t => t.ClusterUri !.Trim().ToLower() == clusterUri.ToString().Trim().ToLower())
                            .Select(t => t.Token)
                            .FirstOrDefault();

                if (token != null)
                {
                    return(builder.WithAadUserTokenAuthentication(token));
                }
                else
                {
                    throw new DeltaException($"No token was provided for {clusterUri}");
                }
            }
            else if (tokenProvider.SystemManagedIdentity)
            {
                return(builder.WithAadSystemManagedIdentity());
            }
            else if (tokenProvider.UserManagedIdentity != null)
            {
                return(builder.WithAadUserManagedIdentity(tokenProvider.UserManagedIdentity.ClientId !));
            }
            else if (tokenProvider.UserPrompt != null)
            {
                return(builder.WithAadUserPromptAuthentication(
                           tokenProvider.UserPrompt.TenantId,
                           tokenProvider.UserPrompt.UserId));
            }
            else
            {
                throw new NotSupportedException("Token provider isn't supported");
            }
        }
Beispiel #3
0
 private string ExtractTokenProvider(TokenProviderParameterization tokenProvider)
 {
     if (tokenProvider.Login != null)
     {
         return("Login");
     }
     else if (tokenProvider.Tokens != null)
     {
         return("Tokens");
     }
     else
     {
         return("None");
     }
 }
Beispiel #4
0
        private static AdxDbTestHelper CreateSingleton()
        {
            var dbPrefix               = Environment.GetEnvironmentVariable("deltaKustoDbPrefix");
            var clusterUri             = Environment.GetEnvironmentVariable("deltaKustoClusterUri");
            var tenantId               = Environment.GetEnvironmentVariable("deltaKustoTenantId");
            var servicePrincipalId     = Environment.GetEnvironmentVariable("deltaKustoSpId");
            var servicePrincipalSecret = Environment.GetEnvironmentVariable("deltaKustoSpSecret");

            if (string.IsNullOrWhiteSpace(tenantId))
            {
                throw new ArgumentNullException(nameof(tenantId));
            }
            if (string.IsNullOrWhiteSpace(servicePrincipalId))
            {
                throw new ArgumentNullException(nameof(servicePrincipalId));
            }
            if (string.IsNullOrWhiteSpace(servicePrincipalSecret))
            {
                throw new ArgumentNullException(nameof(servicePrincipalSecret));
            }
            if (string.IsNullOrWhiteSpace(clusterUri))
            {
                throw new ArgumentNullException(nameof(clusterUri));
            }
            if (string.IsNullOrWhiteSpace(dbPrefix))
            {
                throw new ArgumentNullException(nameof(dbPrefix));
            }

            var tracer                = new ConsoleTracer(false);
            var httpClientFactory     = new SimpleHttpClientFactory(tracer);
            var tokenParameterization = new TokenProviderParameterization
            {
                Login = new ServicePrincipalLoginParameterization
                {
                    TenantId = tenantId,
                    ClientId = servicePrincipalId,
                    Secret   = servicePrincipalSecret
                }
            };
            var kustoGatewayFactory = new KustoManagementGatewayFactory(tokenParameterization, tracer);
            var helper = new AdxDbTestHelper(
                dbPrefix,
                db => kustoGatewayFactory.CreateGateway(new Uri(clusterUri), db));

            return(helper);
        }