7.4. Utiliser Ansible pour configurer les clients IdM pour l'authentification par carte à puce
Cette section explique comment utiliser le module ansible-freeipa
ipasmartcard_client
pour configurer des clients Identity Management (IdM) spécifiques afin de permettre aux utilisateurs IdM de s'authentifier à l'aide d'une carte à puce. Exécutez cette procédure pour activer l'authentification par carte à puce pour les utilisateurs IdM qui utilisent l'un des éléments suivants pour accéder à IdM :
Le protocole
ssh
Pour plus d'informations, voir Configuration de l'accès SSH à l'aide de l'authentification par carte à puce.
- Le login de la console
- Le gestionnaire d'affichage Gnome (GDM)
-
La commande
su
Cette procédure n'est pas nécessaire pour s'authentifier auprès de l'interface Web IdM. L'authentification à l'interface Web IdM implique deux hôtes, dont aucun ne doit être un client IdM :
- La machine sur laquelle le navigateur s'exécute. La machine peut être en dehors du domaine IdM.
-
Le serveur IdM sur lequel
httpd
est exécuté.
Conditions préalables
- Votre serveur IdM a été configuré pour l'authentification par carte à puce, comme décrit dans la section Utilisation d'Ansible pour configurer le serveur IdM pour l'authentification par carte à puce.
- Vous disposez d'un accès root au serveur IdM et au client IdM.
- Vous disposez du certificat de l'autorité de certification racine, du certificat de l'autorité de certification IdM et de tous les certificats des autorités de certification intermédiaires.
Vous avez configuré votre nœud de contrôle Ansible pour qu'il réponde aux exigences suivantes :
- Vous utilisez la version 2.8 ou ultérieure d'Ansible.
-
Vous avez installé le paquetage
ansible-freeipa
sur le contrôleur Ansible. - L'exemple suppose que dans le répertoire ~/MyPlaybooks/ vous avez créé un fichier d'inventaire Ansible avec le nom de domaine complet (FQDN) du serveur IdM.
-
L'exemple suppose que le coffre-fort secret.yml Ansible stocke votre
ipaadmin_password
.
Procédure
Si vos certificats d'autorité de certification sont stockés dans des fichiers d'un format différent, tel que
DER
, convertissez-les au formatPEM
:# openssl x509 -in <filename>.der -inform DER -out <filename>.pem -outform PEM
Le certificat de l'autorité de certification IdM est au format
PEM
et se trouve dans le fichier/etc/ipa/ca.crt
.En option, utilisez l'utilitaire
openssl x509
pour visualiser le contenu des fichiers au formatPEM
et vérifier que les valeursIssuer
etSubject
sont correctes :# openssl x509 -noout -text -in root-ca.pem | more
Sur votre nœud de contrôle Ansible, naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Créez un sous-répertoire dédié aux certificats d'autorité de certification :
$ mkdir SmartCard/
Pour plus de commodité, copiez tous les certificats requis dans le répertoire ~/MyPlaybooks/SmartCard/, par exemple :
# cp /tmp/root-ca.pem ~/MyPlaybooks/SmartCard/ # cp /tmp/intermediate-ca.pem ~/MyPlaybooks/SmartCard/ # cp /etc/ipa/ca.crt ~/MyPlaybooks/SmartCard/ipa-ca.crt
Dans votre fichier d'inventaire Ansible, spécifiez ce qui suit :
- Les clients IdM que vous souhaitez configurer pour l'authentification par carte à puce.
- Le mot de passe de l'administrateur de l'IdM.
Les chemins d'accès aux certificats des autorités de certification dans l'ordre suivant :
- Le fichier du certificat de l'autorité de certification racine
- Les fichiers des certificats de l'autorité de certification intermédiaire
- Le fichier du certificat de l'autorité de certification IdM
Le fichier peut se présenter comme suit :
[ipaclients] ipaclient1.example.com ipaclient2.example.com [ipaclients:vars] ipaadmin_password=SomeADMINpassword ipasmartcard_client_ca_certs=/home/<user_name>/MyPlaybooks/SmartCard/root-ca.pem,/home/<user_name>/MyPlaybooks/SmartCard/intermediate-ca.pem,/home/<user_name>/MyPlaybooks/SmartCard/ipa-ca.crt
Créez un playbook
install-smartcard-clients.yml
avec le contenu suivant :--- - name: Playbook to set up smart card authentication for an IdM client hosts: ipaclients become: true roles: - role: ipasmartcard_client state: present
- Enregistrer le fichier.
Exécutez le playbook Ansible. Spécifiez le playbook et les fichiers d'inventaire :
$ ansible-playbook --vault-password-file=password_file -v -i inventory install-smartcard-clients.yml
Le rôle
ipasmartcard_client
Ansible effectue les actions suivantes :- Il configure le démon de la carte à puce.
- Il définit la réserve de confiance du système.
- Il configure le System Security Services Daemon (SSSD) pour permettre aux utilisateurs de s'authentifier soit avec leur nom d'utilisateur et leur mot de passe, soit avec leur carte à puce. Pour plus de détails sur les options de profil SSSD pour l'authentification par carte à puce, voir Options d'authentification par carte à puce dans RHEL.
Les clients répertoriés dans la section ipaclients du fichier d'inventaire sont maintenant configurés pour l'authentification par carte à puce.
Si vous avez installé les clients IdM avec l'option --mkhomedir
, les utilisateurs distants pourront se connecter à leur répertoire personnel. Sinon, l'emplacement de connexion par défaut est la racine de la structure de répertoires, /
.
Ressources supplémentaires
-
Exemples de playbooks utilisant le rôle
ipasmartcard_server
dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/