j1ngk3.sssd_ldap
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
Install and configure SSSD for system-level LDAP authentication
ansible-galaxy install j1ngk3.sssd_ldap