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

Методы аутентификации. Логин и пароль (Advanced)

Метод аутентификации userpass-advanced позволяет пользователям аутентифицироваться в StarVault, используя комбинацию имени пользователя и пароля. В отличие от базовой версии, этот метод поддерживает смену собственного пароля пользователем, установку флага принудительной смены пароля администратором, генерацию пароля по политике. С настройками политик паролей подробнее можно ознакомиться в руководстве.

Комбинации имени пользователя, пароля и флаг принудительной смены пароля перед входом пользователя настраиваются непосредственно в методе аутентификации через путь users/. Этот метод не может считывать имена пользователей и пароли из внешнего источника.

Метод приводит все введенные имена пользователей к нижнему регистру, например, Mary и mary будут считаться одной и той же записью.

1. Аутентификация с помощью метода Userpass-advanced

Этот метод аутентификации можно использовать для аутентификации через UI, CLI или API.

UI

На странице входа выберите Username & Password Advanced в качестве метода и в поля Username и Password введите соответствующие значения.

userpass advanced auth ui 1

Если метод Userpass & Password Advanced был смонтирован по пути, отличном от пути по умолчанию (auth/userpass) введите этот путь в поле Mount path в разделе Hide options:

userpass advanced auth ui 2

Пусть у созданного пользователя в разделе users/ был выставлен флаг Force password change (предвыбирается автоматически), как показано ниже:

userpass advanced auth ui 3

В данном случае при первом входе необходимо выполнить смену пароля:

userpass advanced auth ui 4

Ручная смена пароля доступна при нажатии на иконку профиля:

userpass advanced auth ui 5
CLI
  • Создание пользователя:

    starvault write auth/userpass-advanced/users/<username> \
    password="<password>" \
    force_password_change=true \
    create=true (1)
1 Для выполнения обновления данных уже созданного пользователя, необходимо выполнить аналогичную команду с флагом create=false или без указания флага.
  • Просмотр информации о пользователе:

    starvault read auth/<userpass-advanced>/users/<username>
  • Вход в УЗ, если force_password_change = false, то выполнить действие Вход после смены пароля.

  • Попытка входа, если флаг force_password_change=true (по умолчанию). Возвращает ошибку 403 password change required:

    starvault write auth/<userpass-advanced>/login/<username> password="<password>"
  • Смена временного пароля:

    starvault write auth/<userpass-advanced>/users/change-temporary-password \
    username="<username>" \
    password="<currnet_password>" \
    new_password="<new_password>"
  • Вход после смены пароля:

    starvault write auth/<userpass-advanced>/login/<username> \
    password="<password>"
  • Необязательно. Смена пароля вручную:

    starvault write auth/<userpass-advanced>/users/password \
    old_password="<current_password>" \
    new_password="<new_password>"

2. Настройка Userpass-advanced

Методы аутентификации должны быть настроены заранее, прежде чем пользователи или машины смогут пройти аутентификацию. Эти шаги обычно выполняются администратором или инструментом управления конфигурацией.

Для настройки Userpass-advanced выполните следующие действия:

  1. Активируйте метод:

    • Через UI:

      1. Аутентифицируйтесь в пользовательском интерфейсе с достаточными правами.

      2. На странице Доступ нажмите Добавить.

      3. Выберите Username & Password Advanced и нажмите Далее.

        enable userpass advanced 1
      4. При необходимости измените путь в поле Путь и параметры метода в группе Опции. Подробнее о параметрах см. в разделе Общие параметры для методов аутентификации

      5. Нажмите Включить метод.

      6. Для того, чтобы пользователь мог менять пароль, необходимо отредактировать политику default. Для этого выполните шаги:

        1. Перейдите на вкладку Политики и с помощью фильтра найдите политику default.

          corr policy
        2. Нажмите на кнопку Редактировать и перейдите к редактированию политики.

          edit policy
        3. Добавьте в политику следующие строки:

          path "auth/<userpass-advanced>/users/password" {
            capabilities = ["create", "update"]
          }

          Впишите в поле path свой путь метода.

        4. Нажмите Сохранить

          save policy
    • Через CLI:

      1. Используйте команду для активации метода аутентификации.

        starvault auth enable userpass-advanced
      2. Используйте команду для активации метода аутентификации c переопределением path.

        starvault auth enable -path=<path> userpass-advanced

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

  2. Необязательно. Доступно редактирование стандартной парольной политики Password policy в конфгурации метода auth/configure/userpass-advanced/options. С настройками политик паролей подробнее можно ознакомиться в руководстве:

    • Через UI:

      1. Аутентифицируйтесь в пользовательском интерфейсе с достаточными правами.

      2. На странице Доступ нажмите на карточку метода Userpass-advanced.

      3. На странице метода нажмите Конфигурация.

      4. В разделе конфигурации метода нажмите Конфигурировать.

        create conf advanced ui
    • Через CLI:

      1. Используйте команду для редактирования парольной политики.

        starvault write auth/userpass-advanced/policies/password policy="length = 30
        rule \"charset\" {
          charset = \"abcdefghijklmnopqrstuvwxyz\"
          min-chars = 3
        }
        rule \"charset\" {
          charset = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"
          min-chars = 3
        }
        rule \"charset\" {
          charset = \"0123456789\"
          min-chars = 3
        }
        rule \"charset\" {
          charset = \"-\"
          min-chars = 3
        }"
  3. Создайте пользователя и ассоциируйте его с политикой (подробнее см. в разделе Политики доступа)

    • Через UI:

      1. Аутентифицируйтесь в пользовательском интерфейсе с достаточными правами.

      2. На странице Доступ нажмите на карточку метода Userpass-advanced.

      3. На странице метода нажмите Создать.

      4. Введите имя пользователя и пароль (его можно сгенерировать).

        userpass advanced auth ui 6
      5. Необязательно. Переопределите параметр Принудительная смена пароля, отвечающий за необходимость смены пароля при первом входе пользователя.

      6. В разделе Токены можно настроить дополнительные параметры, в том числе связать токен с политиками.

      7. Нажмите Сохранить

        Подробнее о доступных параметрах токена см. в таблице.

    • Через CLI:

      Используйте следующую команду для создания пользователя:

      starvault write auth/<userpass:path>/users/<username> \
          password=<password> \
          force_password_change=true \
          create=true \
          [options]

3. Управление пользователями

В таблице ниже представлены команды для управления пользователями в методе Userpass-advanced.

Команда Описание

starvault write auth/<userpass-advanced>/users/<username> \ password="<password>" \ force_password_change=true \ create=true \ <key=value list>

Создание нового пользователя или изменение существующего по пути auth/<userpass:path>/users/<username>. Параметры учетной записи передаются в формате key=value. Для добавления нескольких ключей со значениями, их необходимо перечислить через пробел.

Подробнее о доступных параметрах токена см. в таблице.

starvault read [-format=<string>] auth/<userpass:path>/users/<username>

Возвращает данные пользователя с именем <username> в методе Userpass-advanced по пути <userpass:path>.

С помощью опции -format=<string> можно указать формат представления данных. Допустимые значения: table (по умолчанию), yaml, 'json', 'raw'.

starvault list [-format=<string>] auth/<userpass:path>/users

Возвращает список пользователей в методе Userpass-advanced по пути <userpass:path>.

С помощью опции -format=<string> можно указать формат представления данных. Допустимые значения: table (по умолчанию), yaml, 'json'.

starvault delete auth/<userpass:path>/users/<username>

Удаляет пользователя с именем <username> в методе Userpass-advanced по пути <userpass:path>.

Параметры учетной записи, которые можно передать при создании/изменении пользователя представлены в следующей таблице:

Опция CLI Поле в UI Описание

force_password_change

Флаг Force password change

Логическое значение. Определяет, необходима ли смена пароля при первом входе. Если force_password_change установлен в true, то для первого входа нужно будет произвести смену пароля.

token_ttl

Переключатель Generated Token’s Initial TTL

Целочисленное или строковое значение. Определяет время жизни (TTL) токенов, выдаваемых для данного пользователя. По истечении этого времени токен будет автоматически отозван, если только он не будет продлен.

token_max_ttl

Переключатель Generated Token’s Maximum TTL

Целочисленное или строковое значение. Максимальное время жизни сгенерированных токенов. Текущее значение этого параметра будет указано при обновлении.

token_policies

Поля Generated Token’s Policies

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

token_bound_cidrs

Поля Generated Token’s Bound CIDRs

Список значений, разделенных запятыми. Определяет список CIDR-адресов, для которых будет действителен выданный токен. Это ограничение по IP-адресам устанавливает, что токен может использоваться только с определенных IP-адресов или диапазонов IP-адресов, что повышает безопасность, ограничивая возможность использования токена

token_explicit_max_ttl

Переключатель Generated Token’s Explicit Maximum TTL

Целочисленное или строковое значение. Задает максимальное время жизни (TTL) для токенов, выданных с использованием этого пользователя. Это значение устанавливает жесткий верхний предел времени жизни токена, который не может быть превышен даже при продлении токена.

token_no_default_policy

Опция Do Not Attach 'default' Policy To Generated Tokens

Логическое значение. Определяет, будет ли новому токену автоматически присваиваться политика по умолчанию.

Если token_no_default_policy установлен в true, то при создании токена политика по умолчанию не будет присвоена.

token_num_uses

Поле Maximum Uses of Generated Tokens

Целочисленное значение. Максимальное количество раз, которое может быть использован сгенерированный токен (в течение срока его действия). 0 означает неограниченное количество раз. Если требуется, чтобы токен имел возможность создавать дочерние токены, необходимо установить это значение равным 0.

token_period

Переключатель Generated Token’s Period

Целочисленное или строковое значение. Определяет период, в течение которого выданный токен может быть продлен бесконечное количество раз, пока политики, связанные с токеном, остаются неизменными.

token_type

Поле Generated Token’s Type

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

Допустимые значения:

  • service - стандартный тип токена, который может быть продлен в соответствии с его политиками и TTL. Токены типа "service" подходят для большинства приложений и сервисов, которые требуют долгосрочного доступа и возможности продления токена.

  • batch - легковесный тип токена, который хранится в памяти и не записывается в хранилище данных StarVault. Токены типа "batch" не могут быть продлены или отозваны индивидуально, и они исчезают при перезагрузке или выключении сервера StarVault. Они подходят для краткосрочных операций и сценариев с большим объемом токенов, где требуется меньшая нагрузка на хранилище.

  • default - Если параметр не задан, будет использоваться тип токена по умолчанию, который в большинстве случаев является типом "service".

create

Флаг, отвечающий за создание новой или обновление существующей учетной записи по указанному пути.

Допустимые значения:

  • true - создание пользователя;

  • false (или отсутствие флага) - обновление существующей учетной записи.

Пример:

starvault write auth/admin-users/users/admin \ (1)
  password=P@ssw0rd \ (2)
  token_policies=admins-kv \ (3)
  token_ttl=5h \ (4)
  token_num_uses=2 (5)
1 Создается пользователь с именем admin в методе аутентификации по пути admin-users
2 Установка пароля пользователя
3 Сопоставление токена пользователя с политикой admins-kv
4 Срок действия токена пользователя задан равным 5 часам
5 С этим токеном можно аутентифицироваться 2 раза. Затем токен будет аннулирован.