J'ai un problème très similaire à celui décrit dans ce fil sur CentOS 6.3 s'authentifiant contre un AD 2008R2 DC.
Voici mon krb5.conf, je sais pertinemment que XXXXXXX.LOCAL est le vrai nom de domaine:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = XXXXXXX.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
verify_ap_req_nofail = false
[realms]
XXXXXXX.LOCAL = {
kdc = ad1.XXXXXXX.local
kdc = ad2.XXXXXXX.local
admin_server = ad1.XXXXXXX.local
default_domain = XXXXXXX.LOCAL
}
[domain_realm]
.XXXXXXX.local = XXXXXXX.LOCAL
XXXXXXX.local = XXXXXXX.LOCAL
.XXXXXXX.com = XXXXXXX.LOCAL
XXXXXXX.com = XXXXXXX.LOCAL
Quand je fais un:
kinit [email protected]
Tout fonctionne comme prévu, klist -e retourne cependant les détails qu'il devrait quand j'essaye de:
nom d'utilisateur
Le sssd krb5_child.log montre ce qui suit:
[unpack_buffer] (0x0100): cmd [241] uid [10002] gid [10002] validate [false] offline [false] UPN [[email protected]]
[unpack_buffer] (0x0100): ccname: [FILE:/tmp/krb5cc_10002_XXXXXX] keytab: [/etc/krb5.keytab]
[krb5_child_setup] (0x0400): Will perform online auth
[krb5_child_setup] (0x0100): Cannot read [SSSD_KRB5_RENEWABLE_LIFETIME] from environment.
[krb5_child_setup] (0x0100): Cannot read [SSSD_KRB5_LIFETIME] from environment.
[krb5_set_canonicalize] (0x0100): SSSD_KRB5_CANONICALIZE is set to [false]
[krb5_child_setup] (0x0100): Not using FAST.
[get_and_save_tgt] (0x0400): Attempting kinit for realm [XXXXXXX.COM]
[get_and_save_tgt] (0x0020): 977: [-1765328230][Cannot find KDC for requested realm]
[kerr_handle_error] (0x0020): 1030: [-1765328230][Cannot find KDC for requested realm]
[prepare_response_message] (0x0400): Building response for result [-1765328230]
[main] (0x0400): krb5_child completed successfully
Je sais également que XXXXXXX.COM est un alias de XXXXXXX.LOCAL dans l'arborescence AD et que l'exécution:
kinit [email protected]
produit exactement la même erreur que dans le krb5_child.log
kinit: impossible de trouver KDC pour le domaine demandé lors de l'obtention des informations d'identification initiales
Je me suis cogné la tête contre le mur pendant plusieurs jours sur ce problème et j'apprécierais tous les conseils. :)
Ce que vous traitez s'appelle les directeurs d'entreprise. Vous avez un seul domaine AD, mais les utilisateurs peuvent avoir des noms d'utilisateur principal (UPN) associés, donc en plus de XXXX.LOCAL, ils peuvent avoir XXXX.COM et utiliser [email protected] à la place de [email protected].
SSSD prend en charge les principes d'entreprise à partir de 1.10. Il y avait peu de bogues dans l'implémentation qui affectaient les versions bêta 1.10, mais ils sont résolus avant la version finale qui est disponible dans Fedora 19+.
Cependant, cette modification n'est pas disponible dans RHEL 6.x (ou CentOS 6.x d'ailleurs) car la prise en charge des principaux d'entreprise est relativement invasive et n'a pas été rétroportée vers 1.9.x.
Vous pouvez être intéressé par des détails sur https://bugzilla.redhat.com/show_bug.cgi?id=972357 et https://bugzilla.redhat.com/show_bug. cgi? id = 924404
Si vous ne spécifiez pas le domaine dans le krb5.conf
et que vous désactivez les recherches DNS, votre hôte n'a aucun moyen de savoir que XXXXXX.COM est un alias pour XXXXXX.LOCAL.
Ajoutez une section de domaine dans votre krb5.conf comme ceci et voyez ce qui se passe.
XXXXXXX.COM = {
kdc = ad1.XXXXXXX.local
kdc = ad2.XXXXXXX.local
admin_server = ad1.XXXXXXX.local
}
Activer les recherches DNS pour le domaine et le kdc accomplirait également la même chose.
Dig -t srv _kerberos._udp.XXXXXX.com
devrait être les vrais serveurs utilisés ci-dessus.
Cependant, je ne suis pas sûr que ce soit vraiment la bonne chose. Le krb5.conf ci-dessus devrait vous placer dans le domaine XXXXXX.LOCAL, en essayant de comprendre pourquoi sssd ignore ce qui pourrait vous conduire davantage dans la bonne direction.
J'ai eu un problème très similaire sur RHEL 6. J'étais déjà connecté au domaine, mais j'ai continué à voir l'erreur kinit-reused-but-ads_sasl_spnego_krb5_bind-failed dans mes journaux.
C'était la résolution pour moi, et je pensais que cela pourrait aussi vous être bénéfique.
Quand je cherchais dans/var/log/samba, j'ai remarqué deux log.wb-*
des dossiers. Dans mon environnement, nous avons deux domaines différents. J'ai vérifié les deux fichiers journaux. Le log.wb-Correctrealm
était vide. Le log.wb-Incorrectrealm
était le fichier journal produisant le message d'erreur répertorié ci-dessus.
J'ai vérifié ma configuration samba (/etc/samba/smb.conf
) et j'ai trouvé le problème.
Ces lignes avaient le domaine incorrect répertorié.
idmap config Incorrectrealm:backend = rid
idmap config Incorrectrealm:range = 10000000-19999999
J'ai changé les lignes pour refléter le domaine correct
idmap config Correctrealm:backend = rid
idmap config Correctrealm:range = 10000000-19999999
et redémarré le service smb. Je suis ensuite retourné à mes fichiers journaux et au domaine avec log.wb-Correctrealm
était en cours de remplissage.
Cela a résolu l'erreur ci-dessus.
Je n'avais trouvé cette résolution nulle part ailleurs et je voulais simplement la transmettre.
Vous devez configurer correctement non seulement krb5.conf mais aussi sssd.conf - soit codez en dur les noms d'hôte de votre serveur avec krb5_server/ldap_server/whatnot ou pointez resolv.conf sur un serveur qui peut résoudre les enregistrements SRV appropriés pour vous.
Voir aussi http://jhrozek.wordpress.com/2014/11/04/how-does-sssd-interact-with-tools-like-kinit/ pour un aperçu de la façon dont sssd interagit avec kinit/libkrb5.