Вход с помощью одноразовых кодов#

Для входа по первому фактору аутентификации можно использовать отправляемые в мобильное приложение push-уведомления или SMS-сообщения.

Если при входе по номеру телефона пользователь не найден, то можно для этого пользователя инициировать регистрацию учетной записи.

Настройка метода входа#

Для использования кодов подтверждения необходимо:

  • настроить и включить включить метод аутентификации Вход по коду из SMS/push. Необходимо настроить:

    • способ идентификации учетной записи – задать регулярное выражение. Например, правило phone_number=${login} означает, что введенное пользователем значение в форме входа будет сопоставлено с атрибутом phone_number;

    • длину кода подтверждения;

    • время действия кода подтверждения;

    • количество попыток ввода кода подтверждения за 1 вход;

    • общее количество попыток (число отправок кодов и попыток ввода кода, после чего для пользователя будет временно заблокирован данный способ аутентификации);

    • время блокировки при превышении попыток (в минутах);

    • способы отправки кода:

      • отправлять push-уведомление – нужно указать атрибут с номером мобильного телефона или иным необходимым сервису идентификатором пользователя, например, ${phone_number};

      • отправлять SMS – указать атрибут с номером мобильного телефона пользователя, например, ${phone_number};

    ../_images/code.png
    • правило выбора хранилища атрибутов для поиска введенного пользователем телефона.

    ../_images/login_select_storage.png
  • настроить подключение Blitz Identity Provider к SMS-шлюзу и сервису отправки push-уведомления.

Настройка регистрации#

Для того, чтобы регистрация инициировалась, необходимо ее настроить.

В файле /usr/share/identityblitz/blitz-config/blitz.conf в блоке reg на уровне login.methods.sms.profiles.${factor}:

"reg" : {
   "mapping" : [
      {
            "attr" : "mobile",
            "useForParsing" : true,
            "value" : "${mobile}"
      },
      {
            "attr" : "surname",
            "useForParsing" : false,
            "value" : "${mobile}"
      }
   ],
   "regUserIfNotFound" : true
}

Если значение поля regUserIfNotFound выставлено true, то регистрация будет инициироваться, если пользователь с указанным номером телефона не найден. Блок mapping предназначен для настройи правил сопоставления атрибутов при регистрации. Поля useForParsing показывают откуда брать регулярное выражение для проверки того, что при входе по SMS был введен именно номер телефона.

Внимание

Обязательно, чтобы true стояло у одного единственного поля useForParsing. Тип атрибута, для которого useForParsing = true должен быть mobile.

Примечание

Рекомендуется назначать регулярное выражение для выбранного поля, чтобы номер телефона проверялся корректно.