j1ngk3.sssd_ldap

Status Budowy Rola Galaxy

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

O projekcie

Install and configure SSSD for system-level LDAP authentication

Zainstaluj
ansible-galaxy install j1ngk3.sssd_ldap
Licencja
Unknown
Pobrania
735
Właściciel