diff --git a/src/app/tabs/settings.component.html b/src/app/tabs/settings.component.html
index 09a73136..a07f6bb6 100644
--- a/src/app/tabs/settings.component.html
+++ b/src/app/tabs/settings.component.html
@@ -134,6 +134,14 @@
+
+
+
+
diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json
index 11e555bc..2b615da2 100644
--- a/src/locales/en/messages.json
+++ b/src/locales/en/messages.json
@@ -354,6 +354,9 @@
"rootPath": {
"message": "Root Path"
},
+ "identityAuthority": {
+ "message": "Identity Authority"
+ },
"tenant": {
"message": "Tenant"
},
diff --git a/src/models/azureConfiguration.ts b/src/models/azureConfiguration.ts
index b9a113c0..904aec8c 100644
--- a/src/models/azureConfiguration.ts
+++ b/src/models/azureConfiguration.ts
@@ -1,4 +1,5 @@
export class AzureConfiguration {
+ identityAuthority: string;
tenant: string;
applicationId: string;
key: string;
diff --git a/src/services/azure-directory.service.ts b/src/services/azure-directory.service.ts
index 79571f2b..3e95f644 100644
--- a/src/services/azure-directory.service.ts
+++ b/src/services/azure-directory.service.ts
@@ -17,6 +17,9 @@ import { IDirectoryService } from './directory.service';
import { I18nService } from 'jslib-common/abstractions/i18n.service';
import { LogService } from 'jslib-common/abstractions/log.service';
+const AzurePublicIdentityAuhtority = 'login.microsoftonline.com';
+const AzureGovermentIdentityAuhtority = 'login.microsoftonline.us';
+
const NextLink = '@odata.nextLink';
const DeltaLink = '@odata.deltaLink';
const ObjectType = '@odata.type';
@@ -390,6 +393,12 @@ export class AzureDirectoryService extends BaseDirectoryService implements IDire
return;
}
+ const identityAuthority = this.dirConfig.identityAuthority != null ? this.dirConfig.identityAuthority : AzurePublicIdentityAuhtority;
+ if (identityAuthority !== AzurePublicIdentityAuhtority && identityAuthority !== AzureGovermentIdentityAuhtority) {
+ done(new Error(this.i18nService.t('dirConfigIncomplete')), null);
+ return;
+ }
+
if (!this.accessTokenIsExpired()) {
done(null, this.accessToken);
return;
@@ -406,7 +415,7 @@ export class AzureDirectoryService extends BaseDirectoryService implements IDire
});
const req = https.request({
- host: 'login.microsoftonline.com',
+ host: identityAuthority,
path: '/' + this.dirConfig.tenant + '/oauth2/v2.0/token',
method: 'POST',
headers: {