Azure基于组的许可证:如何移除未接受邀请的动态组成员
Azure动态组移除未接受邀请外部用户的可行方案
由于Azure AD动态组规则不直接支持「邀请接受状态」作为筛选条件,以下是几种落地性强的实现方案:
方案一:PowerShell脚本+静态组自动化管理
- 创建用于许可证分配的静态安全组,替代原动态组
- 编写PowerShell脚本,通过Graph API完成以下操作:
- 筛选出已接受邀请的外部用户:
UserType eq 'Guest' and ExternalUserState eq 'Accepted' - 按照原动态组规则筛选出需要包含的内部用户
- 对比静态组当前成员,自动添加新符合条件的用户,移除未接受邀请的外部用户及不符合规则的内部用户
- 筛选出已接受邀请的外部用户:
- 将脚本部署到Azure Automation Runbook,设置定时触发(如每日执行),确保组成员自动更新
方案二:Logic Apps+自定义扩展属性适配动态组
- 给Azure AD用户添加自定义扩展属性(如
extension_12345_InviteAccepted),用于标记邀请接受状态 - 创建Logic Apps定时工作流:
- 调用Graph API获取所有未接受邀请的外部用户(
UserType eq 'Guest' and ExternalUserState eq 'PendingAcceptance') - 遍历这些用户,将其自定义属性设为
false;已接受的用户设为true
- 调用Graph API获取所有未接受邀请的外部用户(
- 修改动态组规则,添加筛选条件:
extension_12345_InviteAccepted eq 'true',自动排除未接受邀请的用户
方案三:通过邀请设置提前规避无效用户
- 在发送外部用户邀请时,设置邀请过期时间,过期后未接受的用户会被自动禁用
- 修改动态组规则,添加
AccountEnabled eq true的筛选条件,自动排除已禁用的未接受邀请用户 - 若租户支持,可在Azure AD外部身份设置中开启未接受邀请用户自动清理功能,定期删除长期未接受的外部用户
内容的提问来源于stack exchange,提问作者Dev Reddy
相关产品推荐
相关产品推荐

