Аутентификация на основе токенов
Метод аутентификации с помощью токена является встроенным и является основным для клиента. Для аутентификации могут использоваться и другие методы аутентификации, но в конечном итоге они приводят к созданию клиентского токена, управляемого серверной частью токена.
Каждый токен обладает рядом свойств:
-
ID- основной идентификатор токена - это случайно сгенерированное значение -
Display Name- необязательно, отображаемое имя; -
Metadata- метаданные, используемые для ведения журнала аудита; -
Number of Uses- необязательно, ограничение на количество использования; -
Parent ID- необязательно, родительский токен, который создал текущий дочерний токен; -
Policies- связанный список политик ACL; -
Source Path- путь, по которому был сгенерирован токен (например,auth/github/login).
Свойства токена остаются неизменными после его создания. Исключением из этого правила является количество использований, которое уменьшается при каждом запросе. Каждое из этих свойств позволяет StarVault выполнять ряд полезных функций.
Каждый токен содержит исходный путь или путь входа в систему, который использовался для создания токена. Это используется для разрешения отзыва на основе исходного кода. Например, если мы считаем, что наша организация на GitHub была скомпрометирована, мы можем отозвать все токены, сгенерированные с помощью auth/github/login. Это можно сделать, используя sys/revoke-prefix/ API с префиксом auth/github/. Отмена префикса приведет к аннулированию всех клиентских токенов, сгенерированных по этому пути, а также всех динамических секретов, сгенерированных этими токенами. Это обеспечивает эффективную процедуру быстрого реагирования во время потенциальной компрометации.
Если токен создан другим методом аутентификации, у него нет родительского токена. Однако у любых токенов, созданных с помощью API auth/token/create, есть родительский токен, а именно токен, используемый для выполнения этого запроса. Поддерживая эту связь между родителями и дочерними элементами, StarVault моделирует деревья токенов. Дочерние токены могут быть созданы с использованием подмножества родительских политик, что позволяет отказаться от привилегий. Когда токен отзывается, вместе с ним отзывается и все поддерево токенов. Это позволяет клиентам безопасно генерировать дочерние токены, а затем отзывать их все вместе с корневым.
Дочерние токены очень полезны, особенно в сочетании с токенами ограниченного использования. При создании токена можно дополнительно указать количество его использований. Если количество использований равно единице, токен будет использоваться один раз. Это означает, что токен может быть использован для одного запроса, прежде чем будет автоматически отозван. Это может быть распространено на любое количество применений. Токены ограниченного использования нельзя использовать для создания дополнительных токенов, но они могут стать эффективным способом обеспечения крайне ограниченного доступа к StarVault.