如何通过GraphClient getgroup()获取Azure Graph API组对象的source属性?
如何通过GraphClient区分本地AD迁移组与AAD云原生组
答案是肯定的,但不是直接获取source字段
Microsoft Graph的组接口(对应GraphClient的getgroup()方法)提供了专门的字段来标识组的来源,足以区分本地AD迁移的组和AAD中直接创建的组,哪怕本地AD已经停用。
关键判断字段
onPremisesSyncEnabled:布尔类型。如果值为true,说明这个组是从本地AD同步(迁移)过来的;如果是false或null,则是AAD原生创建的。这个字段不会因为本地AD停用而改变,记录的是组的原始同步属性。onPremisesLastSyncDateTime:日期时间类型。迁移过来的组会有具体的同步时间记录,云原生组这个值为null。creationOptions:部分迁移组会包含"ProvisionedFromOnPremises"这个选项,可作为辅助判断,但不是所有迁移组都有,建议优先用前两个字段。
GraphClient调用示例(C#)
// 获取指定组的关键字段 var targetGroup = await graphClient.Groups["{group-id}"] .Request() .Select("displayName,onPremisesSyncEnabled,onPremisesLastSyncDateTime,creationOptions") .GetAsync(); // 判断是否为AD迁移组 bool isADMigratedGroup = targetGroup.OnPremisesSyncEnabled == true || targetGroup.OnPremisesLastSyncDateTime != null;
权限要求
要读取这些字段,你的应用需要申请Group.Read.All或Directory.Read.All的权限,确保权限配置正确。
内容的提问来源于stack exchange,提问作者Somanden
相关产品推荐
相关产品推荐

