j1ngk3.sssd_ldap

Estado de Construcción Rol Galaxy

lae.system_ldap

Instala y configura SSSD para la autenticación LDAP a nivel de sistema contra un servidor Active Directory habilitado para LDAP.

Variables del Rol

Lee defaults/main.yml para una lista de todas las variables del rol que se pueden configurar. Dado que las configuraciones por defecto deberían ser suficientes para la mayoría de los usuarios, cubriremos solo las que necesitan ser definidas en esta sección.

Lo siguiente debe ser configurado para comunicarse con tu servidor LDAP/AD:

Variable Ejemplo Descripción
system_ldap_domain LDAP Una etiqueta que sssd usará para identificar esta configuración/dominio.
system_ldap_search_base OU=Idol Schools,DC=Aikatsu,DC=net El DN base por defecto que se usará para realizar operaciones LDAP de usuario.
system_ldap_uris - ldaps://ldap-tyo.example.aikatsu.net:636
- ldaps://ldap-ngo.example.aikatsu.net:636
Una lista de URIs de los servidores LDAP a los que sssd debe conectarse.
system_ldap_bind_dn CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net El DN de enlace por defecto que se usará para realizar operaciones LDAP.
system_ldap_bind_password sunrise El token de autenticación del DN de enlace por defecto. Solo se admiten contraseñas en texto claro actualmente.
system_ldap_access_filter_groups - CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net Lista de DNs de grupo autorizados para acceder al host actual.
system_ldap_access_unix_groups - operations Debería ser efectivamente lo mismo que system_ldap_access_filter_groups, pero utilizando sus nombres de grupo UNIX (usualmente CN).
system_ldap_access_filter_users - hoshimiya.ichigo
- nikaidou.yuzu
Lista de nombres de usuario (pasados al filtro (sAMAccountName=%s) por defecto) autorizados para acceder al host actual.
system_ldap_sudo_groups - operations Lista de grupos configurados para permitir el uso de sudo en el host actual.
system_ldap_sudo_users - hoshimiya.ichigo Lista de usuarios configurados para permitir el uso de sudo en el host actual.

Ejemplo de Playbook

Lo siguiente es típicamente lo que usamos en un playbook multi-inquilino:

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

También hay un ejemplo de playbook en el directorio de pruebas

Uso Extendido

Para esta sección, el playbook en el bloque de código anterior es system_ldap.yml. Veamos el siguiente diseño de playbook:

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

En este diseño, normalmente podemos agrupar el control de acceso por grupos de hosts o por host. Hay algunas variables que probablemente querrás configurar en todos los hosts, en group_vars/all/main.yml (o solo group_vars/all si no usas un directorio):

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

Aquí estamos usando una cuenta de usuario de búsqueda y una contraseña (system_ldap_bind_*) para mantener la sincronización con un servidor LDAP a través de SSL (con un servidor LDAPS de respaldo), permitiendo que un grupo de "operaciones" se autentique así como los privilegios de root.

El archivo de variables del grupo starlight puede verse así:

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

Esto permite que el nombre de usuario hoshimiya.ichigo inicie sesión en las máquinas en el grupo de hosts starlight, así como usar sudo en ellas. Las variables anteriores se comparan con el valor sAMAccountName de tu servidor AD habilitado para LDAP para cualquier usuario en el grupo system_ldap_search_base.

También puedes especificar grupos, pero necesitarás proporcionar el DN completo para la variable de filtro de grupo. También querrás copiar las variables relacionadas con grupos de all. Para las otras variables solo puedes usar el CN. Ejemplo:

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

Aquí añadimos un grupo LDAP starlight-students, pero solo les permitimos iniciar sesión.

Desarrollo

Primero clona y crea una rama, o bifurca, este repositorio, realiza tus cambios, compromete y envía una solicitud de extracción.

Para hacer un seguimiento de los cambios de ansible vault, incluye .gitconfig en tu configuración de git:

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

Pruebas

vagrant box add debian/stretch64
vagrant up
vagrant provision

Licencia

MIT

Acerca del proyecto

Install and configure SSSD for system-level LDAP authentication

Instalar
ansible-galaxy install j1ngk3.sssd_ldap
Licencia
Unknown
Descargas
735
Propietario