Product SiteDocumentation Site

35.5.3. Аутентификация в Sunstone

По умолчанию веб-интерфейс Sunstone использует стандартный механизм аутентификации OpenNebula — логин и пароль пользователя, хранящиеся в базе данных OpenNebula.
Sunstone поддерживает все методы аутентификации, доступные в OpenNebula. Однако все пользователи, входящие через Sunstone, должны существовать в базе данных OpenNebula — даже при использовании внешних систем (LDAP, Kerberos и др.).
Процесс аутентификации в Sunstone зависит от значения параметра :auth: в файле /etc/one/sunstone-server.conf и может работать в двух режимах:
  • opennebula — локальная или делегированная аутентификация через ядро OpenNebula;
  • remote — внешняя аутентификация, выполняемая веб-сервером (Apache, Nginx и др.).

35.5.3.1. Локальная аутентификация (opennebula)

В этом режиме (используется по умолчанию) пользователь вводит логин и пароль на странице входа Sunstone. Эти данные передаются в ядро OpenNebula, которое проверяет их в соответствии с настроенным драйвером аутентификации (встроенный, LDAP, SSH и др.).
После успешного входа:
  • Sunstone создаёт сессию на основе JWT (JSON Web Token);
  • все последующие запросы к API аутентифицируются и авторизуются с использованием этой сессии.
Этот режим соответствует настройке:
:auth: opennebula
и используется по умолчанию.

Примечание

Этот режим используется для всех типов аутентификации через ядро OpenNebula, включая LDAP и SSH.

35.5.3.2. Внешняя аутентификация (remote)

В режиме удалённой аутентификации Sunstone не запрашивает у пользователя логин и пароль. Вместо этого:
  1. Веб-сервер (Apache, Nginx и др.) выполняет аутентификацию пользователя (например, через Kerberos, OAuth, клиентские сертификаты или базовую HTTP-аутентификацию).
  2. Веб-сервер передаёт имя аутентифицированного пользователя Sunstone через HTTP-заголовок (обычно HTTP_REMOTE_USER).
  3. Sunstone ищет пользователя с таким именем в базе OpenNebula и авторизует его без проверки пароля.
При этом значение пароля в базе данных OpenNebula не используется как секрет, а служит лишь идентификатором пользователя.
Чтобы перевести существующего пользователя на удалённую аутентификацию, необходимо изменить драйвер аутентификации пользователя на public и обновить пароль, указав внешний идентификатор пользователя:
$ oneuser chauth <логин> public "<логин>"
В качестве идентификатора, как правило, используется имя пользователя.
Создание нового пользователя с remote-аутентификацией:
$ oneuser create <логин> "<логин>" --driver public
Для активации этого метода необходимо изменить параметр :auth: в файле конфигурации (/etc/one/sunstone-server.conf):
:auth: remote
После изменения конфигурации требуется перезапустить сервис Sunstone:
# systemctl restart opennebula-sunstone
После этого:
  • форма входа в Sunstone не будет отображать поля имени пользователя и пароля;
  • вся информация о пользователе будет получаться из внешнего механизма аутентификации.
Удалённая аутентификация

Примечание

Вся ответственность за проверку подлинности пользователя лежит на внешнем компоненте (веб-сервере). Sunstone доверяет полученному имени пользователя без дополнительной проверки.

35.5.3.3. Аутентификация LDAP/AD

Аутентификация через LDAP или Active Directory настраивается на уровне ядра OpenNebula (см. раздел LDAP аутентификация).
В Sunstone не требуется специальной настройки: параметр :auth: должен оставаться равным opennebula:
:auth: opennebula
Пользователь вводит логин и пароль в стандартной форме входа, а проверка выполняется через LDAP-драйвер OpenNebula.

35.5.3.4. Двухфакторная аутентификация

Двухфакторная аутентификация (2FA) повышает безопасность входа в систему, требуя не только логин и пароль, но и динамический одноразовый код, генерируемый приложением-аутентификатором (например, Google Authenticator, FreeOTP, Microsoft Authenticator и др.).
Включение двухфакторной аутентификации:
  1. Войти в веб-интерфейс Sunstone.
  2. Перейти в раздел НастройкиАутентификация и нажать кнопку Настроить 2-факторную аутентификацию:
    Раздел Аутентификация
  3. В открывшемся окне нажать Зарегистрировать приложение аутентификации:
    Зарегистрировать приложение аутентификации
  4. Отсканировать QR-код с помощью приложения-аутентификатора и ввести шестизначный код подтверждения:
    Регистрация приложения аутентификации
При входе в систему после ввода логина и пароля на странице входа будет запрошен шестизначный код из приложения-аутентификатора:
Запрос кода двухфакторной аутентификации при входе в систему

Примечание

Чтобы отключить двухфакторную аутентификацию, необходимо перейти в раздел НастройкиАутентификация, нажать кнопку Настроить 2-факторную аутентификацию и в открывшемся окне нажать :
Отключение двухфакторной аутентификации