25.7. Assurer la présence d'un alias principal Kerberos d'un service à l'aide d'un playbook Ansible
Dans certains cas, l'administrateur IdM a intérêt à permettre aux utilisateurs, hôtes ou services IdM de s'authentifier auprès d'applications Kerberos à l'aide d'un alias de principal Kerberos. Il s'agit notamment des scénarios suivants
- Le nom d'utilisateur a changé, mais l'utilisateur doit pouvoir se connecter au système en utilisant à la fois l'ancien et le nouveau nom d'utilisateur.
- L'utilisateur doit se connecter à l'aide de l'adresse électronique, même si le domaine Kerberos de l'IdM diffère de celui de l'adresse électronique.
Cette section décrit comment créer l'alias principal de HTTP/mycompany.idm.example.com pour le service HTTP fonctionnant sur client.idm.example.com.
Conditions préalables
- Vous connaissez le mot de passe de l'administrateur IdM.
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
.
- Vous avez mis en place un service HTTP sur votre hôte.
- Vous avez inscrit le service HTTP dans IdM.
- L'hôte sur lequel vous avez configuré HTTP est un client IdM.
Procédure
Créer un fichier d'inventaire, par exemple
inventory.file
:$ touch inventory.file
Ouvrez le site
inventory.file
et définissez le serveur IdM que vous souhaitez configurer dans la section[ipaserver]
. Par exemple, pour demander à Ansible de configurer server.idm.example.com, entrez :[ipaserver] server.idm.example.com
Faites une copie du fichier
/usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present.yml
Ansible playbook. Par exemple :$ cp /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present-copy.yml
-
Ouvrez le fichier
/usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en modifiant les éléments suivants :
-
Le mot de passe de l'administrateur IdM spécifié par la variable
ipaadmin_password
. -
Le nom du service spécifié par la variable
name
. Il s'agit du nom principal canonique du service. Dans l'exemple actuel, il s'agit de HTTP/client.idm.example.com. -
L'alias du principal Kerberos spécifié par la variable
principal
. Il s'agit de l'alias que vous souhaitez ajouter au service défini par la variablename
. Dans l'exemple actuel, il s'agit de host/mycompany.idm.example.com. Le nom de la tâche spécifiée par la variable
name
dans la sectiontasks
.Après avoir été adapté à l'exemple présent, le fichier copié se présente comme suit :
--- - name: Service member principal present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Service HTTP/client.idm.example.com member principals host/mycompany.idm.exmaple.com present ipaservice: ipaadmin_password: "{{ ipaadmin_password }}" name: HTTP/client.idm.example.com principal: - host/mycompany.idm.example.com action: member
-
Le mot de passe de l'administrateur IdM spécifié par la variable
- Enregistrer le fichier.
Exécutez le playbook Ansible. Spécifiez le fichier du livre de jeu, le fichier contenant le mot de passe protégeant le fichier secret.yml et le fichier d'inventaire :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present-copy.yml
Si l'exécution du playbook se solde par 0 tâche inaccessible et 0 tâche échouée, vous avez créé avec succès le principal Kerberos host/mycompany.idm.example.com pour le service HTTP/client.idm.example.com.
Ressources supplémentaires