Аутентификация в 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, будет показана справка.
Если вы используете метод, который не поддерживается через CLI, то необходимо
использовать API.
Через API
Аутентификация через API обычно используется для автоматизиваронных сценариев. Каждый метод аутентификации реализует свой эдпоинт для входа.
Используйте механизм d8 stronghold path-help
, чтобы найти нужный эндпоинт.
Срок действия авторизации
Так же как и секреты, сущности имеют сроки действия аренды , связанные с ними. Это означает, что вы будете должны пройти повторную аутентификацию после указанного срока аренды.
Чтобы установить срок аренды, связанный с сущностью, обратитесь к справке по конкретному используемому методу аутентификации. В каждом бекенде реализована своя система продления срока аренды.
Как и секреты, сущности могут быть продлены без необходимости полной повторной аутентификации. Просто используйте d8 stronghold token renew <token>
с токеном, связанным с вашей сущностью, чтобы продлить его.