基于 Azure B2C 组的访问控制不显示 userMessage

Azure B2C Group-based access control does not show userMessage

我一直致力于为 B2C 租户实施基于组的访问控制。 我已经设置了一个 API 挂钩 (POST),它接受用户的 ObjectId,通过 Graph API 和 returns:[=12 验证用户是否在允许的组中=]

下面是返回 409 的对象:

{
"version": "1.0.0",
"status": 409,
"userMessage": "User is not authorized for this application"
}

出于某种原因,此消息未显示给用户,而是重定向到 {{B2cUrl}}/#error=server_error&error_description=AADB2C%3a+User+is+not+authorized+for+this+application%0d%0aCorrelation+ID%3a+...8 %0d%0aTimestamp%3a+...%3a03%3a39Z%0d%0a&state=...

在我的用户旅程中,我加入了以下乐团

<OrchestrationStep Order="3" Type="ClaimsExchange">
   <ClaimsExchanges>
      <ClaimsExchange Id="RESTValidateProfile" TechnicalProfileReferenceId="REST-ValidateProfile" />
   </ClaimsExchanges>
</OrchestrationStep>

如何获取用户登录页面中显示的用户错误消息?

您需要从验证技术配置文件调用其余 api 技术配置文件。验证技术配置文件应该根据自我声明的技术配置文件(登录页面)进行配置,这样它就可以 return 一个错误。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-rest-api-claims-validation#validate-the-user-input

在当前形式中,REST API 在提交页面并开始重定向后调用。因此,任何错误都会发送回应用程序,因为那时没有页面呈现。