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

如何通过Delta Graph API仅获取Azure AD的用户变更数据?

仅检索Azure AD用户变更数据的解决方案

核心原理

Microsoft Graph的Users.Delta API本身就是用于追踪Azure AD中用户对象的变更。第一次调用时会返回所有用户的完整快照(作为基线),同时返回一个deltaLink;后续使用该deltaLink发起请求,就只会返回自上次调用以来的Azure AD用户变更记录。

具体实现步骤

  1. 初始调用获取基线与deltaLink
    首次调用时获取全量用户数据(基线),并保存返回的deltaLink,用于后续变更查询:

    var result = await graphClient.Users.Delta.GetAsync((requestConfiguration) =>
    {
        requestConfiguration.QueryParameters.Select = new string []{ "displayName","givenName","surname" };
    });
    
    // 持久化保存deltaLink,比如存入数据库或配置文件
    string deltaLink = result.OdataDeltaLink;
    
  2. 后续调用获取变更数据
    使用之前保存的deltaLink发起请求,仅获取自上次调用后的Azure AD用户变更:

    // 从存储中读取保存的deltaLink
    var deltaRequest = new HttpRequestMessage(HttpMethod.Get, deltaLink);
    var deltaResult = await graphClient.RequestAdapter.SendAsync(deltaRequest, typeof(UserDeltaCollectionResponse));
    
  3. 过滤特定变更(可选)
    如果需要只关注特定属性或特定用户的变更,可以添加$filter条件(注意Delta API对$filter的支持有限,仅部分属性可用):

    var result = await graphClient.Users.Delta.GetAsync((requestConfiguration) =>
    {
        requestConfiguration.QueryParameters.Select = new string []{ "displayName","givenName","surname" };
        // 示例:仅筛选特定用户的变更
        requestConfiguration.QueryParameters.Filter = "id eq '00000000-0000-0000-0000-000000000000'";
    });
    

注意事项

  • deltaLink是持续追踪变更的关键,必须妥善保存,每次调用后如果返回新的deltaLink,需要更新存储的链接。
  • 如果deltaLink过期或丢失,需要重新发起初始调用获取基线,再继续追踪变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:27:29