8.3. Accorder un accès sudo à un utilisateur AD sur un client IdM à l'aide de la CLI
Les administrateurs du système de gestion des identités (IdM) peuvent utiliser les groupes d'utilisateurs IdM pour définir les autorisations d'accès, le contrôle d'accès basé sur l'hôte, les règles sudo
et d'autres contrôles sur les utilisateurs IdM. Les groupes d'utilisateurs IdM accordent et restreignent l'accès aux ressources du domaine IdM.
Vous pouvez ajouter à la fois Active Directory (AD) users et AD groups aux groupes d'utilisateurs IdM. Pour ce faire, procédez comme suit
- Ajouter les utilisateurs ou groupes AD à un groupe IdM externe non-POSIX.
- Ajouter le groupe IdM externe non-POSIX à un groupe IdM POSIX.
Vous pouvez ensuite gérer les privilèges des utilisateurs AD en gérant les privilèges du groupe POSIX. Par exemple, vous pouvez accorder l'accès sudo
pour une commande spécifique à un groupe d'utilisateurs POSIX IdM sur un hôte IdM spécifique.
Il est également possible d'ajouter des groupes d'utilisateurs AD aux groupes externes IdM. Cela peut faciliter la définition de politiques pour les utilisateurs Windows, en maintenant la gestion des utilisateurs et des groupes dans le domaine unique d'AD.
Ne not utilisez pas les ID overrides des utilisateurs AD pour les règles SUDO dans IdM. Les substitutions d'ID des utilisateurs AD ne représentent que les attributs POSIX des utilisateurs AD, et non les utilisateurs AD eux-mêmes.
Vous pouvez ajouter des dérogations d'ID en tant que membres d'un groupe. Toutefois, vous ne pouvez utiliser cette fonctionnalité que pour gérer les ressources IdM dans l'API IdM. La possibilité d'ajouter des dérogations d'ID en tant que membres d'un groupe n'est pas étendue aux environnements POSIX et vous ne pouvez donc pas l'utiliser pour l'appartenance à sudo
ou à des règles de contrôle d'accès basées sur l'hôte (HBAC).
Cette procédure décrit comment créer la règle ad_users_reboot sudo
pour accorder à l'utilisateur administrator@ad-domain.com AD la permission d'exécuter la commande /usr/sbin/reboot
sur l'hôte idmclient IdM, qui est normalement réservée à l'utilisateur root
. administrator@ad-domain.com est membre du groupe ad_users_external non-POSIX, qui est à son tour membre du groupe ad_users POSIX.
Conditions préalables
-
Vous avez obtenu l'IdM
admin
Kerberos ticket-granting ticket (TGT). - Une confiance inter-forêts existe entre le domaine IdM et le domaine AD ad-domain.com.
-
Aucun compte local administrator n'est présent sur l'hôte idmclient: l'utilisateur administrator n'est pas répertorié dans le fichier local
/etc/passwd
.
Procédure
Créer le groupe ad_users qui contient le groupe ad_users_external avec le membre administrator@ad-domain:
- Optional: Créez ou sélectionnez un groupe correspondant dans le domaine AD à utiliser pour gérer les utilisateurs AD dans le domaine IdM. Vous pouvez utiliser plusieurs groupes AD et les ajouter à différents groupes du côté IdM.
Créez le groupe ad_users_external et indiquer qu'il contient des membres extérieurs au domaine IdM en ajoutant l'option
--external
:[root@ipaserver ~]# ipa group-add --desc='AD users external map' ad_users_external --external ------------------------------- Added group "ad_users_external" ------------------------------- Group name: ad_users_external Description: AD users external map
NoteAssurez-vous que le groupe externe que vous spécifiez ici est un groupe de sécurité AD avec une portée de groupe
global
ouuniversal
comme défini dans le document sur les groupes de sécurité Active Directory. Par exemple, les groupes de sécurité AD Domain users ou Domain admins ne peuvent pas être utilisés car leur périmètre de groupe estdomain local
.Créez le groupe ad_users:
[root@ipaserver ~]# ipa group-add --desc='AD users' ad_users ---------------------- Added group "ad_users" ---------------------- Group name: ad_users Description: AD users GID: 129600004
Ajoutez l'utilisateur AD administrator@ad-domain.com à ad_users_external en tant que membre externe :
[root@ipaserver ~]# ipa group-add-member ad_users_external --external "administrator@ad-domain.com" [member user]: [member group]: Group name: ad_users_external Description: AD users external map External member: S-1-5-21-3655990580-1375374850-1633065477-513 ------------------------- Number of members added 1 -------------------------
L'utilisateur AD doit être identifié par un nom complet, tel que
DOMAIN\user_name
ouuser_name@DOMAIN
. L'identité AD est ensuite mappée au SID AD de l'utilisateur. Il en va de même pour l'ajout de groupes AD.Ajoutez ad_users_external à ad_users en tant que membre :
[root@ipaserver ~]# ipa group-add-member ad_users --groups ad_users_external Group name: ad_users Description: AD users GID: 129600004 Member groups: ad_users_external ------------------------- Number of members added 1 -------------------------
Accordez aux membres de ad_users la permission d'exécuter
/usr/sbin/reboot
sur l'hôte idmclient:Ajouter la commande
/usr/sbin/reboot
à la base de données IdM des commandessudo
:[root@idmclient ~]# ipa sudocmd-add /usr/sbin/reboot ------------------------------------- Added Sudo Command "/usr/sbin/reboot" ------------------------------------- Sudo Command: /usr/sbin/reboot
Créez une règle
sudo
nommée ad_users_reboot:[root@idmclient ~]# ipa sudorule-add ad_users_reboot --------------------------------- Added Sudo Rule "ad_users_reboot" --------------------------------- Rule name: ad_users_reboot Enabled: True
Ajoutez la commande
/usr/sbin/reboot
à la règle ad_users_reboot:[root@idmclient ~]# ipa sudorule-add-allow-command ad_users_reboot --sudocmds '/usr/sbin/reboot' Rule name: ad_users_reboot Enabled: True Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
Appliquer la règle ad_users_reboot à l'hôte IdM idmclient:
[root@idmclient ~]# ipa sudorule-add-host ad_users_reboot --hosts idmclient.idm.example.com Rule name: ad_users_reboot Enabled: True Hosts: idmclient.idm.example.com Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
Ajoutez le groupe
ad_users
à la règle ad_users_reboot:[root@idmclient ~]# ipa sudorule-add-user ad_users_reboot --groups ad_users Rule name: ad_users_reboot Enabled: TRUE User Groups: ad_users Hosts: idmclient.idm.example.com Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
La propagation des changements du serveur au client peut prendre quelques minutes.
Verification steps
Connectez-vous à l'hôte idmclient en tant que administrator@ad-domain.com, un membre indirect du groupe
ad_users
:$ ssh administrator@ad-domain.com@ipaclient Password:
Optionnellement, afficher les commandes
sudo
queadministrator@ad-domain.com
est autorisé à exécuter :[administrator@ad-domain.com@idmclient ~]$ sudo -l Matching Defaults entries for administrator@ad-domain.com on idmclient: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User administrator@ad-domain.com may run the following commands on idmclient: (root) /usr/sbin/reboot
Redémarrez la machine en utilisant
sudo
. Saisissez le mot de passe deadministrator@ad-domain.com
lorsque vous y êtes invité :[administrator@ad-domain.com@idmclient ~]$ sudo /usr/sbin/reboot [sudo] password for administrator@ad-domain.com: