> For the complete documentation index, see [llms.txt](https://kb.pvhostvm.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.pvhostvm.ru/hostvm-server/installation-guide/integraciya-hostvm-manager-c-vneshnimi-sluzhbami-autentifikacii/nastroika-edinogo-vkhoda-sso-v-hostvm-manager-cherez-ldap-i-kerberos.md).

# Настройка единого входа (SSO) в HOSTVM Manager через LDAP и Kerberos

{% hint style="warning" %}
Функции единого входа на портал и на виртуальные машины являются взаимоисключающими. При активации входа на портал вход на ВМ блокируется, так как для делегирования учетных данных требуется прямой ввод пароля.
{% endhint %}

### Требования

1. Вход на портал управления должен осуществляться по полному доменному имени (FQDN), содержащему домен, с которым будет настроена связь (пример: `engine.hostvm.test`). При отсутствии домена вход не будет работать.
2. HOSTVM Manager должен обязательно разрешаться по полному имени для пользователей домена.
3. Между контроллером домена и HOSTVM Manager должна быть синхронизирована время.
4. Вход по протоколу Kerberos возможен только с АРМ, введённой в данный домен, и с предварительно настроенного на ней браузера.

### Подготовка контроллера домена для работы с HOSTVM Manager

#### 1. Создание сервисной учетной записи

1. Создайте учетную запись (УЗ) в Active Directory.

```
Пример имени: hostvm
```

Задайте параметры учетной записи:

* Имя - `hostvm`
* Имя входа пользователя - `hostvm`

Настройте параметры пароля:

* Отключите «Требовать смену пароля при следующем входе в систему»
* Включите «Запретить смену пароля пользователем»
* Включите «Срок действия пароля не ограничен»

Откройте свойства учетной записи, перейдите на вкладку «Учетная запись» → раздел «Параметры учетной записи» и включите:

* «Данная учетная запись поддерживает 128-разрядное шифрование»
* «Данная учетная запись поддерживает 256-разрядное шифрование»

На основе этих параметров создаётся keytab-файл. Если параметры не указаны, управляющая машина не сможет расшифровать билеты.

#### 2. Создание keytab-файла для Apache

Выполните команду на контроллере домена (Windows) от имени администратора:

```
ktpass -princ HTTP/engine.hostvm.test@HOSTVM.TEST -mapuser HOSTVM\hostvm -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass Passw0rd -out C:\Temp\http.keytab
```

Где замените на свои значения:

* engine.hostvm.test — полное доменное имя сервера HOSTVM Manager
* @HOSTVM.TEST — домен Kerberos (должен быть в верхнем регистре)
* HOSTVM\hostvm — учётная запись AD, к которой будет привязан principal (домен\имя\_пользователя)
* Passw0rd — пароль учётной записи, указанной в `-mapuser`. Должен совпадать с паролем сервисной УЗ в AD
* C:\Temp\http.keytab — путь для сохранения созданного keytab-файла и его имя

#### 3. Перемещение keytab-файла на управляющую машину в среду виртуализации

Скопируйте созданный keytab-файл, например, с помощью scp:

```
scp http.keytab root@engine.hostvm.test:/etc/httpd
```

### Настройка HOSTVM Manager

1. **Установка прав доступа на файл keytab:**

```
chown apache /etc/httpd/http.keytab
chmod 400 /etc/httpd/http.keytab
```

2. **Установка необходимых пакетов**

```
dnf install -y ovirt-engine-extension-aaa-misc ovirt-engine-extension-aaa-ldap mod_auth_gssapi mod_session
```

3. Копирование конфигурации Apache для SSO

```
cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/aaa/ovirt-sso.conf /etc/httpd/conf.d/ovirt-sso.conf
```

4. Копирование шаблонов конфигурации (с указанием имени домена в названии файла)

Файл конфигурации LDAP

```
cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/aaa/profile1.properties /etc/ovirt-engine/aaa/hostvm.test.properties
```

Файл конфигурации авторизации

```
cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/hostvm.test-authz.properties
```

Файл конфигурации аутентификации

```
cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/extensions.d/profile1-http-authn.properties /etc/ovirt-engine/extensions.d/hostvm.test-http-authn.properties
```

Файл конфигурации проверки подлинности

```
cp /usr/share/ovirt-engine-extension-aaa-ldap/examples/ad-sso/extensions.d/profile1-http-mapping.properties /etc/ovirt-engine/extensions.d/hostvm.test-http-mapping.properties
```

5. **Редактирование файла конфигурации LDAP**

```
nano /etc/ovirt-engine/aaa/hostvm.test.properties
```

Пример параметров (укажите свои значения):

```
vars.forest = hostvm.test
vars.user = hostmv
vars.password = Passw0rd
```

6. **Редактирование файла конфигурации аунтификации**

```
nano /etc/ovirt-engine/extensions.d/hostvm.test-http-authn.properties
```

Приведите параметры к виду:

```
ovirt.engine.extension.name = hostvm.test-http-authn
ovirt.engine.aaa.authn.profile.name = hostvm.test-http
ovirt.engine.aaa.authn.authz.plugin = hostvm.test-authz
ovirt.engine.aaa.authn.mapping.plugin = hostvm.test-http-mapping
```

7. **Редактирование файла конфигурации авторизации**

```
nano /etc/ovirt-engine/extensions.d/hostvm.test-authz.properties
```

Приведите указанные параметры к виду:

<pre><code><strong>ovirt.engine.extension.name = hostvm.test-authz
</strong>config.profile.file.1 = ../aaa/hostvm.test.properties
</code></pre>

8. **Редактирование файла конфигурации проверка подлинности (mapping)**

```
nano /etc/ovirt-engine/extensions.d/hostvm.test-http-mapping.properties
```

Приведите указанный параметр к виду:

```
ovirt.engine.extension.name = hostvm.test-http-mapping
```

9. Установка прав доступа на файлы конфигурации

```
chown ovirt:ovirt /etc/ovirt-engine/aaa/*
chown ovirt:ovirt /etc/ovirt-engine/extensions.d/*
chmod 600 /etc/ovirt-engine/aaa/hostvm.test.properties
chmod 640 /etc/ovirt-engine/extensions.d/hostvm.test*
```

10. **Перезапустите служб**

```
systemctl restart httpd.service
systemctl restart ovirt-engine.service
```

### Предоставление прав для пользователей

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

1. Войдите на портал администратора, например под учетной записью `admin@internal`.
2. Для назначения прав пользователям домена следуйте инструкции «[Назначение ролей пользователям](/hostvm-server/rukovodstvo-po-administrirovaniyu/upravlenie-platformoi/roli-i-polnomochiya-dlya-upravleniya-infrastrukturoi/razresheniya-i-roli/naznachenie-rolei-polzovatelyam.md)»:

* выберите подключённый домен;
* найдите необходимые учётные записи;
* предоставьте им соответствующие права.

### Настройка браузера на клиенте для SSO-аутентификации

Для корректного входа на веб-портал HOSTVM Manager с использованием аутентификации по протоколу Kerberos необходимо выполнить дополнительную настройку браузера на клиентских устройствах.

#### Настройка для браузера Mozilla Firefox

1. Откройте браузер и в адресной строке введите `about:config`.
2. Добавьте полное доменное имя HOSTVM Manager (например, `engine.hostvm.test`) в значения следующих параметров:

```
network.negotiate-auth.trusted-uris
network.automatic-ntlm-auth.trusted-uris
```

Пример:

```
engine.hostvm.test
```

#### Настройка для браузера Microsoft Edge (и Internet Explorer)

1. Нажмите «Пуск», введите «Свойства браузера» и откройте соответствующее окно.
2. Перейдите на вкладку «Безопасность».
3. Выделите зону «Местная интрасеть» и нажмите кнопку «Сайты»
4. Нажмите «Дополнительно» и добавьте в зону используемый домен. Для задания шаблона используйте символ `*`.

```
Пример: *.hostvm.test
```

5. Сохраните настройки, нажимая «ОК» во всех открытых окнах.

#### Настройка для браузера Google Chrome

Запустите браузер из командной строки со следующими параметрами:

```
chrome.exe --auth-server-whitelist="*.hostvm.test" --auth-negotiate-delegate-whitelist="*.hostvm.test"
```

Для постоянного применения можно создать ярлык браузера и в поле «Объект» добавить указанные параметры после пути к исполняемому файлу.

### Настройка защищенного соединения startTLS между HOSTVM Manager и контролером домена

1. Получите корневой сертификат центра сертификации или самоподписанный сертификат контроллера Active Directory.
2. Загрузите сертификат в формате **.crt** на HOSTVM Managerв директорию /root.
3. Импортируйте сертификат в хранилище доверенных корневых ЦС выполнив команду на управляющей машине

```
keytool -importcert -noprompt -trustcacerts -alias hostvm-root-ca -file /root/hostvm_Root_CA.crt -keystore /etc/ovirt-engine/aaa/hostvm-ca.jks -storepass Passw0rd
```

Где замените на свои значения:

* hostvm-root-ca — псевдоним сертификата в хранилище
* /root/hostvm\_Root\_CA.crt — путь и имя скопированного сертификата
* hostvm-ca.jks - имя хранилища ключей
* Passw0rd — пароль для доступа к хранилищу

4. Убедитесь, что SRV-записи успешно определяются

```
dig _ldap._tcp.gc._msdcs.hostvm.test SRV
dig _ldap._tcp.hostvm.test SRV
```

Замените `hostvm.test` на ваше доменное имя.

5. Откройте файл `/etc/ovirt-engine/aaa/hostvm.test.properties` (вместо `hostvm.test` укажите имя вашего домена). Раскомментируйте и приведите к следующему виду строки:

```
pool.default.ssl.startTLS = true
pool.default.ssl.truststore.file = /etc/ovirt-engine/aaa/hostvm-ca.jks
pool.default.ssl.truststore.password = Passw0rd
```

Где замените на свои значения исполлуюемые на шаге 3:

* hostvm-ca.jks — псевдоним сертификата в хранилище
* Passw0rd — пароль для доступа к хранилищу

6. Перезапустите службу

```
systemctl restart ovirt-engine
```

7. Убедитесь, что пользователи из LDAP/AD могут успешно аутентифицироваться в HOSTVM Manager.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://kb.pvhostvm.ru/hostvm-server/installation-guide/integraciya-hostvm-manager-c-vneshnimi-sluzhbami-autentifikacii/nastroika-edinogo-vkhoda-sso-v-hostvm-manager-cherez-ldap-i-kerberos.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
