private void EnableStorageUserAuthIfNeeded()

in src/Ingestor.cs [684:733]


        private void EnableStorageUserAuthIfNeeded(ref string sourcePath, out IKustoTokenCredentialsProvider provider)
        {
            provider = null;
            var semiColonSecret = ";impersonate";
            var providerName = "light ingest blob list";
            if (c_USER_PROMPT_AUTH.Equals(m_connectToStorageWithUserAuth, StringComparison.OrdinalIgnoreCase))
            {
                if (string.IsNullOrWhiteSpace(m_connectToStorageLoginUri))
                {
                    provider = new AadUserPromptCredentialsProvider(providerName);
                }
                else
                {
                    provider = new AadUserPromptCredentialsProvider(providerName, m_connectToStorageLoginUri);
                }
            }
            else if (c_DEVICE_CODE_AUTH.Equals(m_connectToStorageWithUserAuth, StringComparison.OrdinalIgnoreCase))
            {
                AadDeviceCodeTokenCredentialProvider.DeviceCodeCallback callback = (msg, url, code) =>
                {
                    Console.WriteLine("Device Code Message: {0}", msg);
                    return Task.CompletedTask;
                };


                if (string.IsNullOrWhiteSpace(m_connectToStorageLoginUri))
                {
                    provider = new AadDeviceCodeTokenCredentialProvider(providerName, callback);
                }
                else
                {
                    provider = new AadDeviceCodeTokenCredentialProvider(providerName, callback, m_connectToStorageLoginUri);
                }
            }
            else if (c_AZ_CLI.Equals(m_connectToStorageWithUserAuth, StringComparison.OrdinalIgnoreCase))
            {
                provider = new AzCliTokenProvider(false);
            }
            else if (!string.IsNullOrEmpty(m_connectToStorageWithManagedIdentity))
            {
                provider = AadManagedIdentityTokenCredentialsProvider.CreateProviderFromString(m_connectToStorageWithManagedIdentity);
                semiColonSecret = ";managed_identity=" + m_connectToStorageWithManagedIdentity;
            }

            if (provider != null)
            {
                sourcePath = sourcePath.SplitFirst(new[] { ';', '?' });
                sourcePath += semiColonSecret;
            }
        }