Взгляните на эту политику, которая использует концепцию хранения 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>