Аутентификатор


Описывает все свойства данного аутентификатора. Данный плагин используется для аутентификации пользователя, предоставляя для этого различные способы, как регистрация/вход при помощи телефона/email/username и пароля, через различные соц. сети, а также беспарольный вход. Помимо регистрации и входа, плагины предоставляют дополнительный функционал, как, например, сброс пароля или верификация аккаунта.

  • Тип: object. Наличие дополнительных свойств: Недопустимо.
    • filter: Тип: object. Перечесление фильтров данных. Перечесление фильтров, которые будут применятся к входящим данным. Фильтрация производится с применением регулярных выражений. Дает возможность более тонко контролировать процесс аутентификации тех или иных пользователей.
      • regex(".+"): Тип: string. Дополнительно: Регулярное выражение. Минимальная длина: 1.

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

    Конфигурация apple аутентификатора.

    • Тип: object. Конфигурация apple аутентификатора. Служит для задания свойств аутентификатора. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: apple. Тип аутентификатора. Необходим, чтобы дать Aureole понять, какой из аутентификаторов использовать.
      • config: Тип: object. Конфигурация аутентификатора. Описывает все свойства данного аутентификатора. Обязательны: secret_key, public_key, client_id, team_id, key_id. Наличие дополнительных свойств: Недопустимо.
        • secret_key: Тип: string. Дополнительно: Ссылка на экземпляр плагина крипто-ключа. Ссылка на приватный ключ. Имя крипто ключа, который должен использоваться в качестве приватного при обращении к провайдеру. Минимальная длина: 1.
        • public_key: Тип: string. Дополнительно: Ссылка на экземпляр плагина крипто-ключа. Ссылка на публичный ключ. Имя крипто ключа, который должен использоваться в качестве публичного при получении данных от провайдера. Минимальная длина: 1.
        • client_id: Тип: string. Идентификатор приложения. Идентификатор приложения (Service ID), полученный при создании приложения у провайдера. Минимальная длина: 1.
        • team_id: Тип: string. Идентификатор команды. Идентификатор команды, полученный при создании приложения у провайдера. Минимальная длина: 1.
        • key_id: Тип: string. Идентификатор приватного ключа. Идентификатор ключа, который будет использоваться для подписи JWT при обращении к провайдеру. Минимальная длина: 1.
        • scopes: Тип: array. Значение по-умолчанию: ['email']. Массив дополнительных разрешений. В массиве перечисляются необязательные дополнительные разрешения, которые можно запросить у провайдера. Элементы должны быть уникальными.
          • Элементы: Тип: string. Минимальная длина: 1.

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

      authn:
        - type: "apple"
          config:
            secret_key: apple_signin_key
            public_key: apple_keys
            client_id: ${APPLE_CLIENT_ID}
            team_id: ${APPLE_TEAM_ID}
            key_id: ${APPLE_KEY_ID}
            scopes:
              - email
              - name
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11

    Конфигурация google аутентификатора.

    • Тип: object. Конфигурация google аутентификатора. Служит для задания свойств аутентификатора. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: google. Тип аутентификатора. Необходим, чтобы дать Aureole понять, какой из аутентификаторов использовать.
      • config: Тип: object. Конфигурация аутентификатора. Описывает все свойства данного аутентификатора. Обязательны: client_id, client_secret. Наличие дополнительных свойств: Недопустимо.
        • client_id: Тип: string. Идентификатор приложения. Идентификатор приложения, полученный при создании приложения у провайдера. Минимальная длина: 1.
        • client_secret: Тип: string. Секрет приложения. Секрет приложения, полученный при создании приложения у провайдера. Минимальная длина: 1.
        • scopes: Тип: array. Значение по-умолчанию: ['email']. Массив дополнительных разрешений. В массиве перечисляются необязательные дополнительные разрешения, которые можно запросить у провайдера. Элементы должны быть уникальными.
          • Элементы: Тип: string. Минимальная длина: 1.

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

      authn:
        - type: "google"
          config:
            client_id: ${GOOGLE_CLIENT_ID}
            client_secret: ${GOOGLE_SECRET}
            scopes:
              - https://www.googleapis.com/auth/userinfo.email
              - https://www.googleapis.com/auth/userinfo.profile
      
      1
      2
      3
      4
      5
      6
      7
      8

    Конфигурация facebook аутентификатора.

    • Тип: object. Конфигурация facebook аутентификатора. Служит для задания свойств аутентификатора. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: facebook. Тип аутентификатора. Необходим, чтобы дать Aureole понять, какой из аутентификаторов использовать.
      • config: Тип: object. Конфигурация аутентификатора. Описывает все свойства данного аутентификатора. Обязательны: client_id, client_secret. Наличие дополнительных свойств: Недопустимо.
        • client_id: Тип: string. Идентификатор приложения. Идентификатор приложения, полученный при создании приложения у провайдера. Минимальная длина: 1.
        • client_secret: Тип: string. Секрет приложения. Секрет приложения, полученный при создании приложения у провайдера. Минимальная длина: 1.
        • scopes: Тип: array. Значение по-умолчанию: ['email']. Массив дополнительных разрешений. В массиве перечисляются необязательные дополнительные разрешения, которые можно запросить у провайдера. Элементы должны быть уникальными.
          • Элементы: Тип: string. Минимальная длина: 1.
        • fields: Тип: array. Значение по-умолчанию: ['email']. Массив дополнительных полей. В массиве перечисляются необязательные дополнительные поля, которые можно запросить у провайдера Элементы должны быть уникальными.
          • Элементы: Тип: string. Минимальная длина: 1.

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

      authn:
        - type: "facebook"
          config:
            client_id: ${FACEBOOK_CLIENT_ID}
            client_secret: ${FACEBOOK_SECRET}
            scopes:
              - email
            fields:
              - email
      
      1
      2
      3
      4
      5
      6
      7
      8
      9

    Конфигурация vk аутентификатора.

    • Тип: object. Конфигурация vk аутентификатора. Служит для задания свойств аутентификатора. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: vk. Тип аутентификатора. Необходим, чтобы дать Aureole понять, какой из аутентификаторов использовать.
      • config: Тип: object. Конфигурация аутентификатора. Описывает все свойства данного аутентификатора. Обязательны: client_id, client_secret. Наличие дополнительных свойств: Недопустимо.
        • client_id: Тип: string. Идентификатор приложения. Идентификатор приложения, полученный при создании приложения у провайдера. Минимальная длина: 1.
        • client_secret: Тип: string. Секрет приложения. Секрет приложения, полученный при создании приложения у провайдера. Минимальная длина: 1.
        • scopes: Тип: array. Значение по-умолчанию: ['email']. Массив дополнительных разрешений. В массиве перечисляются необязательные дополнительные разрешения, которые можно запросить у провайдера. Элементы должны быть уникальными.
          • Элементы: Тип: string. Минимальная длина: 1.
        • fields: Тип: array. Массив дополнительных полей. В массиве перечисляются необязательные дополнительные поля, которые можно запросить у провайдера Элементы должны быть уникальными.
          • Элементы: Тип: string. Минимальная длина: 1.

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

      authn:
        - type: "vk"
          config:
            client_id: ${VK_CLIENT_ID}
            client_secret: ${VK_SECRET}
            scopes:
              - email
      
      1
      2
      3
      4
      5
      6
      7

    Конфигурация password based аутентификатора.

    • Тип: object. Конфигурация password based аутентификатора. Служит для задания свойств аутентификатора. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: password_based. Тип аутентификатора. Необходим, чтобы дать Aureole понять, какой из аутентификаторов использовать.
      • config: Тип: object. Конфигурация аутентификатора. Описывает все свойства данного аутентификатора. Обязательны: main_hasher. Наличие дополнительных свойств: Недопустимо.
        • main_hasher: Тип: object. Хэшер. Конфигурация хэшера, которым плагин будет хэшировать пароли. Наличие дополнительных свойств: Недопустимо.

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

          • Тип: object. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
            • type: Константа: argon2. Тип хэшера. Необходим, чтобы дать Aureole понять, какой из хэшеров использовать.
            • config: Тип: object. Конфигурация хэшера. Описывает все свойства данного хэшера. Наличие дополнительных свойств: Недопустимо.
              • kind: Допускаются следующие значения: argon2i, argon2id. Значение по-умолчанию: argon2i. Версия алгоритма. Указывает, какую из версий алгоритма следует использовать при хэшировании.
              • iterations: Тип: integer. Значение по-умолчанию: 3. Количество итераций. Количество итераций алгоритма по памятию Минимальное значение: 1.
              • parallelism: Тип: integer. Значение по-умолчанию: 2. Степень параллелизма. Указвает количество потоков, на которое можно распараллелить алгоритм. Минимальное значение: 1.
              • salt_length: Тип: integer. Значение по-умолчанию: 16. Длина соли. Длина соли, которую будет генерировать Aureole при хэшировании. Минимальное значение: 1.
              • key_length: Тип: integer. Значение по-умолчанию: 32. Длина ключа. Длина исходного хэша. Минимальное значение: 1.
              • memory: Тип: integer. Значение по-умолчанию: 32768. Количество памяти. Количествл памяти, которое может использовать алгоритм. Минимальное значение: 1.
          • Тип: object. Обязательны: type. Наличие дополнительных свойств: Недопустимо.
            • type: Константа: pbkdf2. Тип хэшера. Необходим, чтобы дать Aureole понять, какой из хэшеров использовать.
            • config: Тип: object. Конфигурация хэшера. Описывает все свойства данного хэшера. Наличие дополнительных свойств: Недопустимо.
              • func: Допускаются следующие значения: sha1, sha224, sha256, sha384, sha512. Значение по-умолчанию: sha256. Имя хэш-функции. Имя хэш-функции, которая будет использоваться алгоритмом.
              • iterations: Тип: integer. Значение по-умолчанию: 260000. Количество итераций. Количество итераций алгоритма по памятию Минимальное значение: 1.
              • salt_length: Тип: integer. Значение по-умолчанию: 22. Длина соли. Длина соли, которую будет генерировать Aureole при хэшировании. Минимальное значение: 1.
              • key_length: Тип: integer. Значение по-умолчанию: 32. Длина ключа. Длина исходного хэша. Минимальное значение: 1.
        • compat_hashers: Тип: array. Массив хэшеров Перечисление совместимых хэшеров. Если пароль был зашифрован одним из них, Aureole будет использовать данный хэшер для сравнения паролей. Элементы должны быть уникальными.
          • Элементы: Тип: object. Хэшер. Конфигурация хэшера, которым плагин будет хэшировать пароли. Наличие дополнительных свойств: Недопустимо.

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

            • Тип: object. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
              • type: Константа: argon2. Тип хэшера. Необходим, чтобы дать Aureole понять, какой из хэшеров использовать.
              • config: Тип: object. Конфигурация хэшера. Описывает все свойства данного хэшера. Наличие дополнительных свойств: Недопустимо.
                • kind: Допускаются следующие значения: argon2i, argon2id. Значение по-умолчанию: argon2i. Версия алгоритма. Указывает, какую из версий алгоритма следует использовать при хэшировании.
                • iterations: Тип: integer. Значение по-умолчанию: 3. Количество итераций. Количество итераций алгоритма по памятию Минимальное значение: 1.
                • parallelism: Тип: integer. Значение по-умолчанию: 2. Степень параллелизма. Указвает количество потоков, на которое можно распараллелить алгоритм. Минимальное значение: 1.
                • salt_length: Тип: integer. Значение по-умолчанию: 16. Длина соли. Длина соли, которую будет генерировать Aureole при хэшировании. Минимальное значение: 1.
                • key_length: Тип: integer. Значение по-умолчанию: 32. Длина ключа. Длина исходного хэша. Минимальное значение: 1.
                • memory: Тип: integer. Значение по-умолчанию: 32768. Количество памяти. Количествл памяти, которое может использовать алгоритм. Минимальное значение: 1.
            • Тип: object. Обязательны: type. Наличие дополнительных свойств: Недопустимо.
              • type: Константа: pbkdf2. Тип хэшера. Необходим, чтобы дать Aureole понять, какой из хэшеров использовать.
              • config: Тип: object. Конфигурация хэшера. Описывает все свойства данного хэшера. Наличие дополнительных свойств: Недопустимо.
                • func: Допускаются следующие значения: sha1, sha224, sha256, sha384, sha512. Значение по-умолчанию: sha256. Имя хэш-функции. Имя хэш-функции, которая будет использоваться алгоритмом.
                • iterations: Тип: integer. Значение по-умолчанию: 260000. Количество итераций. Количество итераций алгоритма по памятию Минимальное значение: 1.
                • salt_length: Тип: integer. Значение по-умолчанию: 22. Длина соли. Длина соли, которую будет генерировать Aureole при хэшировании. Минимальное значение: 1.
                • key_length: Тип: integer. Значение по-умолчанию: 32. Длина ключа. Длина исходного хэша. Минимальное значение: 1.
        • register: Тип: object. Конфигурация регистрации. Описывает поля, которые нужны Aureole для регистрации пользователей. Наличие дополнительных свойств: Недопустимо.
          • login_after: Тип: boolean. Значение по-умолчанию: False. Флаг логина после регистрации. Определяет, необходимо ли осуществлять автоматический логин пользователя после его регистрации.
          • verify_after: Тип: boolean. Значение по-умолчанию: False. Флаг верификации акаунта после регистрации. Определяет, необходимо ли осуществлять автоматическую верификацию аккаунта после его регистрации.
        • password_reset: Тип: object. Конфигурация сброса пароля. Описывает поля, которые нужны Aureole для сброса пользовательского пароля. Обязательны: sender, template. Наличие дополнительных свойств: Недопустимо.
          • sender: Тип: string. Дополнительно: Ссылка на экземпляр плагина отправителя. Ссылка на отправитель. Имя отправителя, который будет использоваться для доставки писем с ссылкой на сброс пароля. Минимальная длина: 1.
          • template: Тип: string. Дополнительно: Ссылка на один из шаблонов. Ссылка на шаблон. Имя шаблона, на основании которого будет формироваться письмо, доставляемое пользователю. Минимальная длина: 1.
          • exp: Тип: integer. Дополнительно: Единицы измерения: s. Значение по-умолчанию: 3600. Время жизни токена. Время, на протяжении которого токен будет валидным. Отсчет начинается с момента формирования токена. Минимальное значение: 0.
        • verification: Тип: object. Конфигурация верификации аккаунтов. Описывает поля, которые нужны Aureole для верификации пользовательских аккаунтов. Обязательны: sender, template. Наличие дополнительных свойств: Недопустимо.
          • sender: Тип: string. Дополнительно: Ссылка на экземпляр плагина отправителя. Ссылка на отправитель. Имя отправителя, который будет использоваться для доставки писем с ссылкой для верификации аккаунта. Минимальная длина: 1.
          • template: Тип: string. Дополнительно: Ссылка на один из шаблонов. Ссылка на шаблон. Имя шаблона, на основании которого будет формироваться письмо, доставляемое пользователю. Минимальная длина: 1.
          • exp: Тип: integer. Дополнительно: Единицы измерения: s. Значение по-умолчанию: 3600. Время жизни токена. Время, на протяжении которого токен будет валидным. Отсчет начинается с момента формирования токена. Минимальное значение: 0.

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

      authN:
        - type: "password_based"
          config:
            main_hasher: argon2
            password_reset:
              sender: email
              template: reset
              exp: 3600
            verification:
              sender: email
              template: email_verification
              exp: 3600
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

    Конфигурация email аутентификатора.

    • Тип: object. Конфигурация email аутентификатора. Служит для задания свойств аутентификатора. Обязательны: type, config. Наличие дополнительных свойств: Недопустимо.
      • type: Константа: email. Тип аутентификатора. Необходим, чтобы дать Aureole понять, какой из аутентификаторов использовать.
      • config: Тип: object. Конфигурация аутентификатора. Описывает все свойства данного аутентификатора. Обязательны: sender, template. Наличие дополнительных свойств: Недопустимо.
        • sender: Тип: string. Дополнительно: Ссылка на экземпляр плагина отправителя. Ссылка на отправитель. Имя отправителя, который будет использоваться для доставки писем с магической ссылкой. Минимальная длина: 1.
        • template: Тип: string. Дополнительно: Ссылка на один из шаблонов. Ссылка на шаблон. Имя шаблона, на основании которого будет формироваться письмо, доставляемое пользователю. Минимальная длина: 1.
        • exp: Тип: integer. Дополнительно: Единицы измерения: s. Значение по-умолчанию: 3600. Время жизни токена. Время, на протяжении которого токен будет валидным. Отсчет начинается с момента формирования токена. Минимальное значение: 0.

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

      authN:
        - type: "email"
          config:
            sender: email
            template: magic_link
            exp: 300
      
      1
      2
      3
      4
      5
      6

    Конфигурация phone аутентификатора.

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

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

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

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

      authn:
        - type: "phone"
          config:
            hasher: django
            sender: twilio
            template: phone_otp
            max_attempts: 3
            otp:
              length: 6
              alphabet: num
              prefix: A-
              postfix: -B
              exp: 300
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
Contributors: Semen Asaevich, asaevich