针对中国特定蔚蓝云的Adal图书馆

时间:2017-01-18 07:16:43

标签: azure adal

我正在开发一个单页应用程序,它使用adal.js进行身份验证和AAD。现在我们还计划在中国特定的Azure云中部署此应用程序。

令我困惑的是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. 

所以我需要在代码中更改此值,或者我们有任何新版本的ADAl,无需更改此登录地址。

先谢谢。

1 个答案:

答案 0 :(得分:2)

正如@GauravMantri所说,在Global Azure和China Azure之间使用Azure AD的区别仅在于使用不同的端点,请参阅下图,该图由中国Azure门户网站创建。

enter image description here

作为参考,以下是China Azure AD所需的一些变量(在C#中)。

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,您可以尝试搜索源代码,并将这些端点替换为Global Azure的全局端点。或者我认为您可以尝试使用中国Azure端点引用全局Azure AD REST API来验证差异是否仅在端点内,并在代码中使用REST API。

同时,有一个文件列出了全球和中国之间的终点映射,如果您能阅读中文,请转到网址https://www.azure.cn/documentation/articles/developerdifferences/#bookmark-7(右侧栏中的部分名称为中国区 Azure 资源端点URI (供应用程序代码使用)

我将下图关于Azure AD进行快照。 enter image description here

希望它有所帮助。如有任何疑虑,请随时告诉我。