Azure B2 C Как предотвратить более одной смены пароля в день - PullRequest
0 голосов
/ 11 февраля 2020

Я использую пользовательские политики B2 C и хотел бы, чтобы пользователь не менял свой пароль более одного раза в день. Можно ли получить дату последней смены пароля и выполнить эту проверку в пользовательской политике?

1 Ответ

0 голосов
/ 11 февраля 2020

Взгляните на эту политику, которая использует концепцию хранения dateTime на пользовательском объекте для выполнения некоторого условного управления:
https://github.com/azure-ad-b2c/samples/blob/master/policies/force-password-reset-after-90-days

и
https://github.com/azure-ad-b2c/samples/tree/master/policies/mfa-absolute-timeout-and-ip-change-trigger

Вы можете сохранить дату в атрибуте расширения объекта пользователя при успешной смене пароля. Затем, когда пользователь попытается сбросить пароль, проверьте эту временную метку и сравните с 24-часовыми значениями, используяфирм-преобразования. Сохраните логический результат в претензии. Это можно сделать с помощью шага оркестрации типа преобразование утверждений , которое вызывает преобразование dateComparison .

Вы можете выполнить этот расчет и установить значение претензии до технического подтверждения самоутверждения, которое показывает экран сброса пароля. Затем, после того как пользователь проверит свою электронную почту, вы можете использовать выходное преобразование утверждений, чтобы убедиться, что это логическое значение false , и в противном случае выдать ошибку, используя элемент метаданных, как показано ниже в самоутвержденном техническом профиле, где вы собираете электронная почта:

  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationBooleanValueIsNotEqual">Custom error message if account is disabled.</Item>
  </Metadata>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...