diff --git a/extensions/kusto/package.json b/extensions/kusto/package.json index e9fc525635..e48ec5bf87 100644 --- a/extensions/kusto/package.json +++ b/extensions/kusto/package.json @@ -291,6 +291,14 @@ { "displayName": "%kusto.connectionOptions.authType.categoryValues.azureMFA%", "name": "AzureMFA" + }, + { + "displayName": "%kusto.connectionOptions.authType.categoryValues.none%", + "name": "None" + }, + { + "displayName": "%kusto.connectionOptions.authType.categoryValues.sqlLogin%", + "name": "SqlLogin" } ], "isRequired": true, diff --git a/extensions/kusto/package.nls.json b/extensions/kusto/package.nls.json index 3f961de959..012e7a95b6 100644 --- a/extensions/kusto/package.nls.json +++ b/extensions/kusto/package.nls.json @@ -27,6 +27,8 @@ "kusto.connectionOptions.authType.displayName": "Authentication type", "kusto.connectionOptions.authType.description": "Specifies the method of authenticating with Kusto Server", "kusto.connectionOptions.authType.categoryValues.azureMFA": "Azure Active Directory - Universal with MFA support", + "kusto.connectionOptions.authType.categoryValues.none": "No Authentication", + "kusto.connectionOptions.authType.categoryValues.sqlLogin": "User Authentication", "kusto.connectionOptions.userName.displayName": "User name", "kusto.connectionOptions.userName.description": "Indicates the user ID to be used when connecting to the data source", "kusto.connectionOptions.password.displayName": "Password", diff --git a/src/sql/platform/connection/common/connectionStore.ts b/src/sql/platform/connection/common/connectionStore.ts index a3d3e5ccac..1135ca3b02 100644 --- a/src/sql/platform/connection/common/connectionStore.ts +++ b/src/sql/platform/connection/common/connectionStore.ts @@ -91,6 +91,9 @@ export class ConnectionStore { }); } else if (credentialsItem.authenticationType === 'AzureMFA' || credentialsItem.authenticationType === 'dstsAuth' && credentialsItem.azureAccount) { return Promise.resolve({ profile: credentialsItem, savedCred: true }); + } else if (credentialsItem.authenticationType === 'None') { + // Kusto supports no authentication + return Promise.resolve({ profile: credentialsItem, savedCred: true }); } else { // No need to look up the password return Promise.resolve({ profile: credentialsItem, savedCred: credentialsItem.savePassword }); diff --git a/src/sql/workbench/services/connection/browser/connectionWidget.ts b/src/sql/workbench/services/connection/browser/connectionWidget.ts index ea57d84cfb..dbdfa5f2a4 100644 --- a/src/sql/workbench/services/connection/browser/connectionWidget.ts +++ b/src/sql/workbench/services/connection/browser/connectionWidget.ts @@ -42,7 +42,8 @@ export enum AuthenticationType { Integrated = 'Integrated', AzureMFA = 'AzureMFA', AzureMFAAndUser = 'AzureMFAAndUser', - dSTSAuth = 'dstsAuth' + dSTSAuth = 'dstsAuth', + None = 'None' // Kusto supports no authentication } export class ConnectionWidget extends lifecycle.Disposable { @@ -78,7 +79,7 @@ export class ConnectionWidget extends lifecycle.Disposable { protected _databaseNameInputBox: Dropdown; protected _advancedButton: Button; private static readonly _authTypes: AuthenticationType[] = - [AuthenticationType.AzureMFA, AuthenticationType.AzureMFAAndUser, AuthenticationType.Integrated, AuthenticationType.SqlLogin, AuthenticationType.dSTSAuth]; + [AuthenticationType.AzureMFA, AuthenticationType.AzureMFAAndUser, AuthenticationType.Integrated, AuthenticationType.SqlLogin, AuthenticationType.dSTSAuth, AuthenticationType.None]; private static readonly _osByName = { Windows: OperatingSystem.Windows, Macintosh: OperatingSystem.Macintosh, @@ -523,6 +524,14 @@ export class ConnectionWidget extends lifecycle.Disposable { this._tableContainer.classList.add('hide-username'); this._tableContainer.classList.add('hide-password'); this._tableContainer.classList.add('hide-azure-accounts'); + } else if (currentAuthType === AuthenticationType.None) { + this._azureAccountDropdown.disable(); + this._azureAccountDropdown.hideMessage(); + this._azureTenantDropdown.disable(); + this._azureTenantDropdown.hideMessage(); + this._tableContainer.classList.add('hide-username'); + this._tableContainer.classList.add('hide-password'); + this._tableContainer.classList.add('hide-azure-accounts'); } else { this._azureAccountDropdown.disable(); this._azureAccountDropdown.hideMessage();