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

Методы аутентификации. Общие сведения

Методы аутентификации — это компоненты в StarVault, которые выполняют аутентификацию и отвечают за присвоение идентификатора и набора политик пользователю. Во всех случаях StarVault обеспечивает аутентификацию как часть обработки запроса. В большинстве случаев StarVault делегирует администрирование и принятие решений о аутентификации соответствующему настроенному внешнему методу аутентификации (например, GitHub, Kubernetes, LDAP и т.д.).

Наличие нескольких методов аутентификации позволяет выбрать наиболее подходящий для каждого отдельного случая использования StarVault.

Например, на машинах разработчиков метод аутентификации через GitHub является наиболее простым в использовании. Но для серверов рекомендуемым выбором является метод AppRole.

1. Жизненный цикл методов аутентификации

Большинство методов аутентификации можно включать, отключать, настраивать и перемещать с помощью CLI, API или UI.

К этапам жизненного цикла методов аутентификации относятся:

  • Enable - активация метода аутентификации по указанному пути. За некоторыми исключениями, методы могут быть включены по нескольким путям. По умолчанию методы аутентификации монтируются в auth/<type>. Например, после активации метода "github", взаимодействовать с ним можно по адресу auth/github.

  • Disable - отключение существующего метода аутентификации. При отключении метода аутентификации, все пользователи, прошедшие аутентификацию с помощью этого метода, автоматически выходят из системы.

  • Move - перемещение существующего метода аутентификации в другой путь. В результате этого процесса все аренды аннулируются. Конфигурационные данные, хранящиеся для метода аутентификации, сохраняются после перемещения.

  • Tune - настройка глобальной конфигурации метода аутентификации, например TTL.

После активации метода аутентификации вы можете взаимодействовать с ним напрямую по его пути в соответствии с его собственным API. Используйте команду starvault path-help, чтобы определить пути, на которые он отвечает.

Обратите внимание, что точки монтирования в StarVault не могут конфликтовать друг с другом. Этот факт имеет два серьёзных последствия:

  • Вы не можете иметь точку монтирования, которая начинается с уже существующей точки монтирования.

  • Вы не можете создать точку монтирования с именем, которое является префиксом уже существующей точки монтирования.

Например, точки монтирования foo/bar и foo/baz могут сосуществовать, a foo и foo/baz нет.

1.1. Управление жизненным циклом

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

Операция Выполнение в UI Выполнение в CLI Дополнительная информация

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

На странице Access

starvault auth list

При использовании CLI возможно управление выводом списка методов с помощью следующих опций:

  • -detailed - включает подробный вывод параметров методов, таких как TTL, параметры репликации, версия плагина и т.д.

  • -format=<string> - указывает способ представления вывода. Допустимые варианты: table (по умолчанию), json и yaml.

Активация

На странице Access путем нажатия Enable new method

starvault auth enable [options] <auth-name>

Как при использовании UI, так и CLI при активации можно задать дополнительные параметры механизма. Список параметров и их описание см. в разделе Общие параметры для методов аутентификации.

Деактивация

На странице Access в расширенном меню метода (m action) по кнопке Disable

starvault auth disable <path>

Перемещение

Недоступно

starvault auth move <old-path> <new-path>

Настройка

Вариант 1

На странице Access в расширенном меню метода (m action) по кнопке Edit configuration.

Вариант 2

На вкладке Configuration в подробном представлении метода по кнопке Configure.

starvault auth tune <options> <path>

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

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

В таблице ниже представлены возможные параметры для настройки методов и их описание.

Для конкретных методов могут быть доступны не все параметры. Подробнее см. в описании соответствующего метода.

Опция команды CLI Поле в UI Описание параметра

-allowed-response-headers=<string>

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

Например:

starvault auth tune -allowed-response-headers=Cache-Control -allowed-response-headers=Content-Type <path>

В этом примере заголовки Cache-Control и Content-Type разрешены для включения в ответы, отправляемые с точки монтирования по пути <path>.

-audit-non-hmac-request-keys=<string>

Request keys excluded from HMACing in audit

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

Например:

starvault auth tune -audit-non-hmac-request-keys=key1 -audit-non-hmac-request-keys=key2 <path>

В этом примере key1 и key2 - это ключи запроса, которые будут залогированы в журналах аудита без применения HMAC, для точки монтирования по пути <path>.

-audit-non-hmac-response-keys=<string>

Response keys excluded from HMACing in audit

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

Например:

starvault auth tune -audit-non-hmac-response-keys=key1 -audit-non-hmac-response-keys=key2 <path>

В этом примере key1 и key2 - это ключи в ответах, которые будут залогированы в журналах аудита без HMAC, для точки монтирования по пути <path>.

-default-lease-ttl=<duration>

Default Lease TTL

Используется для установки времени жизни (TTL) по умолчанию для всех аренд (leases), выдаваемых методом аутентификации, к которому применяется эта настройка. Это время, на которое выдается токен или другие учетные данные после успешной аутентификации пользователя. Как только TTL истекает, аренда (и соответствующие учетные данные) становятся недействительными, если они не были продлены.

Пример:

starvault auth tune -default-lease-ttl=1h <path>

В этом примере для точки монтирования по пути <path> устанавливается TTL по умолчанию равный одному часу (1h).

-description=<string>

Description

Описание метода аутентификации.

-external-entropy-access

Опцию можно активировать только при включении метода.

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

Пример:

starvault auth enable --external-entropy-access=true <method-name>

Эта команда включает доступ к внешнему источнику энтропии для метода <method-name> при его активации.

-listing-visibility=<string>

Опция List method when unauthenticated

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

Опция имеет два возможных значения:

  • unauth (соответствует активированной опции в UI) - ключи будут видны в списке даже без аутентификации.

  • hidden (соответствует деактивированной опции в UI) - ключи не будут отображаться в списке без соответствующих разрешений.

Пример:

starvault auth tune -listing-visibility=unauth <path>

В этом примере для точки монтирования по пути <path> устанавливается видимость списка ключей как unauth, что позволяет всем пользователям видеть список ключей в этой точке монтирования.

-local

Опцию можно активировать только при включении метода.

Опция Local

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

Пример:

starvault auth enable -local <method-name>

-max-lease-ttl=<duration>

Max Lease TTL

Устанавливает максимальное время жизни (TTL) для аренды, выдаваемой методом аутентификации. Это ограничение применяется ко всем токенам и учетным данным, выданным через точку монтирования, и задаёт верхний предел времени, на который можно продлить аренду до её истечения.

Пример:

starvault auth tune -max-lease-ttl=24h <path>

В этом примере для точки монтирования по пути <path> устанавливается максимальное TTL равное 24 часам (24h). Это означает, что ни одна аренда, выданная через эту точку монтирования, не сможет быть продлена сверх этого времени.

-passthrough-request-headers=<string>

Allowed passthrough request headers

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

Например:

starvault auth tune -passthrough-request-headers=X-Custom-Header1,X-Custom-Header2 <path>

В этом примере заголовки X-Custom-Header1 и X-Custom-Header2 будут переданы через StarVault к внешнему сервису для точки монтирования по пути <path>.

-path=<string>

Опцию можно активировать только при включении метода.

Path

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

Например:

starvault auth enable -path=custom/path userpass

В этом примере метод типа userpass активируется по пользовательскому пути custom/path.

-plugin-name=<string>

Опцию можно активировать только при включении метода.

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

Например:

starvault auth enable -path=my-custom-auth -plugin-name=my-plugin plugin

В этом примере плагин с именем my-plugin активируется в качестве метода аутентификации по пути my-custom-auth.

-plugin-version=<string>

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

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

Пример:

starvault auth enable -path=my-custom-auth -plugin-name=my-plugin -plugin-version=1.2.3 plugin

В этом примере плагин с именем my-plugin и версией 1.2.3 активируется в качестве метода аутентификации по пути my-custom-auth.

-seal-wrap

Опцию можно активировать только при включении метода.

Опция Seal wrap

Используется для включения функции обертывания печати (Seal Wrapping) для всего метода аутентификации или определенных данных внутри него. Seal Wrapping — это механизм, который использует возможности автоматического запечатывания (Auto-Seal) хранилища для дополнительной защиты конфиденциальных данных.

Когда опция -seal-wrap включена, данные, связанные с методом аутентификации, оборачиваются дополнительным слоем шифрования, который обеспечивается функцией Auto-Seal. Это означает, что даже если кто-то получит доступ к физическому хранилищу данных, он не сможет прочитать защищенные таким образом учетные данные или токены без распечатывания (unsealing) хранилища.

Пример:

starvault auth enable -seal-wrap -path=my-auth userpass

В этом примере для метода аутентификации типа userpass, активированного по пути my-auth, включена функция Seal Wrapping, обеспечивающая дополнительный уровень защиты для данных, хранящихся в этом методе.

-token-type=<string>

Меню Token Type

Используется для определения типа токена, который будет выдан после успешной аутентификации пользователя. Тип токена влияет на возможности и поведение токена в системе StarVault.

Существует несколько типов токенов, которые можно указать с помощью этой опции:

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

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

  • default - тип токена будет определяться глобальными настройками StarVault или параметрами по умолчанию для конкретного метода аутентификации.

Пример:

starvault auth tune -token-type=batch github

В этом примере для метода аутентификации через GitHub устанавливается тип выдаваемых токенов как "batch". Это означает, что после аутентификации пользователей через GitHub, они получат batch-токены.

-user-lockout-counter-reset-duration=<duration>

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

Пример:

starvault auth tune -user-lockout-counter-reset-duration=1h path/to/auth/method

В этом примере для метода аутентификации, находящегося по пути path/to/auth/method, устанавливается продолжительность сброса счетчика блокировки равной одному часу (1h). Если пользователь вводит неверные учетные данные, счетчик неудачных попыток будет сброшен, если он не пытается войти в течение одного часа после последней неудачной попытки.

-user-lockout-disable

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

Пример:

starvault auth tune -user-lockout-disable=true path/to/auth/method

-user-lockout-duration=<duration>

Задаёт продолжительность блокировки пользователя после превышения допустимого количества неудачных попыток входа.

Пример:

starvault auth tune -user-lockout-duration=30m path/to/auth/method

В этом примере для метода аутентификации по пути path/to/auth/method устанавливается продолжительность блокировки пользователя равной 30 минутам (30m). Это означает, что после превышения допустимого числа неудачных попыток входа, пользователь будет заблокирован на 30 минут.

-user-lockout-threshold=<uint>

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

Пример:

starvault auth tune -user-lockout-threshold=5 path/to/auth/method

В этом примере для метода аутентификации по пути path/to/auth/method устанавливается пороговое значение в 5 неудачных попыток входа. Если пользователь вводит неверные учетные данные более пяти раз подряд, он будет заблокирован в соответствии с настройками продолжительности блокировки.