J'essaie d'intégrer mes serveurs CentOS 6.6 dans Active Directory. J'ai suivi ce de Red Hat en utilisant la configuration 3 (SSSD/Kerberos/LDAP). En utilisant un serveur Windows Server 2008 R2 comme contrôleur de domaine avec IMU activé, tout fonctionne parfaitement.
Cependant, lorsque j'utilise un serveur Windows Server 2012 R2 avec IMU activé, je suis en mesure d'acquérir un ticket kerberos, de rejoindre le domaine, de rechercher LDAP, mais dès que j'essaie de me connecter en tant qu'utilisateur AD à partir de la console, j'obtiens ce message d'erreur dans /var/log/messages :
Jun 6 11:12:30 test [sssd[krb5_child[4760]]] : Echec de la pré-authentification
Et /var/log/secure montre ces messages d'erreur :
Jun 6 11:12:15 test login : pam_sss(login:auth) : reçu pour l'utilisateur aduser@domain.local : 17 (Failure setting user credentials)
Jun 6 11:12:17 test login : FAILED LOGIN 1 FROM (null) FOR aduser@domain.local, Échec de l'authentification
Utilisation de getent passwd aduser
o getent group linuxgroup
revient avec succès.
J'ai essayé avec ce fichier sssd.conf :
\[sssd\]
config\_file\_version = 2
services = nss, pam
domains = domain.local
debug\_level = 5
\[domain/domain.local\]
id\_provider = ad
auth\_provider = ad
ad\_server = dc.domain.local
default\_shell = /bin/bash
fallback\_homedir = /home/%d/%u
cache\_credentials = false
ldap\_id\_mapping = false
Puis j'ai lu ce rapport de bug. J'ai donc modifié mon fichier sssd.conf comme suit :
\[sssd\]
config\_file\_version = 2
reconnection\_retries = 2
services = nss,pam
debug\_level = 5
domains = domain.local
\[nss\]
debug\_level = 5
\[pam\]
debug\_level = 5
\[domain/domain.local\]
id\_provider = ldap
auth\_provider = krb5
chpass\_provider = krb5
debug\_level = 5
ldap\_uri = ldap://dc.domain.local/
ldap\_sasl\_mech = GSSAPI
ldap\_schema = rfc2307bis
ldap\_user\_search\_base = dc=domain,dc=local
ldap\_user\_object\_class = user
ldap\_user\_home\_directory = unixHomeDirectory
ldap\_user\_principal = userPrincipalName
ldap\_group\_search\_base = dc=domain,dc=local
ldap\_group\_object\_class = group
ldap\_access\_order = expire
ldap\_account\_expire\_policy = ad
ldap\_force\_upper\_case\_realm = true
ldap\_referrals = false
krb5\_server = dc.domain.local
krb5\_realm = DOMAIN.LOCAL
krb5\_canonicalize = false
enumerate = false
cache\_credentials = false
J'ai effacé le cache de mon SSSD et redémarré le service. Pourtant, je ne parviens pas à me connecter.
J'obtiens maintenant cette erreur dans /var/log/messages :
Jun 6 11:21:43 test [sssd[krb5_child[1546]]] : Permission refusée
Je vois cette erreur dans /var/log/sssd/krb5_child.log :
(Sat Jun 6 11:21:43 2015) [[sssd[krb5_child[1387]]]] [sss_get_ccache_name_for_principal] (0x2000) : krb5_cc_cache_match failed : [-1765328243][Impossible de trouver le principal du client aduser@DOMAIN.LOCAL dans la collection de cache].
(Sat Jun 6 11:21:43 2015) [[sssd[krb5_child[1387]]]] [create_ccache] (0x0020) : 575 : [13][Permission refusée]
Maintenant, c'est là que ça devient étrange. En tant que root, si je me connecte à n'importe quel utilisateur du domaine AD, cela fonctionne et le répertoire personnel est créé automatiquement. Je suis sur le point de reconnaître ma défaite et de m'en tenir au DC 2k8.