O365与Exchange混合部署下区分用户及通过Graph API仅拉取O365用户的方法
关于O365与Exchange混合部署下的用户拉取及区分方案
一、通过Graph API仅拉取纯O365用户的方法
调用Graph API的/users接口时,可通过$filter参数筛选用户属性实现过滤:
核心筛选逻辑为排除onPremisesSyncEnabled值为true的本地同步用户,示例请求如下:
GET https://graph.microsoft.com/v1.0/users?$filter=onPremisesSyncEnabled ne true
如果需要进一步过滤掉未启用O365邮箱的云端用户,可叠加recipientTypeDetails属性筛选,仅保留值为UserMailbox的用户:
GET https://graph.microsoft.com/v1.0/users?$filter=onPremisesSyncEnabled ne true and recipientTypeDetails eq 'UserMailbox'
二、混合部署场景下两类用户的区分方式
可通过以下几个用户核心属性的差异做区分:
onPremisesSyncEnabled:值为true的为本地Exchange同步用户,值为false或null的为原生O365云端用户onPremisesMailboxGuid:本地Exchange用户同步后该属性存在对应有效值,原生O365用户该属性为nullrecipientTypeDetails:未上云的本地Exchange同步用户该属性值通常为MailUser,原生O365用户该属性值为UserMailboximmutableId:从本地AD/Exchange同步的用户该属性存在有效值,原生O365用户默认无该属性值
注:如果是已从本地Exchange迁移到O365云端的用户,
onPremisesSyncEnabled仍为true,可通过recipientTypeDetails值是否为UserMailbox判断其云端邮箱状态。
内容的提问来源于stack exchange,提问作者Mohan P
相关产品推荐
相关产品推荐

