Product SiteDocumentation Site

31.5. Аутентификация пользователей

По умолчанию OpenNebula работает с внутренней системой аутентификации (пользователь/пароль). Но можно включить внешний драйвер аутентификации.

31.5.1. LDAP аутентификация

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

Важно

На сервере LDAP должна быть настроена отдельная учётная запись с правами чтения LDAP. От данной учетной записи будет выполняться подключение к серверу каталогов.
Для включения LDAP аутентификации необходимо в файл /etc/one/oned.conf добавить строку DEFAULT_AUTH = "ldap":
…
AUTH_MAD = [
    EXECUTABLE = "one_auth_mad",
    AUTHN = "ssh,x509,ldap,server_cipher,server_x509"
]

DEFAULT_AUTH = "ldap"
…

Важно

В файле /etc/one/sunstone-server.conf для параметра :auth должно быть указано значение opennebula:
:auth: opennebula
Ниже приведён пример настройки аутентификации в Active Directory (домен test.alt).
Для подключения к Active Directory в файле /etc/one/auth/ldap_auth.conf необходимо указать:
  • :user — пользователь AD с правами на чтение (пользователь указывается в формате opennebula@test.alt);
  • :password — пароль пользователя;
  • :host — IP-адрес или имя сервера AD (имя должно разрешаться через DNS или /etc/hosts);
  • :base — базовый DN для поиска пользователя;
  • :user_field — для этого параметра следует установить значение sAMAccountName;
  • :rfc2307bis — для этого параметра следует установить значение true.
Пример файла /etc/one/auth/ldap_auth.conf:
 server 1:
    :user: 'opennebula@test.alt'
    :password: 'Pa$$word'
    :auth_method: :simple
    :host: dc.test.alt
    :port: 389
    :base: 'dc=test,dc=alt'
    :user_field: 'sAMAccountName'
    :mapping_generate: false
    :mapping_timeout: 300
    :mapping_filename: server1.yaml
    :mapping_key: GROUP_DN
    :mapping_default: 100
    :rfc2307bis: true
:order:
    - server 1

Примечание

В параметре :order указывается порядок, в котором будут опрошены настроенные серверы. Элементы в :order обрабатываются по порядку, пока пользователь не будет успешно аутентифицирован или не будет достигнут конец списка. Сервер, не указанный в :order, не будет опрошен.

Примечание

Пример файла /etc/one/auth/ldap_auth.conf для настройки аутентификации в домене FreeIPA (домен example.test):
 server 1:
    :user: 'uid=admin,cn=users,cn=accounts,dc=example,dc=test'
    :password: '12345678'
    :auth_method: :simple
    :host: ipa.example.test
    :port: 389
    :base: 'dc=example,dc=test'
    :user_field: 'uid'
    :mapping_generate: false
    :mapping_timeout: 300
    :mapping_filename: server1.yaml
    :mapping_key: GROUP_DN
    :mapping_default: 100
    :rfc2307bis: true
:order:
    - server 1
После того как пользователь AD авторизуется в веб-интерфейсе OpenNebula, у администратора появится возможность изменять его настройки:
Пользователи AD
Новых пользователей можно автоматически включать в определенную группу/группы. Для этого создается сопоставление группы AD с существующей группой OpenNebula. Эта система использует файл сопоставления, указанный в параметре :mapping_file (файл должен находиться в каталоге /var/lib/one/).
Файл сопоставления может быть сгенерирован автоматически с использованием данных в шаблоне группы, который определяет, какая группа AD сопоставляется с этой конкретной группой (для параметра :mapping_generate должно быть установлено значение true). Если в шаблон группы добавить строку:
GROUP_DN="CN=office,CN=Users,DC=test,DC=alt"
Шаблон группы
И в файле /etc/one/auth/ldap_auth.conf для параметра :mapping_key установить значение GROUP_DN, то поиск DN сопоставляемой группы будет осуществляться в этом параметре шаблона. В этом случае файл /var/lib/one/server1.yaml будет сгенерирован со следующим содержимым:
---
CN=office,CN=Users,DC=test,DC=alt: '100'
и пользователи из группы AD office, будут сопоставлены с группой ALT (ID=100).
Можно отключить автоматическую генерацию файла сопоставления, установив значение :mapping_generate равным false, и выполнить сопоставление вручную. Файл сопоставления имеет формат YAML и содержит хеш, где ключ — это DN группы AD, а значение — идентификатор группы OpenNebula. Например, если содержимое файла /var/lib/one/server1.yaml:
CN=office,CN=Users,DC=test,DC=alt: '100'
CN=Domain Admins,CN=Users,DC=test,DC=alt: '101'
то пользователи из группы AD office, будут сопоставлены с группой ALT (ID=100), а из группы AD Domain Admin — с группой Admin (ID=101):
Сопоставление групп AD с группами OpenNebula