mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-04-02 10:00:29 -04:00
* Add device code authentication * Change string
This commit is contained in:
@@ -39,6 +39,11 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true,
|
"default": true,
|
||||||
"description": "%config.enablePublicCloudDescription%"
|
"description": "%config.enablePublicCloudDescription%"
|
||||||
|
},
|
||||||
|
"accounts.azure.enableDeviceCodeLogin": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "%config.enableDeviceCodeLogin%"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -21,5 +21,6 @@
|
|||||||
"config.enableUsGovCloudDescription": "Should US Government Azure cloud (Fairfax) integration be enabled",
|
"config.enableUsGovCloudDescription": "Should US Government Azure cloud (Fairfax) integration be enabled",
|
||||||
"config.enableChinaCloudDescription": "Should Azure China integration be enabled",
|
"config.enableChinaCloudDescription": "Should Azure China integration be enabled",
|
||||||
"config.enableGermanyCloudDescription": "Should Azure Germany integration be enabled",
|
"config.enableGermanyCloudDescription": "Should Azure Germany integration be enabled",
|
||||||
"config.enableArcFeatures": "Should features related to Azure Arc be enabled (preview)"
|
"config.enableArcFeatures": "Should features related to Azure Arc be enabled (preview)",
|
||||||
|
"config.enableDeviceCodeLogin": "Enable Azure Active Directory device code login mechanism"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ import * as path from 'path';
|
|||||||
import * as vscode from 'vscode';
|
import * as vscode from 'vscode';
|
||||||
import CredentialServiceTokenCache from './tokenCache';
|
import CredentialServiceTokenCache from './tokenCache';
|
||||||
import providerSettings from './providerSettings';
|
import providerSettings from './providerSettings';
|
||||||
import { AzureAccountProvider as AzureAccountProvider } from './azureAccountProvider2';
|
import { AzureAccountProvider as OAuthAzureAccountProvider } from './azureAccountProvider2';
|
||||||
|
import { AzureAccountProvider as DeviceCodeAzureAccountProvider } from './azureAccountProvider';
|
||||||
import { AzureAccountProviderMetadata, ProviderSettings } from './interfaces';
|
import { AzureAccountProviderMetadata, ProviderSettings } from './interfaces';
|
||||||
import * as loc from '../localizedConstants';
|
import * as loc from '../localizedConstants';
|
||||||
|
|
||||||
@@ -132,12 +133,18 @@ export class AzureAccountProviderService implements vscode.Disposable {
|
|||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
//let config = vscode.workspace.getConfiguration(AzureAccountProviderService.ConfigurationSection);
|
let config = vscode.workspace.getConfiguration(AzureAccountProviderService.ConfigurationSection);
|
||||||
|
|
||||||
let tokenCacheKey = `azureTokenCache-${provider.metadata.id}`;
|
let tokenCacheKey = `azureTokenCache-${provider.metadata.id}`;
|
||||||
let tokenCachePath = path.join(this._userStoragePath, tokenCacheKey);
|
let tokenCachePath = path.join(this._userStoragePath, tokenCacheKey);
|
||||||
let tokenCache = new CredentialServiceTokenCache(self._credentialProvider, tokenCacheKey, tokenCachePath);
|
let tokenCache = new CredentialServiceTokenCache(self._credentialProvider, tokenCacheKey, tokenCachePath);
|
||||||
let accountProvider = new AzureAccountProvider(provider.metadata as AzureAccountProviderMetadata, tokenCache, this._context);
|
const enableDeviceCode = config.get('enableDeviceCodeLogin');
|
||||||
|
let accountProvider: azdata.AccountProvider;
|
||||||
|
if (enableDeviceCode === undefined || enableDeviceCode === false) {
|
||||||
|
accountProvider = new OAuthAzureAccountProvider(provider.metadata as AzureAccountProviderMetadata, tokenCache, this._context);
|
||||||
|
} else {
|
||||||
|
accountProvider = new DeviceCodeAzureAccountProvider(provider.metadata as AzureAccountProviderMetadata, tokenCache);
|
||||||
|
}
|
||||||
self._accountProviders[provider.metadata.id] = accountProvider;
|
self._accountProviders[provider.metadata.id] = accountProvider;
|
||||||
self._accountDisposals[provider.metadata.id] = azdata.accounts.registerAccountProvider(provider.metadata, accountProvider);
|
self._accountDisposals[provider.metadata.id] = azdata.accounts.registerAccountProvider(provider.metadata, accountProvider);
|
||||||
resolve();
|
resolve();
|
||||||
|
|||||||
Reference in New Issue
Block a user