Аутентификация в Stronghold — это процесс, в ходе которого информация, предоставленная пользователем или машиной, проверяется на соответствие внутренней или внешней системой. Stronghold поддерживает множество методов аутентификации, включая Userpass, LDAP, AppRole и другие. У каждого метода аутентификации есть свой сценарий использования.

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

Методы аутентификации

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

Чтобы включить метод аутентификации, используйте следующую команду:

d8 stronghold write sys/auth/my-auth type=userpass

Эта команда включает метод аутентификации userpass на пути my-auth. Использовать эту аутентификацию можно именно по пути my-auth. Часто путь аутентификации совпадает с ее именем, однако это не является строгим требованием.

Чтобы получить дополнительные сведения об этой аутентификации, воспользуйтесь встроенной командой path-help:

d8 stronghold path-help auth/my-auth

Stronghold поддерживает одновременно несколько методов аутентификации, и вы даже можете установить один и тот же тип метода аутентификации на разных путях. Для получения доступа к Stronghold требуется единовременная аутентификация, и в настоящее время не поддерживается принудительная аутентификация пользователя с помощью нескольких способов, хотя некоторые бэкенды поддерживают мультифакторную аутентификацию (MFA).

Токены

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

Например, даже если вы проходите аутентификацию через DEX, Stronghold создаёт для вас уникальный токен доступа, который используется для последующих запросов. В интерфейсе командной строки (CLI) этот токен автоматически добавляется к запросам, а при использовании API это необходимо делать вручную.

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

Аутентификация

Через CLI

Для аутентификации с помощью CLI используется команда d8 stronghold login. Поддерживается многие методы аутентификации.

Например, чтобы пройти аутентификацию с помощью OIDC, выполните следующую команду:

d8 stronghold login -method=oidc

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

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

Если вы используете метод, который не поддерживает аутентификацию через CLI, вам придётся использовать API.

Через API

Аутентификация через API обычно используется для автоматизированных сценариев. Каждый метод аутентификации реализует свой эндпоинт для входа.

Чтобы найти нужный эндпоинт, используйте следующую команду:

d8 stronghold path-help

Аренда аутентификации

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

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

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

d8 stronghold token renew <token>