You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js+Node.js场景下如何编程获取Azure AD目录详情?

解决方案

核心步骤说明

要获取Azure AD目录详情,本质是通过Microsoft Graph API调用实现,结合你已有的msal-node登录流程,只需补充以下步骤:

1. 为Azure AD应用添加权限

在Azure门户的应用注册中找到你的应用:

  • 进入「API权限」页面
  • 添加权限 → 选择「Microsoft Graph」
  • 根据场景选择权限类型:
    • 若代表登录用户获取信息,选「委托权限」,比如Directory.Read.All、User.Read.All
    • 若应用后台自主获取信息,选「应用权限」,同样可选Directory.Read.All等
  • 添加后点击「授予管理员同意」(应用权限必须执行此操作,委托权限建议提前完成同意)

2. 登录时获取含Graph API权限的访问令牌

在msal-node的登录请求配置中,加入Graph API的作用域:

const loginRequest = {
  scopes: ["openid", "profile", "email", "https://graph.microsoft.com/Directory.Read.All"]
};

登录成功后,通过msal-node获取包含该权限的access token。

3. 调用Microsoft Graph API获取目录详情

拿到access token后,发起HTTP请求调用对应API端点:

  • 获取租户(目录)基本信息:GET https://graph.microsoft.com/v1.0/organization
  • 获取目录下所有用户:GET https://graph.microsoft.com/v1.0/users
  • 获取目录下所有组:GET https://graph.microsoft.com/v1.0/groups

Node.js端示例代码:

const axios = require('axios');

async function getDirectoryDetails(accessToken) {
  try {
    const tenantResponse = await axios.get('https://graph.microsoft.com/v1.0/organization', {
      headers: { 'Authorization': `Bearer ${accessToken}` }
    });
    const usersResponse = await axios.get('https://graph.microsoft.com/v1.0/users', {
      headers: { 'Authorization': `Bearer ${accessToken}` }
    });
    return { tenant: tenantResponse.data, users: usersResponse.data };
  } catch (error) {
    console.error('获取目录详情失败:', error.response?.data || error.message);
    throw error;
  }
}

4. 将数据存入本地数据库

解析API返回的JSON数据,按照你的数据库结构(如MySQL、MongoDB等),完成数据的插入或更新操作即可。

关键注意事项

  • 确保access token包含正确的Graph API作用域,否则会返回权限不足错误
  • 应用权限必须由管理员提前同意,否则调用会失败
  • Graph API有调用频率限制,需做好错误处理和重试机制

内容的提问来源于stack exchange,提问作者Maulik Chodvadiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 02:33:29