j1ngk3.sssd_ldap
lae.system_ldap
Zainstaluj i skonfiguruj SSSD do uwierzytelniania LDAP na poziomie systemu na serwerze Active Directory obsługującym LDAP.
Zmienne roli
Przeczytaj defaults/main.yml
, aby zobaczyć listę wszystkich konfigurowalnych zmiennych roli. Domyślne ustawienia powinny wystarczyć dla większości użytkowników, więc omówimy tylko te, które muszą być zdefiniowane w tej sekcji.
Poniższe zmienne muszą być skonfigurowane do komunikacji z Twoim serwerem LDAP/AD:
Zmienna | Przykład | Opis |
---|---|---|
system_ldap_domain |
LDAP |
Etykieta dla sssd do identyfikacji tej konfiguracji/domeny. |
system_ldap_search_base |
OU=Idol Schools,DC=Aikatsu,DC=net |
Domyślny bazowy DN do wykonywania operacji LDAP użytkowników. |
system_ldap_uris |
- ldaps://ldap-tyo.example.aikatsu.net:636 - ldaps://ldap-ngo.example.aikatsu.net:636 |
Lista URI serwerów LDAP, z którymi sssd powinien się połączyć. |
system_ldap_bind_dn |
CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net |
Domyślny bind DN do wykonywania operacji LDAP. |
system_ldap_bind_password |
sunrise |
Token uwierzytelniający dla domyślnego bind DN. Aktalnie obsługiwane są tylko hasła w postaci czystego tekstu. |
system_ldap_access_filter_groups |
- CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net |
Lista grup DN uprawnionych do dostępu do bieżącego hosta. |
system_ldap_access_unix_groups |
- operations |
Powinno być w zasadzie takie samo jak system_ldap_access_filter_groups , ale używające nazw grup UNIX (zwykle CN). |
system_ldap_access_filter_users |
- hoshimiya.ichigo - nikaidou.yuzu |
Lista nazw użytkowników (przekazywanych do filtra (sAMAccountName=%s) domyślnie) uprawnionych do dostępu do bieżącego hosta. |
system_ldap_sudo_groups |
- operations |
Lista grup skonfigurowanych do umożliwienia używania sudo na bieżącym hoście. |
system_ldap_sudo_users |
- hoshimiya.ichigo |
Lista użytkowników skonfigurowanych do umożliwienia używania sudo na bieżącym hoście. |
Przykładowy Playbook
Poniżej znajduje się to, co zazwyczaj używamy w playbooku wielonajemnym:
---
- hosts: all
user: ansible
roles:
- lae.system_ldap
become: True
Znaleźć można również przykładowy playbook w katalogu testowym
Rozszerzone użycie
W tej sekcji playbook w powyższym bloku kodu to system_ldap.yml
.
Zobaczmy układ playbooka:
- system_ldap.yml
- inventory
- group_vars/
- all/
- main.yml
- starlight/
- main.yml
- host_vars/
- research-node01
- roles/
- requirements.yml
W tym układzie zazwyczaj możemy grupować kontrolę dostępu według grupy hostów lub poszczególnych hostów. Są pewne zmienne, które prawdopodobnie chcesz ustawić dla wszystkich hostów, w group_vars/all/main.yml
(lub po prostu group_vars/all
, jeśli nie używasz katalogu):
---
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: []
Tutaj używamy konta użytkownika do wyszukiwania i hasła (system_ldap_bind_*
), aby synchronizować się z serwerem LDAP przez SSL (z opcjonalnym serwerem LDAPS), umożliwiając grupie "operations" uwierzytelnienie oraz dostęp do uprawnień roota.
Zmienna pliku grupy starlight
może wyglądać tak:
---
system_ldap_allow_passwordauth_in_sshd: true
system_ldap_access_filter_users:
- hoshimiya.ichigo
system_ldap_sudo_users:
- hoshimiya.ichigo
To pozwala użytkownikowi o nazwie hoshimiya.ichigo
logować się na maszynach w grupie hostów starlight
, a także używać sudo na nich. Zmienne powyżej są porównywane z wartością sAMAccountName
z serwera LDAP-AD dla wszystkich użytkowników w grupie system_ldap_search_base
.
Możesz również określić grupy, ale musisz dostarczyć pełny DN dla zmiennej filtru grupy. Prawdopodobnie będziesz chciał również skopiować zmienne związane z grupami z all
. Dla innych zmiennych możesz użyć po prostu CN. Przykład:
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
Tutaj dodajemy grupę LDAP starlight-students
, ale tylko pozwalamy jej na logowanie.
Rozwój
Najpierw sklonuj i zrób gałąź lub forknij to repozytorium, wprowadź zmiany, komituj i złóż pull request.
Aby śledzić zmiany w ansible vault, dodaj .gitconfig do swojej konfiguracji git:
echo -e "[include]\n\tpath = ../.gitconfig" >> .git/config
Testowanie
vagrant box add debian/stretch64
vagrant up
vagrant provision
Licencja
MIT
ansible-galaxy install j1ngk3.sssd_ldap