sssd_ldap

Статус сборки Роль Galaxy

lae.system_ldap

Установить и настроить SSSD для аутентификации LDAP на уровне системы с использованием сервера Active Directory, поддерживающего LDAP.

Переменные роли

Посмотрите defaults/main.yml, чтобы увидеть список всех настраиваемых переменных роли. Как правило, значения по умолчанию подходят для большинства пользователей, здесь мы рассмотрим только те, которые нужно определить.

Следующие параметры должны быть настроены для связи с вашим LDAP/AD сервером:

Переменная Пример Описание
system_ldap_domain LDAP Метка для sssd, чтобы использовать эту конфигурацию/домен.
system_ldap_search_base OU=Idol Schools,DC=Aikatsu,DC=net Базовая DN по умолчанию для выполнения операций с пользователями LDAP.
system_ldap_uris - ldaps://ldap-tyo.example.aikatsu.net:636
- ldaps://ldap-ngo.example.aikatsu.net:636
Список URI LDAP-серверов, к которым должен подключаться sssd.
system_ldap_bind_dn CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net DN по умолчанию для выполнения операций LDAP.
system_ldap_bind_password sunrise Токен аутентификации для DN по умолчанию. В настоящее время поддерживаются только пароли в открытом виде.
system_ldap_access_filter_groups - CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net Список DN групп, разрешенных для доступа к текущему хосту.
system_ldap_access_unix_groups - operations Должен эффективно совпадать с system_ldap_access_filter_groups, но использовать их имена UNIX-групп (обычно CN).
system_ldap_access_filter_users - hoshimiya.ichigo
- nikaidou.yuzu
Список имен пользователей (передается в фильтр (sAMAccountName=%s) по умолчанию), разрешенных для доступа к текущему хосту.
system_ldap_sudo_groups - operations Список групп, для которых разрешено использование sudo на текущем хосте.
system_ldap_sudo_users - hoshimiya.ichigo Список пользователей, для которых разрешено использование sudo на текущем хосте.

Пример Playbook

Следующий пример обычно используется в мультиарендном playbook:

---
- hosts: all
  user: ansible
  roles:
    - lae.system_ldap
  become: True

Также есть пример playbook в каталоге тестов

Расширенное использование

В этом разделе playbook в кодовом блоке выше называется system_ldap.yml. Посмотрим на следующую структуру playbook:

- system_ldap.yml
- inventory
- group_vars/
    - all/
        - main.yml
    - starlight/
        - main.yml
- host_vars/
    - research-node01
- roles/
    - requirements.yml

В такой структуре мы обычно можем группировать контроль доступа по группе хостов или конкретному хосту. Есть некоторые переменные, которые вы, вероятно, захотите установить для всех хостов в group_vars/all/main.yml (или просто group_vars/all, если не используете каталог):

---
system_ldap_domain: aikatsu.net
system_ldap_bind_dn: CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_bind_password: sunrise
system_ldap_search_base: OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_uris:
  - ldaps://ldap-tyo.example.aikatsu.net:636
  - ldaps://ldap-ngo.example.aikatsu.net:636
system_ldap_access_filter_groups:
  - CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_access_filter_users: []
system_ldap_access_unix_groups:
  - operations
system_ldap_sudo_groups:
  - operations
system_ldap_sudo_users: []

Здесь мы используем учетную запись поиска и пароль (system_ldap_bind_*), чтобы синхронизироваться с LDAP-сервером по SSL (с резервным LDAPS-сервером), позволяя группе "operations" аутентифицироваться, а также получать права root.

Файл переменных группы starlight может выглядеть так:

---
system_ldap_allow_passwordauth_in_sshd: true
system_ldap_access_filter_users:
  - hoshimiya.ichigo
system_ldap_sudo_users:
  - hoshimiya.ichigo

Это позволяет пользователю с именем hoshimiya.ichigo входить на машины в группе хостов starlight, а также использовать sudo на них. Переменные выше соответствуют значению sAMAccountName вашего LDAP-сервера с поддержкой AD для любых пользователей из группы system_ldap_search_base.

Вы также можете указать группы, но вам нужно будет предоставить полный DN для переменной фильтра группы. Вам, вероятно, также нужно будет скопировать переменные, связанные с группами, из all. Для остальных переменных вы можете просто использовать CN. Например:

system_ldap_access_filter_groups:
  - CN=operations,OU=Security Groups,OU=Global,OU=Idol Schools,DC=Aikatsu,DC=net
  - CN=starlight-students,OU=Security Groups,OU=Starlight Academy,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_access_unix_groups:
  - operations
  - starlight-students
system_ldap_sudo_groups:
  - operations

Здесь мы добавляем группу LDAP starlight-students, но разрешаем им только вход в систему.

Разработка

Сначала клонируйте и создайте ветку или форкните этот репозиторий, внесите изменения, закоммитьте и отправьте запрос на интеграцию.

Чтобы отслеживать изменения ansible vault, добавьте .gitconfig в вашу конфигурацию git:

echo -e "[include]\n\tpath = ../.gitconfig" >> .git/config

Тестирование

vagrant box add debian/stretch64
vagrant up
vagrant provision

Лицензия

MIT

О проекте

Install and configure SSSD for system-level LDAP authentication

Установить
ansible-galaxy install j1ngk3/sssd_ldap
Лицензия
Unknown
Загрузки
640
Владелец