如何在Razor页面Web应用的Entra ID B2C中支持第三方邮箱注册?
解决第三方邮箱注册Entra ID用户流的问题
一、调整Entra ID用户流配置
- 打开Entra ID管理门户,找到用户流模块,编辑已创建的注册/登录用户流
- 进入身份提供商设置:
- 保留Azure AD和Microsoft Account的同时,添加**电子邮件一次性密码(OTP)**身份提供商(第三方邮箱用户将通过邮箱接收验证码完成注册)
- 若需支持特定第三方社交身份提供商(如Google、Facebook)可在此添加,但针对web.de这类普通邮箱,OTP方式最直接适配
- 进入注册限制设置:
- 将“谁可以注册”选项改为允许所有外部用户注册,或指定允许的域(例如添加
web.de到允许列表) - 取消“仅允许来自特定Azure AD组织的用户”的限制
- 将“谁可以注册”选项改为允许所有外部用户注册,或指定允许的域(例如添加
- 进入用户属性设置:
- 确保注册时收集的属性包含电子邮件,且允许用户输入非微软域的邮箱地址
二、修正Web应用配置
- 检查
appsettings.json中的AzureAd配置,确保参数正确:
注意:"AzureAd": { "Instance": "https://login.microsoftonline.com/", "TenantId": "你的租户ID", "ClientId": "你的应用Client ID", "ClientSecret": "你的应用Client Secret", "CallbackPath": "/signin-oidc", "SignedOutCallbackPath": "/signout-callback-oidc", "Domain": "你的租户域名" }TenantId需使用你自己的租户ID,不能设为organizations,否则会限制仅组织内用户注册 - 当前代码的身份验证配置无需大幅修改,只要确保用户流已正确关联到该Web应用即可
三、测试验证
- 保存用户流配置后,点击用户流页面的测试按钮,使用
XY@web.de这类第三方邮箱进行注册测试 - 验证是否能正常接收OTP验证码,完成注册后检查Entra ID的外部用户列表,确认该用户已被添加
- 启动Web应用,测试第三方邮箱用户的登录流程,确认无报错
内容的提问来源于stack exchange,提问作者MrFabou
相关产品推荐
相关产品推荐

