2017-01-18 3 views
1

Я работаю над одностраничным приложением, которое использует adal.js для аутентификации с помощью AAD. Теперь мы также планируем развернуть это приложение в конкретном облаке Azure в Китае.Adal library for China specific azure cloud

Что меня смущает, это жестко закодированная ссылка (может быть сделана моими коллегами) в файле adal.js по строке 112, как показано ниже.

if (AuthenticationContext.prototype._singletonInstance) { 
    return AuthenticationContext.prototype._singletonInstance; 
} 
AuthenticationContext.prototype._singletonInstance = this; 

// public 
this.instance = 'https://login.windows.net/'; 
this.config = {}; 
this.callback = null; 
this.popUp = false; 

// private 
this._user = null; 
this._renewActive = false; 
this._loginInProgress = false; 
this._renewStates = []; 

    This address 'https://login.windows.net/' isn't valid for azure china cloud. 

Так что мне нужно, чтобы изменить это значение в коде или есть какие-либо новые версии Адал, где этот Войти адрес не должен быть изменен.

Спасибо заранее.

+0

Можете ли вы попробовать использовать 'https: // login.chinacloudapi.cn /' вместо 'https: // login.windows.net /'? –

+0

Привет, Гаурав за ответ. Но мой вопрос: есть ли ури, который будет перенаправлять на правильную конечную точку в зависимости от того, где приложение развернуто? Таким образом, нам не придется менять этот урис для каждого нового облачного облака (слышали, что они придумывают другие облачные облака). – user3603529

ответ

2

Как сказал @GauravMantri, разница в использовании Azure AD между Global Azure и China Azure использует только разные конечные точки, см. Рисунок ниже, который будет снят с портала Azure в Китае.

enter image description here

В качестве сравнения, вот некоторые переменные (в C#), необходимых для Китая Azure AD.

private static string clientId = "xxxxxxx-xxxxx-xxxx-xxxx-xxxxxx"; 
private static string appKey = "xxxxxxxxxxxxxxxxxxxxxxxx="; 
private static string graphResourceId = "https://graph.chinacloudapi.cn"; 
private static string domainName = "xxxxxxxxxxxxxx.partner.onmschina.cn"; 
private static string tenantID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"; 

Для использования adal.js, вы можете попробовать поискать в исходном коде и заменить эти конечные точки для глобального с ними для Китая Azure. Или я думаю, что вы можете попытаться обратиться к глобальному API-интерфейсу Azure AD REST с конечными точками Китая Azure, чтобы проверить, находится ли разница только в пределах конечных точек и использовать REST API в вашем коде.

Между тем есть документ, в котором перечислены сопоставление конечных точек между глобальным и китайским, пожалуйста, перейдите к URL-адресу https://www.azure.cn/documentation/articles/developerdifferences/#bookmark-7 (название раздела на правой боковой панели 中国区 Azure 资源端点URI (供应用程序代码使用)), если вы могли бы читать по-китайски.

Я снизу рисунок ниже о Azure AD. enter image description here

Надеюсь, это поможет. Любое беспокойство, пожалуйста, не стесняйтесь, дайте мне знать.