Подключите две настраиваемые политики

Я реализовал custom-mfa-totp образец. Я определил специальную политику, которая позволяет сбросить QR-код. Все нормально работает.

Теперь мне нужно, скажем, соединить две политики. Предположим следующий сценарий:

  • Пользователь регистрируется в моем B2C
  • Пользователь входит в систему, ему необходимо установить приложение аутентификации, чтобы получить код подтверждения.
  • Пользователь вошел в систему
  • Через месяц Пользователь должен переустановить приложение (по неизвестной причине). Если он переходит в логин, запрашивается код подтверждения:

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

Моя идея - добавить своего рода ссылку, чтобы открыть другую политику для сброса QR-кода. В документации я видел возможность добавить Action, но не мог понять, как это сделать. Намек?

Я уже добавил:

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

Но для правильного перенаправления мне нужны параметры с предыдущей страницы, такие как ´client_Id´ и redirect_url.


person Emaborsa    schedule 08.04.2021    source источник


Ответы (2)


Предполагая, что вы уже знаете, как настроить пользовательский интерфейс, вы можете добавить ContentDefinitionParameters в политику проверяющей стороны, чтобы передать параметры в шаблон HTML. Для получить client_id и redirect_uri:

<ContentDefinitionParameters>
    <Parameter Name="client_id">{OIDC:ClientId}</Parameter>
    <Parameter Name="redirect_uri">{OIDC:RedirectUri}</Parameter>
</ContentDefinitionParameters>

К этим значениям можно получить доступ через JavaScript, проанализировав строку запроса из SETTINGS.remoteResource. Объект SETTINGS вставляется в ваш HTML-шаблон, когда соответствующее определение содержимого загружается Identity Experience Framework. Обратите внимание, что объект SETTINGS является частью внутреннего API и может изменяться между версии макета страницы.

Теперь, когда у вас есть client_id и redirect_uri, вы можете сгенерировать ссылку на другую политику с помощью JavaScript, хотя включение исходного nonce в перенаправление политики, вероятно, также будет хорошей идеей.

person Daniel Krasnove    schedule 29.04.2021
comment
Я добавил параметры с помощью преобразователей утверждений. Я не нашел упомянутую вами переменную SETTINGS, но я получил параметры в URL-адресе в параметре diags. Спасибо! - person Emaborsa; 03.05.2021
comment
@Emaborsa Я использую макет страницы версии 2.1.2, и для меня объект SETTINGS доступен в глобальной области. Вы должны увидеть это, просто набрав SETTINGS в консоли браузера. - person Daniel Krasnove; 04.05.2021
comment
... Нашел, но нет ни redirectUrl, ни clientId. - person Emaborsa; 04.05.2021
comment
К объекту SETTINGS должно быть прикреплено свойство remoteResource. Причина, по которой я не обязательно полагаюсь на параметр запроса diags, заключается в том, что он кажется мне своего рода диагностическим артефактом, поэтому я бы не стал доверять ему, чтобы он оставался согласованным в разных средах. Просто догадываюсь, я не знаю, как именно это работает. - person Daniel Krasnove; 04.05.2021
comment
Теперь я понял, спасибо. - person Emaborsa; 04.05.2021

Вы можете добавить ссылку в пользовательском HTML на myapp.com/launchPolicyX. Затем приложение должно сделать новый запрос аутентификации, используя вашу любимую библиотеку OpenId.

person Jas Suri - MSFT    schedule 09.04.2021
comment
Не могли бы вы объяснить мне немного подробнее или дать какие-нибудь образцы, которые помогут мне пройти? - person Emaborsa; 09.04.2021
comment
Используйте собственный HTML-код для заклеймите свою страницу. Это позволяет вам добавлять свои собственные HTML-элементы (HTML / CSS / JS) для визуализации и объединения со страницей B2C. В этот HTML-код вставьте свою собственную ссылку на myapp.com/foo. Конечная точка / foo вашего приложения должна затем запустить новый поток аутентификации с новым policyId. - person Jas Suri - MSFT; 23.04.2021
comment
Хорошо, но не все так просто. Чтобы запустить поток, мне нужны clientId и redirectUrl, которые являются динамическими и могут различаться. - person Emaborsa; 23.04.2021
comment
Вот почему ваша ссылка ведет к приложению, а не напрямую к политике. - person Jas Suri - MSFT; 24.04.2021