Rechercher

25.5. Utilisation d'un playbook Ansible pour permettre aux utilisateurs, groupes, hôtes ou groupes d'hôtes IdM de créer un keytab d'un service

download PDF

Un fichier keytab est un fichier contenant des paires de mandants Kerberos et de clés cryptées. Les fichiers keytab sont généralement utilisés pour permettre aux scripts de s'authentifier automatiquement à l'aide de Kerberos, sans nécessiter d'interaction humaine ni d'accès au mot de passe stocké dans un fichier en texte clair. Le script est alors en mesure d'utiliser les informations d'identification acquises pour accéder aux fichiers stockés sur un système distant.

En tant qu'administrateur de la gestion des identités (IdM), vous pouvez permettre à d'autres utilisateurs de récupérer ou même de créer un keytab pour un service fonctionnant dans IdM. En autorisant des utilisateurs et des groupes d'utilisateurs spécifiques à créer des keytabs, vous pouvez leur déléguer l'administration du service sans partager le mot de passe de l'administrateur IdM. Cette délégation permet une administration plus fine du système.

Cette section explique comment autoriser des utilisateurs, des groupes d'utilisateurs, des hôtes et des groupes d'hôtes spécifiques de l'IdM à créer un keytab pour le service HTTP exécuté sur un client IdM. En particulier, elle décrit comment vous pouvez autoriser l'utilisateur IdM user01 à créer un keytab pour le service HTTP s'exécutant sur un client IdM nommé 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 inscrit le service HTTP dans IdM.
  • Le système qui héberge le service HTTP est un client IdM.
  • Les utilisateurs et groupes d'utilisateurs de l'IdM que vous souhaitez autoriser à créer le fichier clé existent dans l'IdM.
  • Les hôtes et groupes d'hôtes de l'IdM que vous souhaitez autoriser à créer le fichier clé existent dans l'IdM.

Procédure

  1. Créer un fichier d'inventaire, par exemple inventory.file:

    $ touch inventory.file
  2. 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
  3. Faites une copie du fichier /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present.yml Ansible playbook. Par exemple :

    $ cp /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present-copy.yml
  4. Ouvrez le fichier /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_create_keytab-present-copy.yml Ansible playbook pour l'éditer.
  5. 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 client IdM sur lequel le service HTTP est exécuté. Dans l'exemple actuel, il s'agit de HTTP/client.idm.example.com
    • Les noms des utilisateurs IdM répertoriés dans la section allow_create_keytab_user:. Dans l'exemple actuel, il s'agit de user01.
    • Les noms des groupes d'utilisateurs IdM qui sont répertoriés dans la section allow_create_keytab_group:.
    • Les noms des hôtes IdM répertoriés dans la section allow_create_keytab_host:.
    • Les noms des groupes d'hôtes IdM répertoriés dans la section allow_create_keytab_hostgroup:.
    • Le nom de la tâche spécifiée par la variable name dans la section tasks.

      Après avoir été adapté à l'exemple présent, le fichier copié se présente comme suit :

    ---
    - name: Service member allow_create_keytab present
      hosts: ipaserver
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      - name: Service HTTP/client.idm.example.com members allow_create_keytab present for user01
        ipaservice:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: HTTP/client.idm.example.com
          allow_create_keytab_user:
          - user01
          action: member
  6. Enregistrer le fichier.
  7. 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-allow_create_keytab-present-copy.yml

Verification steps

  1. SSH vers un serveur IdM en tant qu'utilisateur IdM ayant le privilège de créer un keytab pour le service HTTP en question :

    $ ssh user01@server.idm.example.com
    Password:
  2. Utilisez la commande ipa-getkeytab pour générer le nouveau keytab pour le service HTTP :

    $ ipa-getkeytab -s server.idm.example.com -p HTTP/client.idm.example.com -k /etc/httpd/conf/krb5.keytab

    L'option -s spécifie un serveur de centre de distribution de clés (KDC) pour générer le fichier de clés.

    L'option -p spécifie le principal dont vous voulez créer le keytab.

    L'option -k indique le fichier keytab auquel ajouter la nouvelle clé. Le fichier sera créé s'il n'existe pas.

Si la commande ne génère pas d'erreur, vous avez créé avec succès un keytab de HTTP/client.idm.example.com sous le nom de user01.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.