Rechercher

25.6. Utilisation d'un playbook Ansible pour permettre aux utilisateurs, groupes, hôtes ou groupes d'hôtes IdM de récupérer 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 à un 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 IdM, vous pouvez autoriser d'autres utilisateurs à récupérer ou même à créer un keytab pour un service fonctionnant dans IdM.

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 à récupérer un keytab pour le service HTTP s'exécutant sur un client IdM. En particulier, elle décrit comment autoriser l'utilisateur IdM user01 à récupérer le keytab du 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 inscrit le service HTTP dans IdM.
  • Les utilisateurs et groupes d'utilisateurs de l'IdM que vous souhaitez autoriser à récupérer la base de données de clés existent dans l'IdM.
  • Les hôtes et groupes d'hôtes IdM que vous souhaitez autoriser à récupérer le fichier clé existent dans IdM.

Procédure

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

    touche 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_retrieve_keytab-present.yml Ansible playbook. Par exemple :

    $ cp /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_retrieve_keytab-present.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_retrieve_keytab-present-copy.yml
  4. Ouvrez le fichier copié, /usr/share/doc/ansible-freeipa/playbooks/service/service-member-allow_retrieve_keytab-present-copy.yml, pour le modifier :
  5. Adapter le dossier :

    • Définissez la variable ipaadmin_password avec votre mot de passe d'administrateur IdM.
    • Définissez la variable name de la tâche ipaservice comme étant le principal du service HTTP. Dans l'exemple actuel, il s'agit de HTTP/client.idm.example.com
    • Spécifiez les noms des utilisateurs IdM dans la section allow_retrieve_keytab_group:. Dans l'exemple actuel, il s'agit de user01.
    • Spécifiez les noms des groupes d'utilisateurs IdM dans la section allow_retrieve_keytab_group:.
    • Spécifiez les noms des hôtes IdM dans la section allow_retrieve_keytab_group:.
    • Spécifiez les noms des groupes d'hôtes IdM dans la section allow_retrieve_keytab_group:.
    • Spécifiez le nom de la tâche en utilisant 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_retrieve_keytab present
      hosts: ipaserver
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      - name: Service HTTP/client.idm.example.com members allow_retrieve_keytab present for user01
        ipaservice:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: HTTP/client.idm.example.com
          allow_retrieve_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_retrieve_keytab-present-copy.yml

Verification steps

  1. SSH à un serveur IdM en tant qu'utilisateur IdM avec le privilège de récupérer un keytab pour le service HTTP :

    $ ssh user01@server.idm.example.com
    Password:
  2. Utilisez la commande ipa-getkeytab avec l'option -r pour récupérer le fichier de clés :

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

    L'option -s spécifie un serveur Key Distribution Center (KDC) à partir duquel vous souhaitez récupérer le keytab.

    L'option -p spécifie le principal dont vous souhaitez récupérer le keytab.

    L'option -k indique le fichier keytab auquel vous souhaitez ajouter la clé récupérée. Le fichier sera créé s'il n'existe pas.

Si la commande n'entraîne pas d'erreur, vous avez réussi à récupérer un fichier clé de HTTP/client.idm.example.com sous la forme 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.