Azure B2C中REST验证错误未在UI显示问题排查
问题排查方向
1. 确认服务返回格式是否匹配Azure B2C要求
Azure B2C对自定义REST API的错误响应有严格格式要求,不符合则无法识别并展示userMessage。正确的Bad Request响应结构需包含以下字段:
{ "version": "1.0.0", "status": 400, "userMessage": "需要显示的错误提示文本" }
- 必须存在
version字段且值为1.0.0 status必须是400(对应Bad Request状态码)userMessage字段名不能拼写错误,值需为字符串类型- 响应头
Content-Type必须设置为application/json
2. 检查Azure B2C中REST API技术配置
核对你提供的配置代码,重点确认:
Metadata中的ServiceUrl是否正确指向测试服务地址SendClaimsIn是否设置为符合服务接收方式的参数(如Body)- 技术配置是否被正确添加到用户旅程的验证节点,且配置为失败时终止后续流程
示例关键配置片段:
<TechnicalProfile Id="REST-CustomValidation"> <DisplayName>自定义验证服务</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://your-test-service.com/validate</Item> <Item Key="SendClaimsIn">Body</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> </InputClaims> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile>
3. 分析Application Insights日志
从日志中重点排查:
- Azure B2C调用服务时的完整请求/响应数据,确认B2C是否正确接收到包含
userMessage的响应 - 是否存在"Invalid response from REST API"类的错误日志,提示响应格式不合法
- 确认服务返回的HTTP状态码确实是400,而非其他错误码
4. 核对用户旅程的验证步骤顺序
如果用户旅程包含多个验证步骤,需确保该REST API验证步骤优先执行,且配置为失败即终止后续流程。若其他验证步骤先执行,可能会覆盖当前错误提示,导致流程继续。
内容的提问来源于stack exchange,提问作者Abe
相关产品推荐
相关产品推荐

