9.5. Dépannage des règles de mappage et de correspondance des certificats
Si vous rencontrez des problèmes d'authentification avec une carte à puce, vérifiez que vous avez correctement associé votre certificat de carte à puce à un utilisateur. Par défaut, un certificat est associé à un utilisateur lorsque l'entrée de l'utilisateur contient le certificat complet dans le cadre de l'attribut usercertificate
. Toutefois, si vous avez défini des règles de mappage de certificats, vous avez peut-être modifié la manière dont les certificats sont associés aux utilisateurs. Pour résoudre les problèmes liés aux règles de mappage et de correspondance des certificats, reportez-vous aux sections suivantes :
Si vous utilisez votre carte à puce pour vous authentifier à l'aide de SSH, vous devez ajouter le certificat complet à l'entrée de l'utilisateur dans Identity Management (IdM). Si vous n'utilisez pas votre carte à puce pour vous authentifier à l'aide de SSH, vous pouvez ajouter des données de mappage de certificat à l'aide de la commande ipa user-add-certmapdata
.
9.5.1. Vérification de la correspondance entre les certificats et les utilisateurs
Par défaut, un certificat est associé à un utilisateur lorsque l'entrée de l'utilisateur contient le certificat complet dans le cadre de l'attribut usercertificate
. Toutefois, si vous avez défini des règles de mappage de certificats, il se peut que vous ayez modifié la manière dont les certificats sont associés aux utilisateurs. Cette procédure décrit comment vérifier vos règles de mappage de certificats.
Conditions préalables
- Vous avez installé et configuré votre serveur et votre client de gestion des identités (IdM) pour une utilisation avec des cartes à puce.
- Vous pouvez détecter votre lecteur de carte à puce et afficher le contenu de votre carte à puce. Voir Test de l'accès par carte à puce sur le système.
- Vous avez associé votre certificat de carte à puce à un utilisateur IdM. Voir Règles de mappage des certificats pour la configuration de l'authentification sur les cartes à puce.
Procédure
Vérifier les règles de mappage des certificats actuellement configurées pour IdM :
# ipa certmaprule-find ------------------------------------------- 1 Certificate Identity Mapping Rule matched ------------------------------------------- Rule name: smartcardrule Mapping rule: (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500}) Matching rule: <ISSUER>CN=Certificate Authority,O=IDM.EXAMPLE.COM Enabled: TRUE ---------------------------- Number of entries returned 1 ----------------------------
Vous pouvez vous attendre à ce que l'une des règles de mappage suivantes soit définie :
-
ipacertmapdata
indique que l'attributcertmapdata
de l'entrée utilisateur IdM est utilisé. -
altSecurityIdentities
spécifie que l'attribut de mappage du nom d'entrée de l'utilisateur d'Active Directory est utilisé. -
userCertificate;binary=
indique que le certificat entier de IdM ou AD est utilisé.
Vous pouvez définir de nombreuses options de correspondance, mais certaines des options généralement configurées sont les suivantes :
-
<ISSUER>CN=[…]
spécifie que l'attribut de l'émetteur du certificat utilisé est vérifié pour s'assurer qu'il correspond à celui-ci. -
<SUBJECT>.*,DC=MY,DC=DOMAIN
indique que l'objet du certificat est vérifié.
-
Activez la journalisation du System Security Services Daemon (SSSD) en ajoutant
debug_level = 9
au fichier/etc/sssd/sssd.conf
sur le serveur IdM :[domain/idm.example.com] ... debug_level = 9
Restart SSSD:
# systemctl restart sssd
Vous devriez voir l'entrée suivante dans le fichier
/var/log/sssd/sssd_idm.example.com.log
si le mappage a été lu correctement :[be[idm.example.com]] [sdap_setup_certmap] (0x4000) : Trying to add rule [smartcardrule][-1][<ISSUER>CN=Certificate Authority,O=IDM.EXAMPLE.COM][(|(userCertificate;binary={cert !bin})(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500}))].
Si votre règle de mappage contient une syntaxe invalide, une entrée similaire à la suivante peut être observée dans le fichier journal :
[be[idm.example.com]]] [sss_certmap_init] (0x0040): sss_certmap initialized. [be[idm.example.com]]] [ipa_certmap_parse_results] (0x4000): Trying to add rule [smartcardrule][-1][<ISSUER>CN=Certificate Authority,O=IDM.EXAMPLE.COM][(ipacertmapdata=X509:<I>{issuer_dn!x509}<S>{subject_dn})]. [be[idm.example.com]]] [parse_template] (0x0040): Parse template invalid. [be[idm.example.com]]] [parse_ldap_mapping_rule] (0x0040): Failed to add template. [be[idm.example.com]]] [parse_mapping_rule] (0x0040): Failed to parse LDAP mapping rule. [be[idm.example.com]]] [ipa_certmap_parse_results] (0x0020): sss_certmap_add_rule failed for rule [smartcardrule], skipping. Please check for typos and if rule syntax is supported. [be[idm.example.com]]] [ipa_subdomains_certmap_done] (0x0040): Unable to parse certmap results [22]: Invalid argument [be[idm.example.com]]] [ipa_subdomains_refresh_certmap_done] (0x0020): Failed to read certificate mapping rules [22]: Invalid argument
Vérifiez la syntaxe de votre règle de mappage.
# ipa certmaprule-show smartcardrule Rule name: smartcardrule Mapping rule: (|(userCertificate;binary={cert!bin})(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})) Matching rule: <ISSUER>CN=Certificate Authority,O=IDM.EXAMPLE.COM Domain name: ipa.test Enabled: TRUE
Si nécessaire, modifiez votre règle de mappage des certificats :
# ipa certmaprule-mod smartcardrule --maprule '(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})'
Ressources supplémentaires
-
Voir la page de manuel
sss-certmap
.
9.5.2. Vérification de l'utilisateur associé à un certificat de carte à puce
Si vous rencontrez des problèmes d'authentification avec une carte à puce, vérifiez que le bon utilisateur est associé à votre certificat de carte à puce.
Conditions préalables
- Vous avez installé et configuré votre serveur et votre client de gestion des identités (IdM) pour une utilisation avec des cartes à puce.
- Vous pouvez détecter votre lecteur de carte à puce et afficher le contenu de votre carte à puce. Voir Test de l'accès par carte à puce sur le système.
- Vous avez associé votre certificat de carte à puce à un utilisateur IdM. Voir Règles de mappage des certificats pour la configuration de l'authentification sur les cartes à puce.
-
Vous disposez d'une copie du certificat de votre carte à puce au format PEM, par exemple
cert.pem
.
Procédure
Vérifiez que l'utilisateur est associé à votre certificat de carte à puce :
# ipa certmap-match cert.pem -------------- 1 user matched -------------- Domain: IDM.EXAMPLE.COM User logins: idmuser1 ---------------------------- Number of entries returned 1 ----------------------------
Si l'utilisateur ou le domaine ne sont pas corrects, vérifiez comment vos certificats sont associés aux utilisateurs. Voir Vérification de la correspondance entre les certificats et les utilisateurs.
Vérifier si l'entrée utilisateur contient le certificat :
# ipa user-show idmuser1 User login: idmuser1 [...] Certificate:MIIEejCCAuKgAwIBAgIBCzANBgkqhkiG9w0BAQsFADAzMREwDwYDVQQKDAhJUEEuVEVTVDEeMBwGA1UEAwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XD
Si votre entrée utilisateur ne contient pas le certificat, ajoutez votre certificat codé en base-64 à l'entrée utilisateur :
Créez une variable d'environnement contenant le certificat dont l'en-tête et le pied de page ont été supprimés et concaténés en une seule ligne, ce qui correspond au format attendu par la commande
ipa user-add-cert
:$ export CERT=`openssl x509 -outform der -in idmuser1.crt | base64 -w0 -`
Notez que le certificat contenu dans le fichier
idmuser1.crt
doit être au format PEM.Ajoutez le certificat au profil de
idmuser1
à l'aide de la commandeipa user-add-cert
:ipa user-add-cert idmuser1 --certificate=$CERT
Effacer le cache du System Security Services Daemon (SSSD).
# sssctl cache-remove SSSD must not be running. Stop SSSD now? (yes/no) [yes] yes Creating backup of local data… Removing cache files… SSSD needs to be running. Start SSSD now? (yes/no) [yes] yes
-
Exécutez à nouveau
ipa certmap-match
pour confirmer que l'utilisateur est associé à votre certificat de carte à puce.