Как настроить множественные домены?

Настройка конфигурации Keystone

  1. В /etc/keystone/keystone.conf добавьте следующие параметры:

    [identity]
    driver = keystone.identity.backends.sql.Identity
    domain_specific_drivers_enabled = True
    domain_config_dir = /etc/keystone/domains
    
  2. Создайте каталог /etc/keystone/domains:

    mkdir /etc/keystone/domains
    
  3. Создайте конфигурационный файл с именем keystone.DOMAIN_NAME.conf, где DOMAIN_NAME - имя домена в OpenStack. К примеру, если домен планируется назвать как «ACME», то:

    > /etc/keystone/domains/keystone.ACME.conf
    
  4. Укажите следующие параметры в конфигурацию:

    [identity]
    driver = keystone.identity.backends.ldap.Identity
    
    [ldap]
    url = ldap://LDAP_IP
    user = cn=admin,cn=Users,dc=example,dc=com
    password = openstack
    suffix = dc=example,dc=com
    use_dumb_member = False
    allow_subtree_delete = False
    
    user_tree_dn = cn=Users,dc=example,dc=com
    user_objectclass = InetOrgPerson
    
    group_tree_dn = cn=Groups,dc=example,dc=com
    group_objectclass = groupOfNames
    
    user_allow_create = False
    user_allow_update = False
    user_allow_delete = False
    
    group_allow_create = False
    group_allow_update = False
    group_allow_delete = False
    
  5. В Active Directory и Samba 4 используются другие объектные классы для пользователя и группы:

    [ldap]
    ...
    user_objectclass = person
    group_objectclass = group
    

    Примечание

    С примером настройки интеграции с Active Directory (AD) можно ознакомиться здесь.

  6. Укажите маппинг атрибутов LDAP и видов данных Keystone:

    user_id_attribute = cn
    user_name_attribute = cn
    user_mail_attribute = mail
    user_pass_attribute = userPassword
    group_id_attribute = cn
    group_name_attribute = cn
    group_member_attribute =
    group_desc_attribute = description
    group_filter =
    
  7. Перезапустите службу keystone:

    systemctl restart keystone
    

Настройка данных Keystone

  1. Настройте окружение для входа в OpenStack:

    source admin-openrc
    
  2. Создайте домен ACME:

    openstack domain create ACME
    
  3. Попробуйте получить список пользователей домена ACME:

    openstack user list --domain ACME
    
    +------------------------------------------------------------------+----------------+
    | ID                                                               | Name           |
    +------------------------------------------------------------------+----------------+
    | ae7a1e0c022ab806247cb9dc69bd1bd0f157f9d87161e5e20f64f554e418cb8d | admin          |
    | 2b19a3543055bab1443e52385facaf652462199c346731c667f226396c7ba6a1 | Guest          |
    +------------------------------------------------------------------+----------------+
    
  4. Создайте проект admin в домене ACME:

    openstack project create --domain ACME admin
    
  5. Добавьте пользователя admin с правами администратора на проект admin в домене ACME:

    openstack role add --user-domain ACME --project-domain ACME --project admin --user admin admin
    
  6. Дайте права администратора пользователю admin на домен ACME:

    openstack role add --user-domain ACME --user admin --domain ACME admin
    
  7. Попробуйте войти в облако через веб-интерфейс, используя эти учетные данные.