11.2. Configuration de l'activation automatique des comptes d'utilisateurs de l'étape IdM
Cette procédure montre comment créer un script pour activer les utilisateurs de l'étape. Le système exécute automatiquement le script à des intervalles de temps spécifiés. Cela garantit que les nouveaux comptes d'utilisateurs sont automatiquement activés et disponibles peu de temps après leur création.
La procédure suppose que le propriétaire du système de provisionnement externe a déjà validé les utilisateurs et qu'ils n'ont pas besoin d'une validation supplémentaire du côté de l'IdM avant que le script ne les ajoute à l'IdM.
Il suffit d'activer le processus d'activation sur un seul de vos serveurs IdM.
Conditions préalables
- Les comptes provisionator et activator existent dans IdM. Pour plus de détails, voir Préparation des comptes IdM pour l'activation automatique des comptes d'utilisateurs de stage.
- Vous disposez des droits de root sur le serveur IdM sur lequel vous exécutez la procédure.
- Vous êtes connecté en tant qu'administrateur IdM.
- Vous faites confiance à votre système de provisionnement externe.
Procédure
Générer un fichier keytab pour le compte d'activation :
# ipa-getkeytab -s server.idm.example.com -p "activator" -k /etc/krb5.ipa-activation.keytab
Si vous souhaitez activer le processus d'activation sur plusieurs serveurs IdM, générez le fichier keytab sur un seul serveur. Copiez ensuite le fichier keytab sur les autres serveurs.
Créez un script,
/usr/local/sbin/ipa-activate-all
, avec le contenu suivant pour activer tous les utilisateurs :#!/bin/bash kinit -k -i activator ipa stageuser-find --all --raw | grep " uid:" | cut -d ":" -f 2 | while read uid; do ipa stageuser-activate ${uid}; done
Modifiez les autorisations et la propriété du script
ipa-activate-all
pour le rendre exécutable :# chmod 755 /usr/local/sbin/ipa-activate-all # chown root:root /usr/local/sbin/ipa-activate-all
Créez un fichier d'unité systemd,
/etc/systemd/system/ipa-activate-all.service
, avec le contenu suivant :[Unit] Description=Scan IdM every minute for any stage users that must be activated [Service] Environment=KRB5_CLIENT_KTNAME=/etc/krb5.ipa-activation.keytab Environment=KRB5CCNAME=FILE:/tmp/krb5cc_ipa-activate-all ExecStart=/usr/local/sbin/ipa-activate-all
Créez un timer systemd,
/etc/systemd/system/ipa-activate-all.timer
, avec le contenu suivant :[Unit] Description=Scan IdM every minute for any stage users that must be activated [Timer] OnBootSec=15min OnUnitActiveSec=1min [Install] WantedBy=multi-user.target
Recharger la nouvelle configuration :
# systemctl daemon-reload
Activer
ipa-activate-all.timer
:# systemctl enable ipa-activate-all.timer
Démarrer
ipa-activate-all.timer
:# systemctl start ipa-activate-all.timer
(Facultatif) Vérifiez que le démon
ipa-activate-all.timer
est en cours d'exécution :# systemctl status ipa-activate-all.timer ● ipa-activate-all.timer - Scan IdM every minute for any stage users that must be activated Loaded: loaded (/etc/systemd/system/ipa-activate-all.timer; enabled; vendor preset: disabled) Active: active (waiting) since Wed 2020-06-10 16:34:55 CEST; 15s ago Trigger: Wed 2020-06-10 16:35:55 CEST; 44s left Jun 10 16:34:55 server.idm.example.com systemd[1]: Started Scan IdM every minute for any stage users that must be activated.