Двухфакторная аутентификация


Описывает все свойства данной двухфакторной аутентификации. Позволяет ввести дополнительный фактор проверки позволятеля перед его аутентификацией. Плагин является встраиваемым, что позволяет комбинировать различные первичные и вторичные факторы.

  • Тип: object. Обязательны: name. Наличие дополнительных свойств: Недопустимо.
    • name: Тип: string. Дополнительно: Имя экземпляра плагина. Имя плагина двухфакторной аутентификации. Имя используется для того, чтобы в дальнейшем ссылаться на данную двухфакторную аутентификацию. Минимальная длина: 1.

    Допустим один из вариантов конфига

    Конфигурация Google Authenticator 2FA.

    • Тип: object. Конфигурация Google Authenticator 2FA. Служит для задания свойств плагина двухфакторной аутентификации. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: google_authenticator. Тип плагина двухфакторной аутентификации. Необходим, чтобы дать Aureole понять, какой из плагинов двухфакторной аутентификации использовать.
      • config: Тип: object. Конфигурация двухфакторной аутентификации. Описывает все свойства данного плагина. Наличие дополнительных свойств: Недопустимо.
        • alg: Допускаются следующие значения: hotp, totp. Значение по-умолчанию: totp. Алгоритм генерации паролей. Позволяет выбрать с помощью какого алгоритма будут генерироваться новые одноразовые пароли.
        • iss: Тип: string. Значение по-умолчанию: Aureole. Имя сервиса или провайдера услуг. Идентификатор/имя стороны инициализирующей двухваторную аутентификацию (сервис/приложение, в котором аутентифицируется пользователь). Минимальная длина: 1.
        • window_size: Тип: integer. Значение по-умолчанию: 10. Размер окна синхронизации. Кол-во итераций в попытке синхронизировать счетчики/временные отрезки клиента и сервера при их рассинхронизации. Минимальное значение: 0.
        • disallow_reuse: Тип: boolean. Значение по-умолчанию: False. Запрет переиспользования паролей. Возможность запретить переиспользовать валидные одноразовые пароли. Необходим только с алгоритмом TOTP, т.к. в нем пароли валидны в течении 30 секундного промежутка.
        • max_attempts: Тип: integer. Значение по-умолчанию: 5. Максимальное кол-во попыток. Максимальное кол-во попыток ввода одноразового пароля. При его превышении аккаунт должен блокироваться. Минимальное значение: 1.
        • scratch_code: Тип: object. Конфигурация кодов восстановления. Опции кодов, которые могут быть использованы при экстренного доступа к аккаунту при невозможности пройти второй фактор стандартным способом. Все коды являются одноразовыми. Наличие дополнительных свойств: Недопустимо.
          • num: Тип: integer. Значение по-умолчанию: 5. Кол-во кодов. Кол-во кодов, которые будут доступные каждому пользователю. При их истечении, авторизованный пользователь может сгенерировать новые коды. Минимальное значение: 0.
          • alphabet: Значение по-умолчанию: alphanum.

            Допустим любой из вариантов конфига

            • Допускаются следующие значения: num, alpha, alphanum. Заготовленный алфавит для генерации кодов. Константные наборы символов, которые будут использоваться для генерации одноразовых паролей. num - цифры от 0 до 9, alpha - строчные и заглавные буквы английского алфавита, alphanum - и цифры и буквы алфавита.
            • Тип: string. Кастомный алфавит для генерации кодов. Любая строка символов, которая будет использоваться для генерации кодов. Минимальная длина: 1.

      Пример конфига

      2fa:
        - type: "google_authenticator"
          name: google_authenticator
          config:
            alg: "hotp"
            iss: "Company Name"
            window_size: 15
            disallow_reuse: true
            max_attempts: 5
            scratch_code:
              num: 5
              alphabet: "alphanum"
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

    Конфигурация SMS 2FA.

    • Тип: object. Конфигурация SMS 2FA. Служит для задания свойств плагина двухфакторной аутентификации. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: sms. Тип плагина двухфакторной аутентификации. Необходим, чтобы дать Aureole понять, какой из плагинов двухфакторной аутентификации использовать.
      • config: Тип: object. Конфигурация двухфакторной аутентификации. Описывает все свойства данного плагина. Наличие дополнительных свойств: Недопустимо.
        • sender: Тип: string. Дополнительно: Ссылка на экземпляр плагина отправителя. Ссылка на отправитель. Имя отправителя, который будет использоваться для доставки сообщений с одноразовым паролем. Минимальная длина: 1.
        • template: Тип: string. Дополнительно: Ссылка на один из шаблонов. Ссылка на шаблон. Имя шаблона, на основании которого будет формироваться сообщение, доставляемое пользователю. Минимальная длина: 1.
        • max_attempts: Тип: integer. Значение по-умолчанию: 3. Максимальное количество попыток. Максимальное кол-во попыток ввода одноразового пароля. При его превышении аккаунт должен блокироваться. Минимальное значение: 0.
        • otp: Тип: object. Конфигурация одноразового пароля. Позволяет настроить уникальные одноразовые пароли, которые будут использоваться для входа в аккаунт. Наличие дополнительных свойств: Недопустимо.
          • length: Тип: integer. Значение по-умолчанию: 6. Длина пароля. Aureole будет формировать пароль указанной длины. Минимальное значение: 1.
          • alphabet: Значение по-умолчанию: alphanum.

            Допустим любой из вариантов конфига

            • Допускаются следующие значения: num, alpha, alphanum. Заготовленный алфавит для генерации кодов. Константные наборы символов, которые будут использоваться для генерации одноразовых паролей. num - цифры от 0 до 9, alpha - строчные и заглавные буквы английского алфавита, alphanum - и цифры и буквы алфавита.
            • Тип: string. Кастомный алфавит для генерации кодов. Любая строка символов, которая будет использоваться для генерации кодов. Минимальная длина: 1.
          • exp: Тип: integer. Дополнительно: Единицы измерения: s. Значение по-умолчанию: 300. Время жизни пароля. Время, на протяжении которого пароль будет валидным. Отсчет начинается с момента формирования пароля. Минимальное значение: 0.

      Пример конфига

      2fa:
        - type: "sms"
          name: sms
          config:
            sender: twilio
            template: sms_2fa_tmpl
            max_attempts: 5
            otp:
              length: 6
              alphabet: "alphanum"
              exp: 60
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
Contributors: Semen Asaevich