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

Azure AD B2C自定义策略能否直接发邮件?邮件MFA遇500错误

Azure AD B2C自定义策略邮件验证MFA的500错误排查

关于B2C自定义策略的邮件服务支持

Azure AD B2C自定义策略没有内置邮件发送服务,必须配置外部邮件服务(比如SendGrid、Azure通信服务ACS,或者自定义SMTP服务)才能发送验证邮件、重置密码邮件等。如果未配置任何邮件服务提供者,触发邮件发送请求时必然会出现内部错误。

500内部服务器错误的可能原因

  • 未配置邮件发送提供者:这是最常见的原因。B2C需要依赖外部服务发送邮件,没有配置的话,点击“发送验证”时B2C无法调用邮件服务,直接返回500。
  • 邮件验证步骤配置错误:你移除电话MFA步骤后,可能存在声明(claim)引用或技术配置(TechnicalProfile)关联问题。比如readOnlyEmail这个声明是否被正确传递到邮件验证的TechnicalProfile中,或者验证步骤的输入输出声明配置不匹配,导致流程中断。
  • 外部邮件服务配置失效:如果已经配置了SendGrid/ACS,可能存在API密钥过期、服务配额耗尽、发件人地址未通过验证等问题,导致B2C调用邮件服务失败,进而触发内部错误。
  • SelfAsserted页面逻辑遗漏:移除电话步骤后,页面的验证规则、声明转换(ClaimTransformation)可能有缺失,比如原本依赖的参数未处理,导致页面提交时后台逻辑出错。
  • 日志细节未排查到位:虽然你查了日志,但可能需要开启Verbose级别的日志,或者在B2C操作日志中筛选“失败事件”,部分错误细节会记录在事件的“错误详情”字段里,App Insights可能需要针对性的查询语句才能定位到相关错误。

排查建议

  1. 先确认策略中是否已添加邮件服务提供者的ClaimsProvider配置,比如SendGrid的TechnicalProfile,并且关联到邮件验证的步骤中。
  2. 检查邮件验证TechnicalProfile的输入声明配置,确保正确引用readOnlyEmail作为收件人,示例配置如下:
<TechnicalProfile Id="EmailVerification">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="readOnlyEmail" PartnerClaimType="to" />
  </InputClaims>
  <!-- 其他配置 -->
</TechnicalProfile>
  1. 单独测试外部邮件服务的可用性,比如用SendGrid的API发送测试邮件,确认服务正常。
  2. 在Azure门户的B2C资源中,进入「监控」→「日志」,执行查询筛选失败的SelfAsserted操作,查看具体错误代码和详情。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:05:10