j1ngk3.sssd_ldap
lae.system_ldap
Installiere und konfiguriere SSSD für die systemweite LDAP-Authentifizierung gegen einen LDAP-fähigen Active Directory-Server.
Rolleneinstellungen
Lies defaults/main.yml
für eine Liste aller konfigurierbaren Rolleneinstellungen. Da die
Standardwerte für die meisten Benutzer ausreichen sollten, werden nur die Einstellungen behandelt, die in diesem Abschnitt definiert werden müssen.
Folgendes muss konfiguriert werden, um mit deinem LDAP/AD-Server zu kommunizieren:
Variable | Beispiel | Beschreibung |
---|---|---|
system_ldap_domain |
LDAP |
Ein Bezeichner für SSSD, um diese Konfiguration/Domäne zu identifizieren. |
system_ldap_search_base |
OU=Idol Schools,DC=Aikatsu,DC=net |
Der Standardbasis-DN für LDAP-Benutzervorgänge. |
system_ldap_uris |
- ldaps://ldap-tyo.example.aikatsu.net:636 - ldaps://ldap-ngo.example.aikatsu.net:636 |
Eine Liste von URIs der LDAP-Server, mit denen SSSD sich verbinden sollte. |
system_ldap_bind_dn |
CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net |
Der Standardbind-DN für LDAP-Vorgänge. |
system_ldap_bind_password |
sunrise |
Das Authentifizierungstoken des Standardbind-DNs. Derzeit werden nur Klartext-Passwörter unterstützt. |
system_ldap_access_filter_groups |
- CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net |
Liste der Gruppen-DNs, die autorisiert sind, auf den aktuellen Host zuzugreifen. |
system_ldap_access_unix_groups |
- operations |
Sollte effektiv dasselbe sein wie system_ldap_access_filter_groups , jedoch mit den UNIX-Gruppennamen (normalerweise CN). |
system_ldap_access_filter_users |
- hoshimiya.ichigo - nikaidou.yuzu |
Liste von Benutzernamen, die autorisiert sind, auf den aktuellen Host zuzugreifen. |
system_ldap_sudo_groups |
- operations |
Liste von Gruppen, die konfiguriert werden, um die Verwendung von sudo auf dem aktuellen Host zu erlauben. |
system_ldap_sudo_users |
- hoshimiya.ichigo |
Liste von Benutzern, die konfiguriert werden, um die Verwendung von sudo auf dem aktuellen Host zu erlauben. |
Beispiel-Playbook
Das Folgende ist typischerweise das, was wir in einem Multi-Tenant-Playbook verwenden:
---
- hosts: all
user: ansible
roles:
- lae.system_ldap
become: True
Es gibt auch ein Beispiel-Playbook im Testverzeichnis
Erweiterte Nutzung
Für diesen Abschnitt ist das Playbook im obigen Codeblock system_ldap.yml
.
Schauen wir uns das folgende Playbook-Layout an:
- system_ldap.yml
- inventory
- group_vars/
- all/
- main.yml
- starlight/
- main.yml
- host_vars/
- research-node01
- roles/
- requirements.yml
In diesem Layout können wir typischerweise den Zugriff pro Hostgruppe oder pro Host gruppieren. Es gibt einige Variablen, die du wahrscheinlich für alle Hosts festlegen möchtest, in group_vars/all/main.yml
(oder einfach group_vars/all
, wenn du kein Verzeichnis verwendest):
---
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: []
Hier verwenden wir ein Suchbenutzerkonto und Passwort (system_ldap_bind_*
), um mit einem LDAP-Server über SSL im Einklang zu bleiben (mit einem Failover-LDAPS-Server), und erlauben einer "Operations"-Gruppe sich zu authentifizieren sowie Root-Rechte zu nutzen.
Die Variablendatei der starlight
-Gruppe könnte folgendermaßen aussehen:
---
system_ldap_allow_passwordauth_in_sshd: true
system_ldap_access_filter_users:
- hoshimiya.ichigo
system_ldap_sudo_users:
- hoshimiya.ichigo
Dies ermöglicht dem Benutzernamen hoshimiya.ichigo
, sich auf den Maschinen der
starlight
-Hostgruppe anzumelden und sudo zu verwenden. Die oben genannten Variablen werden mit dem sAMAccountName
-Wert von deinem LDAP-fähigen AD-Server für alle Benutzer in der system_ldap_search_base
-Gruppe verglichen.
Du kannst auch Gruppen angeben, musst jedoch den vollständigen DN für die Gruppenfiltervariable angeben. Du möchtest wahrscheinlich auch die gruppenbezogenen Variablen von all
kopieren. Für die anderen Variablen kannst du einfach den CN verwenden. Zum Beispiel:
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
Hier fügen wir eine starlight-students
LDAP-Gruppe hinzu, aber erlauben ihnen nur die Anmeldung.
Entwicklung
Zuerst klone und branch, oder fork, dieses Repository, mache deine Änderungen, commit und reiche eine Pull-Anfrage ein.
Um die Änderungen am Ansible Vault zu verfolgen, füge .gitconfig in deine Git-Konfiguration ein:
echo -e "[include]\n\tpath = ../.gitconfig" >> .git/config
Tests
vagrant box add debian/stretch64
vagrant up
vagrant provision
Lizenz
MIT
Install and configure SSSD for system-level LDAP authentication
ansible-galaxy install j1ngk3.sssd_ldap