Механизм сброса пароля#
При необходимости, администраторы IDMX могут подключить функциональность сброса пароля учетной карточки для доступа пользователей в UI IDMX. Для этого следует:
Добавьте в основую используемую Security Policy (которая указана как активная в файле системной конфигурации IDMX) следующий блок:
<securityPolicy> ... <authentication> <modules> <!-- стандартные модули (loginForm и т.д.) тут пропущены --> <mailNonce> <identifier>mailNonce</identifier> <credentialName>mailNonce</credentialName> </mailNonce> <focusIdentification> <identifier>userName</identifier> <item> <path>name</path> <matchingRule>polyStringNorm</matchingRule> </item> </focusIdentification> <hint> <identifier>passwordHint</identifier> </hint> </modules> <!-- стандартные sequences (admin-gui-default и т.д.) тут пропущены --> <sequence> <identifier>password-reset</identifier> <channel> <channelId>http://midpoint.evolveum.com/xml/ns/public/common/channels-3#resetPassword</channelId> <urlSuffix>resetPassword</urlSuffix> </channel> <module> <identifier>userName</identifier> <order>10</order> <necessity>requisite</necessity> </module> <module> <identifier>passwordHint</identifier> <order>20</order> <necessity>optional</necessity> <acceptEmpty>true</acceptEmpty> </module> <module> <identifier>mailNonce</identifier> <order>30</order> <necessity>required</necessity> </module> </sequence> <!-- ... --> </authentication> <credentials> <!-- значения для password credentials тут пропущены --> <nonce> <name>mailNonce</name> <maxAge>PT24H</maxAge> <lockoutMaxFailedAttempts>3</lockoutMaxFailedAttempts> <lockoutFailedAttemptsDuration>PT3M</lockoutFailedAttemptsDuration> <lockoutDuration>PT15M</lockoutDuration> </nonce> </credentials> <credentialsReset> <identifier>global-credentials-reset</identifier> <authenticationSequenceName>password-reset</authenticationSequenceName> </credentialsReset> ... </securityPolicy>Добавьте в System Configuration (или файл системной конфигурации) следующие блоки:
<systemConfiguration> <!-- ... --> <notificationConfiguration> <handler> <passwordResetNotifier> <recipientExpression> <script> <code>requestee.emailAddress</code> </script> </recipientExpression> <bodyExpression> <script> <code> import com.evolveum.midpoint.notifications.api.events.ModelEvent import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType def user = (event as ModelEvent).focusContext.objectNew?.asObjectable() as UserType def link = midpoint.createPasswordResetLink(user) "Did you request password reset? If yes, click on the link below:\n\n$link\n" </code> </script> </bodyExpression> <transport>mail</transport> </passwordResetNotifier> </handler> <mail> <logToFile>/app/idmx-engine/var/log/mail.log</logToFile> <server> <host>MAIL_SERVER_HOSTNAME</host> <port>25</port> <username>DOMAIN\USER_NAME</username> <password> <t:clearValue>PASSWORD</t:clearValue> </password> </server> </mail> </notificationConfiguration> <infrastructure> <publicHttpUrlPattern>http://$host/midpoint</publicHttpUrlPattern> <!-- Изменить URL на котором доступен URL UI вашего --> </infrastructure> <!-- ... --> </systemConfiguration>Убедитесь, что у всех пользователей указан почтовый ящик в учетной карточке.
После выполнения инструкции в окне аутентификации UI IDMX появится пункт Сброс пароля. Чтобы сбросить пароль:
Нажмите на кнопку Сброс пароля.
Введите логин пользователя в открывшейся форме.
На почтовый ящик, указанный в учетной карточке пользователя, будет отправлена одноразовая ссылка для сброса пароля.
Перейдите по одноразовой ссылке и введите новый пароль с подтверждением.