关于 entra-external-id
Microsoft Entra External ID 配置技能,面向需要管理客户身份或合作伙伴访问的团队。它区分客户身份场景与员工租户中的 B2B 协作,并介绍身份验证、条件访问和迁移规划。
主要功能
- 01规划客户身份租户与工作租户
- 02配置注册、登录及身份提供方
- 03设置自定义身份验证扩展
- 04管理合作伙伴跨租户访问
- 05规划 Azure AD B2C 迁移
适用场景
- 01为面向客户的应用配置注册和登录
- 02将 Azure AD B2C 用户迁移到 External ID
- 03为合作伙伴设置跨租户访问和 MFA 信任
- 04为外部用户制定条件访问策略
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vinayaklatthe/ microsoft-security-skills --skill entra-external-id安装后在 Claude Code 中输入/entra-external-id确认已加载。
详细介绍
Microsoft Entra External ID
Entra External ID 是 Microsoft 面向员工队伍之外的身份的统一平台:
- 在专用的外部租户中管理客户身份(CIAM)——是 Azure AD B2C 面向新部署的后继方案。
- 在你的员工租户中管理业务合作伙伴协作(B2B)——包括来宾、B2B 直接连接和跨租户访问设置。
两者都在同一管理界面中管理,并使用同一 Conditional Access 引擎。
适用场景
- 通过社交账号或电子邮件注册,让客户/消费者登录你的应用。
- 替换 Azure AD B2C(Microsoft 为新的 CIAM 部署指定的路径)。
- 将外部合作伙伴邀请为 B2B 来宾,并通过 Conditional Access 管理他们。
- 为联合身份验证的合作伙伴组织配置跨租户访问。
此技能不适用于员工身份(entra-id)、员工生命周期治理(entra-id-governance)或员工 CA 策略编写(conditional-access-mfa)。
外部租户与员工租户——先做选择
| 场景 | 租户类型 |
|---|---|
| 面向公众的消费者应用、社交账号/电子邮件注册、自定义品牌登录 | 外部租户(CIAM) |
| 合作伙伴公司的员工在 Teams/SharePoint/Apps 中协作 | 员工租户(B2B 来宾、跨租户访问) |
| 两者都需要 | 分别使用外部租户和现有员工租户 |
**经验法则:**切勿在同一个员工租户中混用客户和员工——许可、品牌、生命周期和 CA 范围很快就会出现差异。
实施方法
外部租户(CIAM)
-
创建外部租户(与员工租户分开)。选择区域;数据驻留位置固定于租户。
-
在外部租户中注册客户应用。SDK:适用于 Web/SPA/移动端的 MSAL,以及原生集成。
-
**编写用户流。**内置流涵盖常见场景:注册/登录、密码重置、编辑个人资料。配置:
- 身份提供商(电子邮件 + 密码、电子邮件 OTP、Google、Facebook、Apple、通用 OIDC、SAML)。
- Passkey 支持(根据区域处于预览版/GA 阶段)——从第一天起即可免密码登录。
- 你要收集的自定义属性。
- 品牌设置(徽标、颜色、用于登录页面的自定义 CSS/HTML)。
-
自定义身份验证扩展取代旧版 B2C 自定义策略 XML 模型。分为两类:
- 令牌签发启动——在登录时调用外部 API 以补充声明 (例如,从 CRM 查询会员等级)。
- 属性收集/提交——在注册期间调用 API,以验证或补充新用户的信息 (例如,进行第三方身份验证)。
-
**针对外部用户的 Conditional Access。**在外部租户中应用 CA 策略 ——基于风险的 MFA、设备平台限制、封锁国家/地区。外部租户包含 CA。
-
从 Azure AD B2C 迁移——无法原地升级。请做好以下规划:
- 在 External ID 中重新创建应用注册和用户流。
- 通过 Microsoft Graph 批量迁移用户(无法导出密码;用户需在首次登录时重置密码,或者通过即时 JIT 迁移分阶段进行迁移)。
- 迁移期间并行运行 B2C 和 External ID;按应用逐步切换。
劳动力租户(B2B 协作)
-
跨租户访问设置 — 针对每个合作伙伴租户进行决策:
- B2B 协作:将其用户作为来宾邀请到你的租户。
- B2B 直接连接:其用户通过 Teams 共享频道访问,无需成为你租户中的来宾(目前:Teams + 选定资源)。
- 入站 MFA 信任:信任合作伙伴的 MFA 声明,不再重新提示。
- 出站限制:限制你的用户在其租户中可执行的操作。
-
默认策略较为宽松。 收紧默认跨租户访问设置,将其设为阻止,然后将受信任的合作伙伴租户加入允许列表。
-
来宾生命周期。 设置:
- 检测不活跃来宾并自动清理(Entra ID Governance 访问评审)。
- 来宾邀请限制 — 规定组织内哪些人可以邀请(默认:任何人;请设为特定角色)。
- 邀请的电子邮件域名允许列表 / 拒绝列表。
-
劳动力租户支持自助注册 + 用户流,用于 B2B 自助协作 — 适用于合作伙伴自助入驻门户。
-
明确对来宾应用 CA。 默认情况下,CA 的“所有用户”包括来宾,但大多数组织需要单独且通常更严格的策略(始终要求 MFA;不检查设备合规性,因为来宾设备不受管理)。
防护措施
- 不要将客户和员工放在同一个租户中。 品牌、许可、CA 范围和生命周期管理都会相互冲突。
- External ID 是未来方向;Azure AD B2C 对新租户处于维护阶段。 对于新的 CIAM 构建,默认选择 External ID。
- 自定义身份验证扩展是 HTTP Webhook。 它们运行在你的身份验证路径中,必须具备高可用性、低延迟和幂等性。
- 跨租户访问的默认设置较为宽松。 开箱即用时,任何租户的任何人都可以被邀请,并且可能访问共享内容。第一天就收紧设置。
- B2B 直接连接会绕过来宾对象 — 治理模式不同。不要对其应用来宾访问评审,并期望借此发现直接连接用户。
- 来宾密码不在你的租户中。 强制执行 MFA 需要明确的 CA 策略,或信任合作伙伴的入站 MFA。
- 电子邮件 OTP 不是 MFA。 对没有 MSA / 社交账号的用户来说,它只是方便注册的方式。还需叠加真正的 MFA。
- External ID 中的通行密钥是客户身份验证的最强方式。 将通行密钥作为首选路径,而非密码 + OTP。
常见反模式
- “将客户作为来宾放在劳动力租户中” — 许可混乱、品牌冲突,且无法大规模治理。
- “尝试导入 XML 来迁移 B2C 自定义策略” — External ID 不使用这些策略。请使用扩展重新编写。
- “跨租户访问保持默认设置” — 任何合作伙伴都能邀请,任何用户都可能被邀请,且没有 MFA 协调。请明确配置。
- “来宾不活跃期限 = 365 天” — 审计人员会提出问题,安全漏洞的影响范围也会扩大。设为 90 或 180 天。
- “自定义身份验证扩展的 Webhook 托管在单区域 App Service 上” — 会导致登录中断。请使用多区域部署 + 健康探测。
- “对来宾应用与员工相同的 CA 策略” — 来宾的设备合规性检查会失败,导致其被阻止。请编写单独的来宾策略。
- “在劳动力 Entra ID 上使用自助注册构建客户身份验证” — 适用于小规模合作伙伴场景,但无法扩展到 CIAM 级别的用量或品牌需求。
示例提示词
为面向消费者的移动应用搭建 Entra External ID 租户,支持电子邮件 + 通行密钥 和 Google 登录。将 200,000 名用户和 3 个应用从 Azure AD B2C 迁移到 Entra External ID,同时尽量减少 对客户的影响。编写自定义身份验证扩展,在登录期间将 CRM 忠诚度等级添加到令牌中。锁定跨租户访问默认设置,并将 12 个合作伙伴租户列入允许列表,同时信任其传入的 MFA。推出 Conditional Access,要求来宾每次登录都进行 MFA,并阻止 旧式身份验证。为 Teams 共享频道与两家战略合作伙伴设置 B2B 直接连接。每季度审核 8,000 名合作伙伴用户的来宾访问权限——工作流和 Graph 自动化。
Microsoft Learn
- External ID 概述:https://learn.microsoft.com/entra/external-id/external-identities-overview
- 外部租户(CIAM):https://learn.microsoft.com/entra/external-id/customers/overview-customers-ciam
- B2B 协作概述:https://learn.microsoft.com/entra/external-id/what-is-b2b
- 跨租户访问设置:https://learn.microsoft.com/entra/external-id/cross-tenant-access-overview
- B2B 直接连接:https://learn.microsoft.com/entra/external-id/b2b-direct-connect-overview
- 自定义身份验证扩展:https://learn.microsoft.com/entra/identity-platform/custom-extension-overview
- 用户流:https://learn.microsoft.com/entra/external-id/customers/how-to-user-flow-sign-up-sign-in-customers
- External ID 中的通行密钥:https://learn.microsoft.com/entra/external-id/customers/concept-authentication-methods-customers
- 从 Azure AD B2C 迁移到 External ID:https://learn.microsoft.com/entra/external-id/customers/concept-planning-your-solution
- 外部租户中的 Conditional Access:https://learn.microsoft.com/entra/external-id/customers/how-to-multifactor-authentication-customers