我正在制定一个支持自定义TOTP的IEF策略。我使用以下示例代码作为我工作的基础:https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-mfa-totp
我已经创建了支持TOTP请求的服务,IEF将根据策略定义发布该请求。
我的问题是我在上传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.
到目前为止,我基本上只是修改示例策略文件,以包含在我的系统中工作的特定信息。示例策略文件分为两部分:TrustFrameworkExtension.xml和SignUpOrSignIn.xml
加载扩展名文件是可行的,但我在尝试加载SignUpOrSignIn文件时遇到了前面提到的错误。
我发现其他几篇StackOverflow帖子提到了类似的错误,推荐的解决方案并不能解决问题。推荐的解决方案建议使用此处所述的相应值更新元素:内容定义,并确保依赖方允许此处所述执行JS允许执行
在那之后,这就是我的政策的ContentDefinition:
<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>
即使有了这些更新,策略仍然无法加载,我也没有东西可以尝试甚至解决问题。
关于这个错误的原因有什么想法吗?
特别感谢Dale Kirby,我现在有了这个问题的解决方案。
该错误不是由示例的TrustFrameworkExtensions.xml中提供的此TechnicalProfile中的配置引起的。
<TechnicalProfile Id=";AppFactor VerifyTotpWebHook"->
我收到错误的实际原因是,从我的TrustFrameworkBase.xml文件中引用的几个-TechnicalProfile-元素的DataURI中有旧的URI(这些技术配置文件由示例中提供的TrustFrameworks Extension.xml引用(。
一旦我更新了TrustFrameworkBase.xml和TrustFrameworkExtension.xml中所有过时的-DataURI值,错误就消失了。此处列出了正确的URI:页面布局URI