基于用户维度限制AzureAD(Entra)的OIDC登录权限
提问翻译
我们公司有一个外部应用计划通过OIDC集成AzureAD(Entra)实现单点登录(SSO),允许用户使用企业微软账号登录该外部Web应用。现咨询:是否可配置基于用户的OIDC登录策略,仅允许部分AD用户登录该应用?例如仅允许特定AD组(如EXT_APP_GROUP)内的用户授权该外部应用。
示例场景:
- foo@somecompany.com和bar@somecompany.com均为EXT_APP_GROUP成员;
- 外部应用通过OpenID Connect授权码流调用OIDC连接URL进行用户授权;
- john.doe@somecompany.com尝试登录时,因不属于EXT_APP_GROUP,AzureAD的OIDC授权请求失败;
- foo@somecompany.com和bar@somecompany.com可正常通过OIDC登录该应用。
请问该需求是否可实现?
回答
可以实现,Azure AD(Entra)支持两种直接的方式来限制仅特定组内的用户登录外部OIDC应用,完全匹配你的场景需求:
方案一:应用分配限制(最简方案)
通过直接将应用仅分配给目标组,未分配用户会被直接拒绝访问:
- 登录Azure门户,进入Entra ID -> 企业应用程序,找到你的外部OIDC应用。
- 切换到用户和组选项卡,点击添加用户/组,选择目标组
EXT_APP_GROUP并完成分配。 - 进入应用的属性选项卡,将需要用户分配?设置为是。
配置完成后,非目标组的用户在尝试授权时,Azure AD会直接返回访问被拒绝的错误,符合你的场景要求。
方案二:条件访问策略(灵活扩展方案)
如果需要结合位置、设备状态等额外规则,可使用条件访问策略实现更精细的控制:
- 进入Entra ID -> 条件访问,点击新建策略。
- 命名策略(如“仅允许EXT_APP_GROUP访问外部应用”)。
- 在用户或工作负载标识中,选择选择用户和组,添加目标组
EXT_APP_GROUP;若需要排除外部用户,可在排除列表中勾选对应选项。 - 在云应用或操作中,选中你的外部OIDC应用。
- 在授予环节,选择阻止访问并确认。
- 按需添加其他条件(如设备合规性),最后启用策略并保存。
这种方式下,不在目标组的用户会被策略拦截,无法完成OIDC授权流程。
效果验证
配置完成后,用非目标组成员(如john.doe@somecompany.com)尝试登录,会收到Azure AD的访问拒绝提示;目标组成员则可正常完成授权登录。
内容的提问来源于stack exchange,提问作者JHH
相关产品推荐
相关产品推荐

