Fix resource endpoints to end with slash (#21540)

This commit is contained in:
Cheena Malhotra
2023-01-06 17:53:09 -08:00
committed by GitHub
parent c35dd95525
commit b9e8a87472
2 changed files with 31 additions and 30 deletions

View File

@@ -280,8 +280,6 @@ export abstract class AzureAuth implements vscode.Disposable {
return undefined; return undefined;
} }
protected abstract loginAdal(tenant: Tenant, resource: Resource): Promise<{ response: OAuthTokenResponse | undefined, authComplete: Deferred<void, Error> }>; protected abstract loginAdal(tenant: Tenant, resource: Resource): Promise<{ response: OAuthTokenResponse | undefined, authComplete: Deferred<void, Error> }>;
protected abstract loginMsal(tenant: Tenant, resource: Resource): Promise<{ response: AuthenticationResult | null, authComplete: Deferred<void, Error> }>; protected abstract loginMsal(tenant: Tenant, resource: Resource): Promise<{ response: AuthenticationResult | null, authComplete: Deferred<void, Error> }>;
@@ -323,6 +321,9 @@ export abstract class AzureAuth implements vscode.Disposable {
Logger.error(`Error: Could not fetch the azure resource ${azureResource} `); Logger.error(`Error: Could not fetch the azure resource ${azureResource} `);
return null; return null;
} }
// Resource endpoint must end with '/' to form a valid scope for MSAL token request.
const endpoint = resource.endpoint.endsWith('/') ? resource.endpoint : resource.endpoint + '/';
let account: AccountInfo | null = await this.getAccountFromMsalCache(accountId); let account: AccountInfo | null = await this.getAccountFromMsalCache(accountId);
if (!account) { if (!account) {
Logger.error('Error: Could not fetch account when acquiring token'); Logger.error('Error: Could not fetch account when acquiring token');
@@ -330,9 +331,9 @@ export abstract class AzureAuth implements vscode.Disposable {
} }
let newScope; let newScope;
if (resource.azureResourceId === azdata.AzureResource.ResourceManagement) { if (resource.azureResourceId === azdata.AzureResource.ResourceManagement) {
newScope = [`${resource?.endpoint}user_impersonation`]; newScope = [`${endpoint}user_impersonation`];
} else { } else {
newScope = [`${resource?.endpoint}.default`]; newScope = [`${endpoint}.default`];
} }
// construct request // construct request

View File

@@ -39,7 +39,7 @@ const publicAzureSettings: ProviderSettings = {
}, },
graphResource: { graphResource: {
id: SettingIds.graph, id: SettingIds.graph,
endpoint: 'https://graph.windows.net', endpoint: 'https://graph.windows.net/',
azureResourceId: AzureResource.Graph azureResourceId: AzureResource.Graph
}, },
msGraphResource: { msGraphResource: {
@@ -59,38 +59,38 @@ const publicAzureSettings: ProviderSettings = {
}, },
ossRdbmsResource: { ossRdbmsResource: {
id: SettingIds.ossrdbms, id: SettingIds.ossrdbms,
endpoint: 'https://ossrdbms-aad.database.windows.net', endpoint: 'https://ossrdbms-aad.database.windows.net/',
azureResourceId: AzureResource.OssRdbms azureResourceId: AzureResource.OssRdbms
}, },
azureKeyVaultResource: { azureKeyVaultResource: {
id: SettingIds.vault, id: SettingIds.vault,
endpoint: 'https://vault.azure.net', endpoint: 'https://vault.azure.net/',
azureResourceId: AzureResource.AzureKeyVault azureResourceId: AzureResource.AzureKeyVault
}, },
azureDevOpsResource: { azureDevOpsResource: {
id: SettingIds.ado, id: SettingIds.ado,
endpoint: '499b84ac-1321-427f-aa17-267ca6975798', endpoint: '499b84ac-1321-427f-aa17-267ca6975798/',
azureResourceId: AzureResource.AzureDevOps, azureResourceId: AzureResource.AzureDevOps,
}, },
azureLogAnalyticsResource: { azureLogAnalyticsResource: {
id: SettingIds.ala, id: SettingIds.ala,
endpoint: 'https://api.loganalytics.io', endpoint: 'https://api.loganalytics.io/',
azureResourceId: AzureResource.AzureLogAnalytics, azureResourceId: AzureResource.AzureLogAnalytics,
}, },
azureStorageResource: { azureStorageResource: {
id: SettingIds.storage, id: SettingIds.storage,
endpoint: '', endpoint: '',
endpointSuffix: '.core.windows.net', endpointSuffix: '.core.windows.net/',
azureResourceId: AzureResource.AzureStorage azureResourceId: AzureResource.AzureStorage
}, },
azureKustoResource: { azureKustoResource: {
id: SettingIds.kusto, id: SettingIds.kusto,
endpoint: 'https://kusto.kusto.windows.net', endpoint: 'https://kusto.kusto.windows.net/',
azureResourceId: AzureResource.AzureKusto, azureResourceId: AzureResource.AzureKusto,
}, },
powerBiResource: { powerBiResource: {
id: SettingIds.powerbi, id: SettingIds.powerbi,
endpoint: 'https://analysis.windows.net/powerbi/api', endpoint: 'https://analysis.windows.net/powerbi/api/',
azureResourceId: AzureResource.PowerBi azureResourceId: AzureResource.PowerBi
}, },
redirectUri: 'http://localhost', redirectUri: 'http://localhost',
@@ -119,12 +119,12 @@ const usGovAzureSettings: ProviderSettings = {
}, },
graphResource: { graphResource: {
id: SettingIds.graph, id: SettingIds.graph,
endpoint: 'https://graph.windows.net', endpoint: 'https://graph.windows.net/',
azureResourceId: AzureResource.Graph azureResourceId: AzureResource.Graph
}, },
armResource: { armResource: {
id: SettingIds.arm, id: SettingIds.arm,
endpoint: 'https://management.usgovcloudapi.net', endpoint: 'https://management.usgovcloudapi.net/',
azureResourceId: AzureResource.ResourceManagement azureResourceId: AzureResource.ResourceManagement
}, },
sqlResource: { sqlResource: {
@@ -134,28 +134,28 @@ const usGovAzureSettings: ProviderSettings = {
}, },
ossRdbmsResource: { ossRdbmsResource: {
id: SettingIds.ossrdbms, id: SettingIds.ossrdbms,
endpoint: 'https://ossrdbms-aad.database.usgovcloudapi.net', endpoint: 'https://ossrdbms-aad.database.usgovcloudapi.net/',
azureResourceId: AzureResource.OssRdbms azureResourceId: AzureResource.OssRdbms
}, },
azureKeyVaultResource: { azureKeyVaultResource: {
id: SettingIds.vault, id: SettingIds.vault,
endpoint: 'https://vault.usgovcloudapi.net', endpoint: 'https://vault.usgovcloudapi.net/',
azureResourceId: AzureResource.AzureKeyVault azureResourceId: AzureResource.AzureKeyVault
}, },
azureLogAnalyticsResource: { azureLogAnalyticsResource: {
id: SettingIds.ala, id: SettingIds.ala,
endpoint: 'https://api.loganalytics.us', endpoint: 'https://api.loganalytics.us/',
azureResourceId: AzureResource.AzureLogAnalytics, azureResourceId: AzureResource.AzureLogAnalytics,
}, },
azureStorageResource: { azureStorageResource: {
id: SettingIds.storage, id: SettingIds.storage,
endpoint: '', endpoint: '',
endpointSuffix: '.core.usgovcloudapi.net', endpointSuffix: '.core.usgovcloudapi.net/',
azureResourceId: AzureResource.AzureStorage azureResourceId: AzureResource.AzureStorage
}, },
powerBiResource: { powerBiResource: {
id: SettingIds.powerbi, id: SettingIds.powerbi,
endpoint: 'https://analysis.windows.net/powerbi/api', endpoint: 'https://analysis.windows.net/powerbi/api/',
azureResourceId: AzureResource.PowerBi azureResourceId: AzureResource.PowerBi
}, },
redirectUri: 'http://localhost', redirectUri: 'http://localhost',
@@ -183,7 +183,7 @@ const usNatAzureSettings: ProviderSettings = {
}, },
graphResource: { graphResource: {
id: SettingIds.graph, id: SettingIds.graph,
endpoint: 'https://graph.eaglex.ic.gov', endpoint: 'https://graph.eaglex.ic.gov/',
azureResourceId: AzureResource.Graph azureResourceId: AzureResource.Graph
}, },
armResource: { armResource: {
@@ -198,23 +198,23 @@ const usNatAzureSettings: ProviderSettings = {
}, },
ossRdbmsResource: { ossRdbmsResource: {
id: SettingIds.ossrdbms, id: SettingIds.ossrdbms,
endpoint: 'https://ossrdbms-aad.database.cloudapi.eaglex.ic.gov', endpoint: 'https://ossrdbms-aad.database.cloudapi.eaglex.ic.gov/',
azureResourceId: AzureResource.OssRdbms azureResourceId: AzureResource.OssRdbms
}, },
azureKeyVaultResource: { azureKeyVaultResource: {
id: SettingIds.vault, id: SettingIds.vault,
endpoint: 'https://vault.cloudapi.eaglex.ic.gov', endpoint: 'https://vault.cloudapi.eaglex.ic.gov/',
azureResourceId: AzureResource.AzureKeyVault azureResourceId: AzureResource.AzureKeyVault
}, },
azureLogAnalyticsResource: { azureLogAnalyticsResource: {
id: SettingIds.ala, id: SettingIds.ala,
endpoint: 'https://api.loganalytics.azure.eaglex.ic.gov', endpoint: 'https://api.loganalytics.azure.eaglex.ic.gov/',
azureResourceId: AzureResource.AzureLogAnalytics, azureResourceId: AzureResource.AzureLogAnalytics,
}, },
azureStorageResource: { azureStorageResource: {
id: SettingIds.storage, id: SettingIds.storage,
endpoint: '', endpoint: '',
endpointSuffix: '.core.eaglex.ic.gov', endpointSuffix: '.core.eaglex.ic.gov/',
azureResourceId: AzureResource.AzureStorage azureResourceId: AzureResource.AzureStorage
}, },
redirectUri: 'http://localhost', redirectUri: 'http://localhost',
@@ -238,33 +238,33 @@ const germanyAzureSettings: ProviderSettings = {
clientId: 'a69788c6-1d43-44ed-9ca3-b83e194da255', clientId: 'a69788c6-1d43-44ed-9ca3-b83e194da255',
graphResource: { graphResource: {
id: SettingIds.graph, id: SettingIds.graph,
endpoint: 'https://graph.cloudapi.de', endpoint: 'https://graph.cloudapi.de/',
azureResourceId: AzureResource.Graph azureResourceId: AzureResource.Graph
}, },
msGraphResource: { msGraphResource: {
id: SettingIds.msgraph, id: SettingIds.msgraph,
endpoint: 'https://graph.microsoft.de', endpoint: 'https://graph.microsoft.de/',
azureResourceId: AzureResource.MsGraph azureResourceId: AzureResource.MsGraph
}, },
armResource: { armResource: {
id: SettingIds.arm, id: SettingIds.arm,
endpoint: 'https://management.microsoftazure.de', endpoint: 'https://management.microsoftazure.de/',
azureResourceId: AzureResource.ResourceManagement azureResourceId: AzureResource.ResourceManagement
}, },
azureKeyVaultResource: { azureKeyVaultResource: {
id: SettingIds.vault, id: SettingIds.vault,
endpoint: 'https://vault.microsoftazure.de', endpoint: 'https://vault.microsoftazure.de/',
azureResourceId: AzureResource.AzureKeyVault azureResourceId: AzureResource.AzureKeyVault
}, },
azureStorageResource: { azureStorageResource: {
id: SettingIds.storage, id: SettingIds.storage,
endpoint: '', endpoint: '',
endpointSuffix: '.core.cloudapi.de', endpointSuffix: '.core.cloudapi.de/',
azureResourceId: AzureResource.AzureStorage azureResourceId: AzureResource.AzureStorage
}, },
powerBiResource: { powerBiResource: {
id: SettingIds.powerbi, id: SettingIds.powerbi,
endpoint: 'https://analysis.windows.net/powerbi/api', endpoint: 'https://analysis.windows.net/powerbi/api/',
azureResourceId: AzureResource.PowerBi azureResourceId: AzureResource.PowerBi
}, },
redirectUri: 'http://localhost', redirectUri: 'http://localhost',