Пользовательская политика B2 C с настраиваемым TOTP не проходит проверку с ошибкой: «Используйте контракт страницы в определениях контента при включении JavaScript» - PullRequest
0 голосов
/ 05 августа 2020

Я работаю над политикой IEF, которая поддерживает настраиваемый TOTP. Я использую следующий пример кода в качестве основы для своей работы: 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.

На данный момент я в основном просто изменяю образцы файлов политик, чтобы включить в них указанную c информацию для работы моя система. Примеры файлов политик разделены на две части: TrustFrameworkExtensions. xml и SignUpOrSignIn. xml

Загрузка файла расширения работает, но при попытке загрузить файл SignUpOrSignIn я получаю указанную ранее ошибку.

Я нашел пару других сообщений stackoverflow, относящихся к аналогичным ошибкам, и рекомендуемое решение не решает проблему. Рекомендуемое решение предлагает обновить элемент соответствующим значением, как описано здесь: Определения содержимого и убедиться, что Проверяющая сторона разрешает выполнение JS, как описано здесь Разрешить JS выполнение

После этого так выглядит 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>

Даже с этими обновлениями Политика по-прежнему не загружается, и мне больше нечего попробовать или даже устранить неполадки .

Есть идеи, в чем может быть причина этой ошибки?

1 Ответ

0 голосов
/ 07 августа 2020

Особая благодарность Дейлу Кирби, теперь у меня есть решение этой проблемы.

Ошибка не была вызвана конфигурацией в этом Техническом профиле, который предоставляется в TrustFrameworkExtensions образца. xml.

Фактическая причина того, что я получил сообщение об ошибке, заключалась в том, что некоторые из элементов -TechnicalProfile-, на которые есть ссылка в моем файле TrustFrameworkBase. xml, имели старый URI в их DataURI (эти технические профили упоминаются с помощью TrustFrameworkExtensions. xml, представленного в образце).

Как только я обновил все устаревшие значения -DataURI- в TrustFrameworkBase. xml и TrustFrameworkExtensions. xml ошибка исчезла. Правильные URI перечислены здесь: URI макета страницы

...