You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD连接Azure B2C时避免创建影子账户

避免Azure B2C中Azure AD登录生成影子账户的方案

当使用Azure AD作为Azure B2C的身份提供商时,默认会为每个联合登录的用户创建本地影子账户。以下是几种可行的解决方法:

1. 配置联合登录为“仅身份提供商验证”模式

通过调整用户流或自定义策略,让B2C仅依赖Azure AD的身份断言,不在本地目录中创建账户:

  • 用户流配置:在Azure门户的B2C用户流中,选择对应的联合登录用户流,进入「用户属性」页面,取消勾选所有需要存储的用户属性;接着在「身份提供商」设置中,启用“仅使用身份提供商身份验证”选项(部分版本表述为“不创建本地账户”)。
  • 自定义策略配置:修改策略中的<TechnicalProfile>节点,移除<PersistedClaims>部分(或设置PersistClaims="false"),确保不会将Azure AD返回的属性持久化到B2C本地目录;同时在<RelyingParty>的<OutputClaims>中仅保留应用所需的断言属性,不包含本地账户标识。

2. 通过Azure AD Connect同步内部用户到B2C

将内部Azure AD的用户同步到B2C目录,让联合登录时匹配已有账户而非创建影子账户:

  • 配置Azure AD Connect,设置同步规则将内部Azure AD的用户(需确保唯一标识如userPrincipalName或mail一致)同步到B2C目录。
  • 同步完成后,用户通过Azure AD登录时,B2C会自动匹配已同步的账户,避免生成新的影子账户。注意需确保同步的属性符合B2C的要求,且同步范围精准。

3. 自定义策略中实现账户匹配逻辑

通过自定义策略添加账户检查步骤,在登录时验证Azure AD用户是否已存在于B2C目录:

  • 在自定义策略的编排步骤(Orchestration Steps)中,新增一个调用Microsoft Graph API的步骤,根据Azure AD返回的用户标识(如email或userPrincipalName)查询B2C目录中的用户。
  • 如果查询到已有用户,则直接使用该用户的objectId继续流程;如果未查询到,再执行账户创建逻辑(或根据业务需求跳过创建)。此方法需要配置Graph API的应用权限,并编写对应的TechnicalProfile实现查询逻辑。

内容的提问来源于stack exchange,提问作者robert trudel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:30:38