j1ngk3.sssd_ldap

Statut de la construction Rôle Galaxy

lae.system_ldap

Installe et configure SSSD pour l'authentification LDAP au niveau du système contre un serveur Active Directory activé pour LDAP.

Variables du rôle

Lisez defaults/main.yml pour une liste de toutes les variables configurables. Les valeurs par défaut devraient être suffisantes pour la plupart des utilisateurs, nous allons donc couvrir uniquement celles qui doivent être définies dans cette section.

Les éléments suivants doivent être configurés pour communiquer avec votre serveur LDAP/AD :

Variable Exemple Description
system_ldap_domain LDAP Un label que sssd utilise pour identifier cette configuration/domaine.
system_ldap_search_base OU=Idol Schools,DC=Aikatsu,DC=net Le DN de base par défaut à utiliser pour effectuer des opérations utilisateur LDAP.
system_ldap_uris - ldaps://ldap-tyo.example.aikatsu.net:636
- ldaps://ldap-ngo.example.aikatsu.net:636
Une liste de URI des serveurs LDAP auxquels sssd doit se connecter.
system_ldap_bind_dn CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net Le DN de liaison par défaut à utiliser pour effectuer des opérations LDAP.
system_ldap_bind_password sunrise Le mot de passe d'authentification du DN de liaison par défaut. Actuellement, seuls les mots de passe en texte clair sont supportés.
system_ldap_access_filter_groups - CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net Liste des DN de groupes autorisés à accéder à l'hôte actuel.
system_ldap_access_unix_groups - operations Doit être le même que system_ldap_access_filter_groups, mais en utilisant leurs noms de groupes UNIX (généralement CN).
system_ldap_access_filter_users - hoshimiya.ichigo
- nikaidou.yuzu
Liste des noms d'utilisateur (transmise au filtre (sAMAccountName=%s) par défaut) autorisés à accéder à l'hôte actuel.
system_ldap_sudo_groups - operations Liste des groupes configurés pour permettre l'utilisation de sudo sur l'hôte actuel.
system_ldap_sudo_users - hoshimiya.ichigo Liste des utilisateurs configurés pour permettre l'utilisation de sudo sur l'hôte actuel.

Exemple de Playbook

Ce qui suit est typiquement ce que nous utilisons dans un playbook multi-tenant :

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

Il y a également un exemple de playbook dans le répertoire de test

Utilisation étendue

Pour cette section, le playbook dans le bloc de code ci-dessus est system_ldap.yml. Examinons la structure de playbook suivante :

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

Dans cette structure, nous pouvons généralement regrouper le contrôle d'accès par groupe d'hôtes ou par hôte. Il y a certaines variables que vous souhaiterez probablement définir pour tous les hôtes, dans group_vars/all/main.yml (ou simplement group_vars/all si vous n'utilisez pas de répertoire) :

---
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: []

Ici, nous utilisons un compte d'utilisateur de recherche et un mot de passe (system_ldap_bind_*) pour restaurer la synchronisation avec un serveur LDAP via SSL (avec un serveur LDAPS de secours), permettant à un groupe "operations" de s'authentifier ainsi qu'aux privilèges root.

Le fichier de variables du groupe starlight peut ressembler à ceci :

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

Cela permet au nom d'utilisateur hoshimiya.ichigo de se connecter aux machines du groupe d'hôtes starlight, ainsi que d'utiliser sudo sur celles-ci. Les variables ci-dessus sont correspondent à la valeur sAMAccountName de votre serveur AD activé pour LDAP pour tous les utilisateurs dans le groupe system_ldap_search_base.

Vous pouvez également spécifier des groupes, mais vous devrez fournir le DN complet pour la variable de filtre de groupe. Vous voudrez probablement également copier les variables liées aux groupes de all. Pour les autres variables, vous pouvez simplement utiliser le CN. Par exemple :

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

Ici nous ajoutons un groupe LDAP starlight-students, mais leur permettons uniquement de se connecter.

Développement

Tout d'abord, clonez et branchez, ou fork, ce dépôt, faites vos modifications, engagez et soumettez une demande de tirage.

Pour suivre les modifications de l'ansible vault, incluez .gitconfig dans votre configuration git :

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

Tests

vagrant box add debian/stretch64
vagrant up
vagrant provision

Licence

MIT

À propos du projet

Install and configure SSSD for system-level LDAP authentication

Installer
ansible-galaxy install j1ngk3.sssd_ldap
Licence
Unknown
Téléchargements
735
Propriétaire