2

我正在研究支持自定义 TOTP 的 IEF 策略。我使用以下示例代码作为我工作的基础:https ://github.com/azure-ad-b2c/samples/tree/master/policies/custom-mfa-totp

我创建了支持 IEF 将根据策略定义发出的 TOTP 请求的服务。

我的问题是上传 IEF 策略时出现以下错误

Validation failed: 1 validation error(s) found in policy "myPolicyName" of tenant "myb2cTenant.onmicrosoft.com".
Please use page contract in content definitions when enabling JavaScript.Please use page contract in content definitions when enabling JavaScript.

至此,我基本上只是修改示例策略文件以包含在我的系统中工作的特定信息。示例策略文件分为两个:TrustFrameworkExtensions.xml 和 SignUpOrSignIn.xml

加载扩展文件有效,但在尝试加载 SignUpOrSignIn 文件时出现前面提到的错误。

我发现了一些其他 StackOverflow 帖子提到了类似的错误,而推荐的解决方案并不能解决问题。推荐的解决方案建议使用此处所述的相应值更新元素:内容定义并确保依赖方允许 JS 执行,如此处所述允许 JS 执行

之后,这就是我的 Policy 的 ContentDefintion 的样子:

      <ContentDefinition Id="api.selfasserted.appfactor.registration">
        <LoadUri>https://myurl/totp-ui/selfasserted-appfactor-registration.html</LoadUri>
        <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
        <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
        <Metadata>
          <Item Key="DisplayName">App Factor</Item>
        </Metadata>
      </ContentDefinition>

即使有了这些更新,策略仍然无法加载,我无法尝试甚至排除故障。

关于可能导致该错误的原因的任何想法?

4

1 回答 1

2

特别感谢 Dale Kirby,我现在有了解决这个问题的办法。

该错误不是由示例的 TrustFrameworkExtensions.xml 中提供的 TechnicalProfile 中的配置引起的。

<TechnicalProfile Id="AppFactor-VerifyTotpWebHook" ->

我收到错误的实际原因是从我的 TrustFrameworkBase.xml 文件引用的几个 -TechnicalProfile- 元素在其 DataURI 中有旧的 URI(这些 Technical-Profiles 由示例中提供的 TrustFrameworkExtensions.xml 引用)。

一旦我更新了 TrustFrameworkBase.xml 和 TrustFrameworkExtensions.xml 中所有过时的 -DataURI- 值,错误就消失了。此处列出了正确的 URI:页面布局 URI

于 2020-08-07T15:05:51.497 回答