如何创建Webhook接收Azure AD用户增改通知并触发Function App?是否有专属Graph API?
解决方案:Azure AD用户变更Webhook触发Function App与操作详情查询
一、配置Webhook触发Function App
要在Azure AD用户创建/更新时触发Function App,需借助Microsoft Graph的**变更通知(Change Notifications)**功能,步骤如下:
- 在Azure AD注册应用程序,授予
User.Read.All应用权限(需管理员同意),用于订阅用户变更事件。 - 在Azure Function App中创建HTTP触发的函数,实现以下逻辑:
- 处理Graph API发送的订阅验证请求:当收到包含
validationToken的GET请求时,直接返回该令牌完成订阅验证。 - 解析POST请求中的通知内容,提取用户ID等关键信息,触发后续业务逻辑。
- 处理Graph API发送的订阅验证请求:当收到包含
- 通过Graph API创建订阅,示例请求:
POST https://graph.microsoft.com/v1.0/subscriptions Content-Type: application/json { "changeType": "created,updated", "notificationUrl": "https://<你的FunctionApp域名>/api/<函数名>", "resource": "/users", "expirationDateTime": "2024-12-31T23:59:59Z", "clientState": "任意随机字符串,用于验证通知合法性" }
二、独立Graph API获取用户操作详情
有两个核心API可用于查询用户创建/更新的详细操作记录:
1. 目录审计日志API
用于获取Azure AD中用户操作的审计记录,包括操作执行者、时间、操作类型等信息。示例请求:
GET https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?$filter=activityDisplayName in ('Add user', 'Update user')
需授予应用AuditLog.Read.All权限(管理员同意)。
2. 用户增量查询API
用于跟踪用户属性的具体变更内容,适合获取用户更新前后的属性差异。初始请求示例:
GET https://graph.microsoft.com/v1.0/users/delta
后续可使用返回的@odata.nextLink或@odata.deltaLink获取后续变更记录,需授予User.Read.All权限。
用户列表参考截图

内容的提问来源于stack exchange,提问作者nullsafe
相关产品推荐
相关产品推荐

