如何将多个Azure活动目录帐户连接到您的应用程序?

时间:2019-03-28 15:24:51

标签: node.js azure azure-active-directory

我需要使用多个Azure AD登录NodeJS应用程序并获取用户详细信息。我不确定如何实现?

当前,我们的应用程序正在与与一个Azure AD关联的应用程序进行通信。来自新Azure AD的普通用户无法使用Office365凭据登录我们的系统,因为Office365不允许我们的应用访问与新Azure AD相关的用户配置文件。但是具有Global Admins角色的新Azure AD用户可以登录到我们的应用程序。普通用户尝试登录我们的应用程序时,将显示以下消息

<应用程序名称>需要权限,以访问只有管理员才能授予的组织资源。请先向管理员授予此应用的权限,然后才能使用它。

是否可以使用同一应用程序连接到多个Azure AD?以及如何实现呢?请添加链接和屏幕截图。

2 个答案:

答案 0 :(得分:2)

将来在Azure AD中可能面临类似问题的人们。

在Azure AD中创建的应用程序设置中,可以使其成为多租户,还可以指定应用程序需要访问哪种资源/数据类型。对于需要管理员角色的一种资源和不需要的另一种资源,您可以访问两种类型的资源/数据/操作。

如果您要访问与数据有关的数据

要建立多租户:

Azure AD > App Registeration > Your App > Settings > Properties 

要更新权限:

Azure AD > App Registeration > Your App > Settings > Required Permissions (Update them here)

答案 1 :(得分:0)

您如何针对一个AD连接池执行此操作?这是伪代码,用于轮询多个AD并运行诸如身份验证之类的功能

var ActiveDirectory = require('activedirectory');

var config_domain_1 = { url: 'ldap://dc.domain.com',
               baseDN: 'dc=domain,dc=com',
               username: 'username@domain.com',
               password: 'password' }

var config_domain_2 = { url: 'ldap://dc.domain.com',
               baseDN: 'dc=domain,dc=com',
               username: 'username@domain.com',
               password: 'password' }

var config_domain_2 = { url: 'ldap://dc.domain.com',
               baseDN: 'dc=domain,dc=com',
               username: 'username@domain.com',
               password: 'password' }

var ad_domain_1 = new ActiveDirectory(config_domain_1);
var ad_domain_2 = new ActiveDirectory(config_domain_2);
var ad_domain_3 = new ActiveDirectory(config_domain_3);

ad_domain_1.authenticate(username, password, function(err, auth) {...}