我需要使用多个Azure AD登录NodeJS应用程序并获取用户详细信息。我不确定如何实现?
当前,我们的应用程序正在与与一个Azure AD关联的应用程序进行通信。来自新Azure AD的普通用户无法使用Office365凭据登录我们的系统,因为Office365不允许我们的应用访问与新Azure AD相关的用户配置文件。但是具有Global Admins角色的新Azure AD用户可以登录到我们的应用程序。普通用户尝试登录我们的应用程序时,将显示以下消息
<应用程序名称>需要权限,以访问只有管理员才能授予的组织资源。请先向管理员授予此应用的权限,然后才能使用它。
是否可以使用同一应用程序连接到多个Azure AD?以及如何实现呢?请添加链接和屏幕截图。
答案 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) {...}