User Tools

Site Tools


Sidebar

cn:ccr:aai:howto:rhel8-ldap-auth

RHEL8 LDAP AuthN & AuthZ

Le informazioni presenti nell'infrastruttura lDAP di INFN-AAI, possono essere utilizzate anche per effettuare le operazioni di Autenticazione ed Autorizzazione da parte di sistemi UNIX. In questa guida viene descritta una possibile configurazione minimale di un sistema basato su RHEL8, che utilizza il demone SSSD.

  • Le informazioni di utenti/gruppi (attributi Posix) vengono recuperate via LDAP dal ramo di sede (nell'esempio viene utilizzato quello di Napoli: dc=na,dc=infn,dc=it).
  • L'autenticazione, via bind LDAP, viene invece effettuata sul ramo nazionale.

Installazione dei pacchetti

dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir nss-pam-ldapd openssl-perl

Configurazione certificati CA e parametri default per openldap

I certificati dei server LDAP nazionali sono attualmente firmati da Sectigo. Copiare i certificati CA nel file:

 /etc/openldap/cacerts/sectigo-ca.pem
 (creare la directory /etc/openldap/cacerts/ se non esiste) 

Generare l'hash del certificato con il comando:

 c_rehash /etc/openldap/cacerts/

Editare il file /etc/openldap/ldap.conf:

URI    ldap://ds.infn.it
BASE   ou=people,dc=na,dc=infn,dc=it
TLS_CACERTDIR   /etc/openldap/cacerts

Configurazione SSSD

Impostare il profilo SSSD con authselect. L'opzione with-mkhomedir fa in modo che la home directory dell'utente venga automaticamente creata al primo login:

authselect select sssd with-mkhomedir --force

Creare il file /etc/sssd/sssd.conf:

[domain/default]
id_provider = ldap
ldap_uri = ldap://ds.infn.it
ldap_user_search_base = ou=people,dc=na,dc=infn,dc=it
ldap_group_search_base = ou=group,dc=na,dc=infn,dc=it
ldap_id_use_start_tls = True
cache_credentials = True
ldap_tls_cacertdir = /etc/openldap/cacerts
ldap_tls_reqcert = demand

# L'autenticazione viene demandata alle PAM-LDAP
# SSSD non può utilizzare due server/rami ldap diversi per separare la parte di identity provider
# da quella di authorization provider 
auth_provider = proxy
proxy_pam_target = sssdproxyldap

[sssd]
services = nss, pam
domains = default

Impostare i permessi del file:

chmod 600 /etc/sssd/sssd.conf

Abilitare i servizi sssd e oddjobd:

systemctl enable sssd.service
systemctl enable oddjobd.service

Configurazione PAM-LDAP

Creare il file /etc/pam.d/sssdproxyldap:

auth          required      pam_ldap.so
account       required      pam_ldap.so
password      required      pam_ldap.so
session       required      pam_ldap.so

Creare (o editare) il file /etc/nslcd.conf:

# L'autenticazione dell'utente viene fatta con un bind LDAP sul ramo nazionale 
uid nslcd
gid ldap
uri ldap://ds.infn.it
base ou=people,dc=infn,dc=it
ssl start_tls
tls_cacertdir /etc/openldap/cacerts
filter passwd (objectClass=infnAccount)

Abilitare il demone nslcd:

systemctl enable nslcd.service

Restart dei servizi

systemctl restart sssd oddjobd nslcd
cn/ccr/aai/howto/rhel8-ldap-auth.txt · Last modified: 2021/10/01 11:16 by resposit@infn.it