命名空间中的元素“BuildingBlocks”在命名空间中具有无效的子元素“Predicates”

kba*_*aig 2 azure-ad-b2c

在上传修改后的 trust_framework_extension 文件时,我创建了一个新的声明类型并添加了 Predicates 和 PredicateValidations 元素,但是当我上传文件时出现错误

“命名空间‘ http://schemas.microsoft.com/online/cpim/schemas/2013/06 ’中的元素‘BuildingBlocks’在命名空间中具有无效的子元素‘Predicates’……”

文档显示“buildingBlocks”应包含“Predicates”和“PredicateValidations”,但会引发错误。

“InputValidations”也不再出现在构建块中,因为我也遇到了错误。遵循在线文档:: https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-password-complexity-custom

错误:: 验证失败:在租户“abc.onmicrosoft.com”的策略“B2C_1A_B_TRUSTFRAMEWORKEXTENSIONS”中发现 1 个验证错误。在租户“abc.onmicrosoft.com”的策略“B2C_1A_B_TRUSTFRAMEWORKEXTENSIONS”的第 78 列第 6 行发现架构验证错误“:元素‘BuildingBlocks’命名空间“ http://schemas.microsoft.com/online/cpim/schemas/2013/06具有无效的子元素‘谓词’命名空间” http://schemas.microsoft.com/在线/cpim/schemas/2013/06 '。预期的可能元素列表:命名空间中的“ClientDefinitions、ContentDefinitions、Localization” http://schemas.microsoft.com/online/cpim/schema

     <BuildingBlocks>
<ClaimsSchema>
  <ClaimType Id="newPassword">
      <InputValidationReference Id="PasswordValidation" />
    </ClaimType>
    <ClaimType Id="reenterPassword">
      <InputValidationReference Id="PasswordValidation" />
  </ClaimType>
</ClaimsSchema>
<Predicates>
          <Predicate Id="Length" Method="IsLengthRange" HelpText="The password must be between 3 and 5 characters.">
              <Parameters>
                  <Parameter Id="Minimum">3</Parameter>
                  <Parameter Id="Maximum">5</Parameter>
              </Parameters>
            </Predicate>


            <Predicate Id="Number" Method="IncludesCharacters">
                <UserHelpText>a digit</UserHelpText>
                    <Parameters>
                      <Parameter Id="CharacterSet">0-9</Parameter>
                    </Parameters>
            </Predicate>
      </Predicates>
<PredicateValidations>
    <PredicateValidation Id="PasswordValidation">
        <PredicateReferences Id="LengthGroup" MatchAtLeast="1">
          <PredicateReference Id="Length" />
        </PredicateReferences>
        <PredicateReferences Id="3of4" MatchAtLeast="1" HelpText="only Numbers allowed">

          <PredicateReference Id="Number" />
        </PredicateReferences>
    </PredicateValidation>
</PredicateValidations>
Run Code Online (Sandbox Code Playgroud)

Eri*_*our 8

我在设置自定义策略时也遇到了这个问题。我认为这与这些孩子出现的顺序有关BuildingBlocks。我遵循了此处列出的顺序:https : //docs.microsoft.com/en-us/azure/active-directory-b2c/buildingblocks

上传后按以下顺序为我工作:

<BuildingBlocks>
    <ClaimsSchema>...</ClaimsSchema>
    <Predicates>...</Predicates>
    <InputValidations>...</InputValidations>
    <ContentDefinitions>...</ContentDefinitions>
</BuildingBlocks>
Run Code Online (Sandbox Code Playgroud)

  • 本地化也有同样的问题,顺序是 &lt;BuildingBlocks&gt; &lt;ClaimsSchema&gt;...&lt;/ClaimsSchema&gt; &lt;Predicates&gt;...&lt;/Predicates&gt; &lt;InputValidations&gt;...&lt;/InputValidations&gt; &lt;ContentDefinitions&gt;...&lt; /ContentDefinitions&gt; &lt;本地化&gt; ...&lt;/本地化&gt; &lt;/BuildingBlocks&gt; (3认同)
  • 我在关注 https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-localization 时也遇到了这个问题。感谢埃里克拯救了我的一天! (2认同)