j1ngk3.sssd_ldap

Build-Status Galaxy Rolle

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

Über das Projekt

Install and configure SSSD for system-level LDAP authentication

Installieren
ansible-galaxy install j1ngk3.sssd_ldap
GitHub Repository
Lizenz
Unknown
Downloads
735
Besitzer