Пользовательские политики B2C: добавьте кнопку отмены на страницу входа.

Я хочу, чтобы на моей странице входа в систему была кнопка «Отмена». Эта функция по умолчанию недоступна, есть запрос функции для этого.

Этот вопрос предполагает, что он может быть достигнуто с помощью настраиваемой страницы. Мой вопрос: как? Я попытался изменить наш собственный HTML-код, но не смог заставить пользовательский интерфейс отобразить его. Я хочу, чтобы он вел себя как «отмена», доступная во время регистрации и сброса пароля.

До сих пор у нас был только заполнитель по умолчанию:

<custom HTML>
...
                <div id="api" data-name="Unified">
                </div>
...
<custom HTML>

Посмотрев этот пример, Я пробовал примерно так:


<custom HTML>
...
        <div id="api" data-name="Unified">
          <div class="buttons">
              <button id="continue">
                  Continue
              </button>
              <button id="cancel">
                  Cancel
              </button>
          </div>
        </div>
...
<custom HTML>

Кнопки не отображаются. Если я перемещаю их из заполнителя, они отображаются, но ничего не делают. Мы используем индивидуальные политики.

В качестве примера я начал с нуля, используя начальный пакет настраиваемых политик (локальные аккаунты).

введите здесь описание изображения

В этом примере мне удалось получить кнопку отмены, изменив тип шага оркестрации. Это лишает возможности зарегистрироваться и больше не работает, если мне нужен выбор поставщика удостоверений.

<OrchestrationStep Order="1" Type="ClaimsExchange" ContentDefinitionReferenceId="api.signuporsignin">

Ошибка проверки: в политике «B2C_1A_XXX» клиента «xxx.onmicrosoft.com» обнаружена 1 ошибка проверки. Путь пользователя «SignUpOrSignIn» в политике «B2C_1A_xxx» клиента «xxx.onmicrosoft.com» содержит шаг 2 с 2 утверждениями обмены. Ему должен предшествовать выбор поставщика утверждений, чтобы определить, какой обмен утверждениями можно использовать.


person Alex AIT    schedule 25.02.2020    source источник


Ответы (3)


Пока мне не нужна «регистрация» или ClaimsProviderSelection, мне кажется, что я могу просто переключить тип шага оркестрации. Мне не удалось получить действующую политику, если мне нужен ClaimsProviderSelection.

Это не решает полностью мою проблему, поскольку мне нужна как минимум возможность иметь социальный вход в дополнение к локальной учетной записи. Сброс пароля тоже пропал ...

        <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
          <ClaimsProviderSelections>
            <ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
          </ClaimsProviderSelections>
          <ClaimsExchanges>
            <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
          </ClaimsExchanges>
        </OrchestrationStep>

Измените первую строку на:

        <OrchestrationStep Order="1" Type="ClaimsExchange" ContentDefinitionReferenceId="api.signuporsignin">

введите здесь описание изображения

person Alex AIT    schedule 26.02.2020

Добавление HTML внутри элемента API не поможет - содержимое div API не принадлежит вам, предположим, что IEF / B2C контролирует это, хотя вы можете использовать CSS и некоторый JavaScript для изменения предсказуемых элементов, которые будут отображаться.

В настраиваемой политике найдите самоутверждаемый технический профиль, который вы используете для отображения страницы регистрации. Найдите блок метаданных для TP и проверьте, есть ли в нем следующая запись:

<Item Key="setting.showCancelButton">false</Item>

Если это значение присутствует, это объясняет отсутствие кнопки «Отмена». По умолчанию для этого параметра установлено значение "true" (документация), поэтому, если он не указан, может быть задействовано что-то еще - было бы полезно, если бы вы скопировали содержимое раздела своего самоутвержденного технического профиля, чтобы обеспечить первоначальное устранение неполадок ...

person John Garland    schedule 26.02.2020
comment
В качестве примера можно взять стартовый пакет настраиваемых политик. Я хочу кнопку отмены на самой первой странице. Я добавлю еще немного информации к вопросу. Нет настройки, отключающей кнопку отмены. - person Alex AIT; 27.02.2020

Проверьте определение содержания "api.signuporsignin ", оно может использовать DataUri любое из следующего:

urn:com:microsoft:aad:b2c:elements:contract:unifiedssd:1.2.0

urn:com:microsoft:aad:b2c:elements:unifiedssp:1.0.0

Если вам нужна кнопка отмены по умолчанию, вам нужно использовать самоутверждение DataUri, например urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0. Затем по умолчанию появится кнопка Отмена. Если вы используете пользовательский интерфейс, вам нужно нажать кнопку Отмена с помощью JavaScript в from и решить, что должно произойти при нажатии кнопки.

person Alex    schedule 06.05.2020
comment
Спасибо за этот совет. Однако, если я это сделаю, сброс пароля и регистрация исчезнут, как на моем скриншоте ниже. - person Alex AIT; 06.05.2020
comment
Да, bcoz, что DataURI (unifiedssp) обрабатывает эти ссылки и элементы пользовательского интерфейса. Если они вам нужны, добавьте кнопку Отмена с помощью javascript. - person Alex; 07.05.2020
comment
Да, у меня проблемы с этим. Не столько с появлением кнопки, сколько с тем, что она должна делать на самом деле. Я действительно не знаю, куда мне идти. Есть несколько приложений и собственных приложений, использующих политику B2C. Могу ли я использовать JavaScript для фактического запуска B2C. Пользователь отменил событие самоутверждения или что-то подобное? - person Alex AIT; 07.05.2020