Gestion des utilisateurs, des groupes, des hôtes et des règles de contrôle d'accès de l'IdM
Configurer les utilisateurs et les hôtes, les gérer en groupes et contrôler l'accès à l'aide de règles de contrôle d'accès basées sur l'hôte et sur le rôle
Résumé
Rendre l'open source plus inclusif
Red Hat s'engage à remplacer les termes problématiques dans son code, sa documentation et ses propriétés Web. Nous commençons par ces quatre termes : master, slave, blacklist et whitelist. En raison de l'ampleur de cette entreprise, ces changements seront mis en œuvre progressivement au cours de plusieurs versions à venir. Pour plus de détails, voir le message de notre directeur technique Chris Wright.
Fournir un retour d'information sur la documentation de Red Hat
Nous apprécions vos commentaires sur notre documentation. Faites-nous savoir comment nous pouvons l'améliorer.
Soumettre des commentaires sur des passages spécifiques
- Consultez la documentation au format Multi-page HTML et assurez-vous que le bouton Feedback apparaît dans le coin supérieur droit après le chargement complet de la page.
- Utilisez votre curseur pour mettre en évidence la partie du texte que vous souhaitez commenter.
- Cliquez sur le bouton Add Feedback qui apparaît près du texte en surbrillance.
- Ajoutez vos commentaires et cliquez sur Submit.
Soumettre des commentaires via Bugzilla (compte requis)
- Connectez-vous au site Web de Bugzilla.
- Sélectionnez la version correcte dans le menu Version.
- Saisissez un titre descriptif dans le champ Summary.
- Saisissez votre suggestion d'amélioration dans le champ Description. Incluez des liens vers les parties pertinentes de la documentation.
- Cliquez sur Submit Bug.
Chapitre 1. Introduction aux utilitaires de la ligne de commande IdM
Les sections suivantes décrivent les bases de l'utilisation des utilitaires de ligne de commande de la gestion des identités (IdM).
Conditions préalables
Serveur IdM installé et accessible.
Pour plus de détails, voir Installation de la gestion des identités.
- Pour utiliser l'interface de ligne de commande de l'IPA, authentifiez-vous auprès de l'IdM à l'aide d'un ticket Kerberos valide.
1.1. Qu'est-ce que l'interface de ligne de commande de l'IPA ?
L'interface de ligne de commande (CLI) de l'IPA est l'interface de ligne de commande de base pour l'administration de la gestion des identités (IdM).
Il prend en charge de nombreuses sous-commandes pour la gestion de l'IdM, telles que la commande ipa user-add
pour ajouter un nouvel utilisateur.
L'interface CLI de l'IPA vous permet de
- Ajouter, gérer ou supprimer des utilisateurs, des groupes, des hôtes et d'autres objets dans le réseau.
- Gérer les certificats.
- Entrées de recherche.
- Afficher et répertorier des objets.
- Définir les droits d'accès.
- Obtenir de l'aide sur la syntaxe correcte de la commande.
1.2. Qu'est-ce que l'aide IPA ?
L'aide IPA est un système de documentation intégré au serveur IdM.
L'interface de ligne de commande (CLI) IPA génère les rubriques d'aide disponibles à partir des modules d'extension IdM chargés. Pour utiliser l'utilitaire d'aide de l'IPA, vous devez :
- Un serveur IdM doit être installé et fonctionner.
- Être authentifié par un ticket Kerberos valide.
La saisie de la commande ipa help
sans options affiche des informations sur l'utilisation de l'aide de base et les exemples de commandes les plus courants.
Vous pouvez utiliser les options suivantes pour les différents cas d'utilisation de ipa help
:
$ ipa help [TOPIC | COMMAND | topics | commands]
-
[]
- Les parenthèses signifient que tous les paramètres sont facultatifs et que vous pouvez écrire seulementipa help
pour que la commande soit exécutée. |
- Le caractère "pipe" signifie or. Par conséquent, vous pouvez spécifier unTOPIC
, unCOMMAND
, ou untopics
, ou uncommands
, avec la commande de baseipa help
:-
topics
- Vous pouvez exécuter la commandeipa help topics
pour afficher une liste de sujets couverts par l'aide IPA, tels queuser
,cert
,server
et bien d'autres. -
TOPIC
- Le TOPIC avec des lettres majuscules est une variable. Vous pouvez donc spécifier un sujet particulier, par exempleipa help user
. -
commands
- Vous pouvez entrer la commandeipa help commands
pour afficher une liste de commandes couvertes par l'aide IPA, par exemple,user-add
,ca-enable
,server-show
et bien d'autres. -
COMMAND
- Le COMMAND avec des lettres majuscules est une variable. Vous pouvez donc spécifier une commande particulière, par exempleipa help user-add
.
-
1.3. Utilisation des rubriques d'aide de l'IPA
La procédure suivante décrit comment utiliser l'aide IPA dans l'interface de ligne de commande.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Saisissez
ipa help topics
pour afficher une liste des sujets couverts par l'aide.$ ipa help topics
Sélectionnez l'un des sujets et créez une commande selon le modèle suivant :
ipa help [topic_name]
. À la place de la chaînetopic_name
, ajoutez l'un des thèmes énumérés à l'étape précédente.Dans l'exemple, nous utilisons le sujet suivant :
user
$ ipa help user
Si l'aide IPA est trop longue et que vous ne pouvez pas voir l'intégralité du texte, utilisez la syntaxe suivante :
$ ipa help user | less
Vous pouvez ensuite faire défiler la page et lire l'intégralité de l'aide.
L'interface de programmation IPA affiche une page d'aide pour la rubrique user
. Après avoir lu l'aperçu, vous pouvez voir de nombreux exemples avec des modèles pour travailler avec les commandes de la rubrique.
1.4. Utilisation des commandes d'aide de l'IPA
La procédure suivante décrit comment créer des commandes d'aide IPA dans l'interface de ligne de commande.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Saisissez
ipa help commands
pour afficher la liste des commandes couvertes par l'aide.$ ipa help commands
Sélectionnez l'une des commandes et créez une commande d'aide selon le modèle suivant :
ipa help <COMMAND>
. À la place de la chaîne<COMMAND>
, ajoutez l'une des commandes énumérées à l'étape précédente.$ ipa help user-add
Ressources supplémentaires
-
La page de manuel
ipa
.
1.5. Structure des commandes IPA
L'interface de programmation IPA distingue les types de commandes suivants :
- Built-in commands- Les commandes intégrées sont toutes disponibles dans le serveur IdM.
- Plug-in provided commands
La structure des commandes IPA permet de gérer différents types d'objets. Par exemple :
- Utilisateurs,
- Hôtes,
- Enregistrements DNS,
- Certificats,
et bien d'autres.
Pour la plupart de ces objets, l'interface CLI de l'IPA comprend des commandes pour :
-
Ajouter (
add
) -
Modifier (
mod
) -
Supprimer (
del
) -
Recherche (
find
) -
Affichage (
show
)
Les commandes ont la structure suivante :
ipa user-add
, ipa user-mod
, ipa user-del
, ipa user-find
, ipa user-show
ipa host-add
, ipa host-mod
, ipa host-del
, ipa host-find
, ipa host-show
ipa dnsrecord-add
, ipa dnsrecord-mod
, ipa dnsrecord-del
, ipa dnsrecord-find
, ipa dnrecord-show
Vous pouvez créer un utilisateur à l'aide de la commande ipa user-add [options]
, où [options]
est facultatif. Si vous n'utilisez que la commande ipa user-add
, le script vous demande les détails un par un.
Pour modifier un objet existant, vous devez définir l'objet, c'est pourquoi la commande comprend également un objet : ipa user-mod USER_NAME [options]
.
1.6. Utilisation d'une commande IPA pour ajouter un compte d'utilisateur à IdM
La procédure suivante décrit comment ajouter un nouvel utilisateur à la base de données Identity Management (IdM) à l'aide de la ligne de commande.
Conditions préalables
- Vous devez disposer de privilèges d'administrateur pour ajouter des comptes d'utilisateurs au serveur IdM.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Entrez la commande pour ajouter un nouvel utilisateur :
$ ipa user-add
La commande exécute un script qui vous invite à fournir les données de base nécessaires à la création d'un compte utilisateur.
- Dans le champ First name:, entrez le prénom du nouvel utilisateur et appuyez sur la touche Enter.
- Dans le champ Last name:, entrez le nom de famille du nouvel utilisateur et appuyez sur la touche Enter.
Dans le champ User login [suggested user name]:, entrez le nom d'utilisateur ou appuyez simplement sur la touche Enter pour accepter le nom d'utilisateur proposé.
Le nom d'utilisateur doit être unique pour toute la base de données IdM. Si une erreur survient parce que ce nom d'utilisateur existe déjà, répétez le processus avec la commande
ipa user-add
et utilisez un nom d'utilisateur différent et unique.
Une fois le nom d'utilisateur ajouté, le compte d'utilisateur est ajouté à la base de données IdM et l'interface de ligne de commande (CLI) de l'API affiche la sortie suivante :
---------------------- Added user "euser" ---------------------- User login: euser First name: Example Last name: User Full name: Example User Display name: Example User Initials: EU Home directory: /home/euser GECOS: Example User Login shell: /bin/sh Principal name: euser@IDM.EXAMPLE.COM Principal alias: euser@IDM.EXAMPLE.COM Email address: euser@idm.example.com UID: 427200006 GID: 427200006 Password: False Member of groups: ipausers Kerberos keys available: False
Par défaut, aucun mot de passe n'est défini pour le compte d'utilisateur. Pour ajouter un mot de passe lors de la création d'un compte utilisateur, utilisez la commande ipa user-add
avec la syntaxe suivante :
$ ipa user-add --first=Example --last=User --password
L'interface CLI de l'IPA vous invite ensuite à ajouter ou à confirmer un nom d'utilisateur et un mot de passe.
Si l'utilisateur a déjà été créé, vous pouvez ajouter le mot de passe à l'aide de la commande ipa user-mod
.
Ressources supplémentaires
-
Exécutez la commande
ipa help user-add
pour plus d'informations sur les paramètres.
1.7. Utilisation d'une commande IPA pour modifier un compte d'utilisateur dans IdM
Vous pouvez modifier de nombreux paramètres pour chaque compte d'utilisateur. Par exemple, vous pouvez ajouter un nouveau mot de passe à l'utilisateur.
La syntaxe de la commande de base est différente de celle de user-add
car vous devez définir le compte d'utilisateur existant pour lequel vous souhaitez effectuer des modifications, par exemple, ajouter un mot de passe.
Conditions préalables
- Vous devez disposer des droits d'administrateur pour modifier les comptes d'utilisateurs.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Entrez la commande
ipa user-mod
, indiquez l'utilisateur à modifier et les options éventuelles, telles que--password
pour l'ajout d'un mot de passe :$ ipa user-mod euser --password
La commande lance un script dans lequel vous pouvez ajouter le nouveau mot de passe.
- Saisissez le nouveau mot de passe et appuyez sur la touche Enter.
L'interface de programmation de l'IPA affiche la sortie suivante :
---------------------- Modified user "euser" ---------------------- User login: euser First name: Example Last name: User Home directory: /home/euser Principal name: euser@IDM.EXAMPLE.COM Principal alias: euser@IDM.EXAMPLE.COM Email address: euser@idm.example.com UID: 427200006 GID: 427200006 Password: True Member of groups: ipausers Kerberos keys available: True
Le mot de passe de l'utilisateur est maintenant défini pour le compte et l'utilisateur peut se connecter à IdM.
Ressources supplémentaires
-
Exécutez la commande
ipa help user-mod
pour plus d'informations sur les paramètres.
1.8. Comment fournir une liste de valeurs aux utilitaires IdM ?
La gestion de l'identité (IdM) stocke les valeurs des attributs à valeurs multiples dans des listes.
L'IdM prend en charge les méthodes suivantes pour fournir des listes à valeurs multiples :
Utilisation du même argument de ligne de commande plusieurs fois dans la même invocation de commande :
$ ipa permission-add --right=read --permissions=write --permissions=delete ...
Vous pouvez également placer la liste entre accolades, auquel cas l'interpréteur de commandes procède à l'expansion :
$ ipa permission-add --right={read,write,delete} ...
Les exemples ci-dessus montrent une commande permission-add
qui ajoute des autorisations à un objet. L'objet n'est pas mentionné dans l'exemple. Au lieu de …
vous devez ajouter l'objet pour lequel vous souhaitez ajouter des autorisations.
Lorsque vous mettez à jour de tels attributs à valeurs multiples à partir de la ligne de commande, l'IdM écrase complètement la liste précédente de valeurs par une nouvelle liste. Par conséquent, lorsque vous mettez à jour un attribut à valeurs multiples, vous devez spécifier l'ensemble de la nouvelle liste, et non pas une seule valeur que vous souhaitez ajouter.
Par exemple, dans la commande ci-dessus, la liste des autorisations comprend la lecture, l'écriture et la suppression. Lorsque vous décidez de mettre à jour la liste avec la commande permission-mod
vous devez ajouter toutes les valeurs, sinon celles qui ne sont pas mentionnées seront supprimées.
Example 1:- La commande ipa permission-mod
met à jour toutes les autorisations précédemment ajoutées.
$ ipa permission-mod --right=read --right=write --right=delete ...
ou
$ ipa permission-mod --right={read,write,delete} ...
Example 2- La commande ipa permission-mod
supprime l'argument --right=delete
car il n'est pas inclus dans la commande :
$ ipa permission-mod --right=read --right=write ...
ou
$ ipa permission-mod --right={read,write} ...
1.9. Comment utiliser les caractères spéciaux avec les utilitaires IdM ?
Lorsque vous transmettez aux commandes ipa
des arguments de ligne de commande comprenant des caractères spéciaux, échappez ces caractères à l'aide d'une barre oblique inverse (\N). Par exemple, les caractères spéciaux courants sont les crochets (< et >), l'esperluette (&), l'astérisque (*) ou la barre verticale (|).
Par exemple, pour échapper à un astérisque (*) :
$ ipa certprofile-show certificate_profile --out=exported\*profile.cfg
Les commandes contenant des caractères spéciaux non encapsulés ne fonctionnent pas comme prévu, car l'interpréteur de commandes ne peut pas analyser correctement ces caractères.
Chapitre 2. Gestion des comptes d'utilisateurs à l'aide de la ligne de commande
Ce chapitre comprend une description de base du cycle de vie de l'utilisateur dans le cadre de la gestion de l'identité (IdM). Les sections suivantes vous montrent comment :
- Créer des comptes d'utilisateurs
- Activer les comptes d'utilisateurs de l'étape
- Préserver les comptes d'utilisateurs
- Supprimer des comptes d'utilisateurs actifs, d'étape ou préservés
- Restaurer les comptes d'utilisateurs conservés
2.1. Cycle de vie de l'utilisateur
La gestion des identités (IdM) prend en charge trois états de compte utilisateur :
- Stage les utilisateurs ne sont pas autorisés à s'authentifier. Il s'agit d'un état initial. Certaines propriétés du compte utilisateur requises pour les utilisateurs actifs ne peuvent pas être définies, par exemple l'appartenance à un groupe.
- Active les utilisateurs sont autorisés à s'authentifier. Toutes les propriétés requises du compte utilisateur doivent être définies dans cet état.
- Preserved sont d'anciens utilisateurs actifs qui sont considérés comme inactifs et ne peuvent pas s'authentifier auprès de l'IdM. Les utilisateurs préservés conservent la plupart des propriétés du compte qu'ils avaient en tant qu'utilisateurs actifs, mais ils ne font partie d'aucun groupe d'utilisateurs.
Vous pouvez supprimer définitivement les entrées utilisateur de la base de données IdM.
Les comptes d'utilisateurs supprimés ne peuvent pas être restaurés. Lorsque vous supprimez un compte d'utilisateur, toutes les informations associées à ce compte sont définitivement perdues.
Un nouvel administrateur ne peut être créé que par un utilisateur disposant de droits d'administrateur, tel que l'utilisateur admin par défaut. Si vous supprimez accidentellement tous les comptes d'administrateur, le gestionnaire de répertoire doit créer manuellement un nouvel administrateur dans le serveur de répertoire.
Ne pas supprimer l'utilisateur admin
. Comme admin
est un utilisateur prédéfini requis par l'IdM, cette opération pose des problèmes avec certaines commandes. Si vous souhaitez définir et utiliser un autre utilisateur administrateur, désactivez l'utilisateur prédéfini admin
avec ipa user-disable admin
après avoir accordé des droits d'administrateur à au moins un autre utilisateur.
N'ajoutez pas d'utilisateurs locaux à IdM. Le commutateur de service de noms (NSS) résout toujours les utilisateurs et les groupes IdM avant de résoudre les utilisateurs et les groupes locaux. Cela signifie, par exemple, que l'appartenance à un groupe IdM ne fonctionne pas pour les utilisateurs locaux.
2.2. Ajouter des utilisateurs à l'aide de la ligne de commande
Vous pouvez ajouter un utilisateur en tant que :
- Active- les comptes d'utilisateurs qui peuvent être utilisés activement par leurs utilisateurs.
- Stage- ne peuvent pas utiliser ces comptes. Utilisez-le si vous souhaitez préparer de nouveaux comptes d'utilisateurs. Lorsque les utilisateurs sont prêts à utiliser leurs comptes, vous pouvez les activer.
La procédure suivante décrit l'ajout d'utilisateurs actifs au serveur IdM à l'aide de la commande ipa user-add
.
De la même manière, vous pouvez créer des comptes d'utilisateurs de scène à l'aide de la commande ipa stageuser-add
.
L'IdM attribue automatiquement un numéro d'identification unique (UID) aux nouveaux comptes d'utilisateurs. Vous pouvez également le faire manuellement, mais le serveur ne vérifie pas si le numéro UID est unique. Pour cette raison, plusieurs entrées d'utilisateurs peuvent avoir le même numéro d'ID assigné. Red Hat recommande d'éviter d'avoir plusieurs entrées avec le même UID.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Obtention d'un ticket Kerberos. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Ajoutez le login de l'utilisateur, son prénom, son nom et, éventuellement, son adresse électronique.
$ ipa user-add user_login --first=first_name --last=last_name --email=email_address
IdM prend en charge les noms d'utilisateurs qui peuvent être décrits par l'expression régulière suivante :
[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,252}[a-zA-Z0-9_.$-]?
NoteLes noms d'utilisateur se terminant par le signe du dollar ($) sont pris en charge pour permettre la prise en charge des machines Samba 3.x.
Si vous ajoutez un nom d'utilisateur contenant des caractères majuscules, l'IdM convertit automatiquement le nom en minuscules lorsqu'il est enregistré. Par conséquent, l'IdM exige toujours que les noms d'utilisateurs soient saisis en minuscules lors de l'ouverture d'une session. En outre, il n'est pas possible d'ajouter des noms d'utilisateurs qui ne diffèrent que par la casse des lettres, comme user et User.
La longueur maximale par défaut des noms d'utilisateur est de 32 caractères. Pour la modifier, utilisez la commande
ipa config-mod --maxusername
. Par exemple, pour augmenter la longueur maximale des noms d'utilisateur à 64 caractères :$ ipa config-mod --maxusername=64 Maximum username length: 64 ...
La commande
ipa user-add
comprend de nombreux paramètres. Pour les énumérer tous, utilisez la commande ipa help :ipa help user-add
Pour plus d'informations sur la commande
ipa help
, voir Qu'est-ce que l'aide IPA?
Vous pouvez vérifier si le nouveau compte d'utilisateur a été créé avec succès en dressant la liste de tous les comptes d'utilisateur IdM :
ipa user-find
Cette commande dresse la liste de tous les comptes d'utilisateurs avec leurs détails.
2.3. Activation des utilisateurs à l'aide de la ligne de commande
Pour activer un compte d'utilisateur en le faisant passer de stage à actif, utilisez la commande ipa stageuser-activate
.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Obtention d'un ticket Kerberos. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Activez le compte d'utilisateur à l'aide de la commande suivante :
$ ipa stageuser-activate user_login ------------------------- Stage user user_login activated ------------------------- ...
Vous pouvez vérifier si le nouveau compte d'utilisateur a été créé avec succès en dressant la liste de tous les comptes d'utilisateur IdM :
ipa user-find
Cette commande dresse la liste de tous les comptes d'utilisateurs avec leurs détails.
2.4. Préserver les utilisateurs à l'aide de la ligne de commande
Vous pouvez préserver un compte d'utilisateur si vous souhaitez le supprimer, tout en conservant la possibilité de le restaurer ultérieurement. Pour préserver un compte d'utilisateur, utilisez l'option --preserve
avec les commandes ipa user-del
ou ipa stageuser-del
.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Obtention d'un ticket Kerberos. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Préservez le compte d'utilisateur à l'aide de la commande suivante :
$ ipa user-del --preserve user_login -------------------- Deleted user "user_login" --------------------
NoteBien que le résultat indique que le compte d'utilisateur a été supprimé, il a été préservé.
2.5. Suppression d'utilisateurs à l'aide de la ligne de commande
IdM (Identity Management) vous permet de supprimer des utilisateurs de façon permanente. Vous pouvez supprimer :
-
Les utilisateurs actifs avec la commande suivante :
ipa user-del
-
Les utilisateurs de l'étape avec la commande suivante :
ipa stageuser-del
-
Les utilisateurs préservés avec la commande suivante :
ipa user-del
Lors de la suppression de plusieurs utilisateurs, utilisez l'option --continue
pour forcer la commande à continuer sans tenir compte des erreurs. Un résumé des opérations réussies et échouées est imprimé sur le flux de sortie standard stdout
lorsque la commande est terminée.
ipa user-del --continue user1 user2 user3
Si vous n'utilisez pas --continue
, la commande procède à la suppression des utilisateurs jusqu'à ce qu'elle rencontre une erreur, après quoi elle s'arrête et sort.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Obtention d'un ticket Kerberos. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Supprimez le compte d'utilisateur à l'aide de la commande suivante :
$ ipa user-del user_login -------------------- Deleted user "user_login" --------------------
Le compte d'utilisateur a été définitivement supprimé de l'IdM.
2.6. Restauration des utilisateurs à l'aide de la ligne de commande
Vous pouvez restaurer un utilisateur préservé :
-
Utilisateurs actifs :
ipa user-undel
-
Utilisateurs du stade :
ipa user-stage
La restauration d'un compte d'utilisateur ne rétablit pas tous les attributs précédents du compte. Par exemple, le mot de passe de l'utilisateur n'est pas restauré et doit être défini à nouveau.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Obtention d'un ticket Kerberos. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
- Ouvrez un terminal et connectez-vous au serveur IdM.
Activez le compte d'utilisateur à l'aide de la commande suivante :
$ ipa user-undel user_login ------------------------------ Undeleted user account "user_login" ------------------------------
Vous pouvez également restaurer les comptes d'utilisateurs en tant que stades :
$ ipa user-stage user_login ------------------------------ Staged user account "user_login" ------------------------------
Verification steps
Vous pouvez vérifier si le nouveau compte d'utilisateur a été créé avec succès en dressant la liste de tous les comptes d'utilisateur IdM :
ipa user-find
Cette commande dresse la liste de tous les comptes d'utilisateurs avec leurs détails.
Chapitre 3. Gestion des comptes d'utilisateurs à l'aide de l'interface Web IdM
La gestion des identités (IdM) propose plusieurs étapes qui peuvent vous aider à gérer les différentes situations de vie professionnelle des utilisateurs :
- Création d'un compte utilisateur
Créer un compte d'utilisateur avant qu'un employé ne commence sa carrière dans votre entreprise et être prêt à l'avance pour le jour où l'employé se présentera au bureau et voudra activer le compte.
Vous pouvez omettre cette étape et créer directement le compte d'utilisateur actif. La procédure est similaire à la création d'un compte d'utilisateur de scène.
- Activation d'un compte d'utilisateur
- Activation du compte le premier jour ouvrable de l'employé.
- Désactivation d'un compte d'utilisateur
- Si l'utilisateur part en congé parental pendant quelques mois, vous devrez désactiver le compte temporairement.
- Activation d'un compte d'utilisateur
- Lorsque l'utilisateur revient, vous devez réactiver le compte.
- Préserver un compte d'utilisateur
- Si l'utilisateur souhaite quitter l'entreprise, vous devrez supprimer le compte avec la possibilité de le restaurer, car les personnes peuvent revenir dans l'entreprise après un certain temps.
- Restauration d'un compte d'utilisateur
- Deux ans plus tard, l'utilisateur est de retour et vous devez restaurer le compte préservé.
- Suppression d'un compte d'utilisateur
- Si l'employé est licencié, supprimez le compte sans sauvegarde.
3.1. Cycle de vie de l'utilisateur
La gestion des identités (IdM) prend en charge trois états de compte utilisateur :
- Stage les utilisateurs ne sont pas autorisés à s'authentifier. Il s'agit d'un état initial. Certaines propriétés du compte utilisateur requises pour les utilisateurs actifs ne peuvent pas être définies, par exemple l'appartenance à un groupe.
- Active les utilisateurs sont autorisés à s'authentifier. Toutes les propriétés requises du compte utilisateur doivent être définies dans cet état.
- Preserved sont d'anciens utilisateurs actifs qui sont considérés comme inactifs et ne peuvent pas s'authentifier auprès de l'IdM. Les utilisateurs préservés conservent la plupart des propriétés du compte qu'ils avaient en tant qu'utilisateurs actifs, mais ils ne font partie d'aucun groupe d'utilisateurs.
Vous pouvez supprimer définitivement les entrées utilisateur de la base de données IdM.
Les comptes d'utilisateurs supprimés ne peuvent pas être restaurés. Lorsque vous supprimez un compte d'utilisateur, toutes les informations associées à ce compte sont définitivement perdues.
Un nouvel administrateur ne peut être créé que par un utilisateur disposant de droits d'administrateur, tel que l'utilisateur admin par défaut. Si vous supprimez accidentellement tous les comptes d'administrateur, le gestionnaire de répertoire doit créer manuellement un nouvel administrateur dans le serveur de répertoire.
Ne pas supprimer l'utilisateur admin
. Comme admin
est un utilisateur prédéfini requis par l'IdM, cette opération pose des problèmes avec certaines commandes. Si vous souhaitez définir et utiliser un autre utilisateur administrateur, désactivez l'utilisateur prédéfini admin
avec ipa user-disable admin
après avoir accordé des droits d'administrateur à au moins un autre utilisateur.
N'ajoutez pas d'utilisateurs locaux à IdM. Le commutateur de service de noms (NSS) résout toujours les utilisateurs et les groupes IdM avant de résoudre les utilisateurs et les groupes locaux. Cela signifie, par exemple, que l'appartenance à un groupe IdM ne fonctionne pas pour les utilisateurs locaux.
3.2. Ajouter des utilisateurs dans l'interface web
En général, vous devez créer un nouveau compte utilisateur avant qu'un nouvel employé ne commence à travailler. Ce compte d'étape n'est pas accessible et vous devez l'activer ultérieurement.
Vous pouvez également créer directement un compte d'utilisateur actif. Pour ajouter un utilisateur actif, suivez la procédure ci-dessous et ajoutez le compte utilisateur dans l'onglet Active users.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
Procédure
- Connectez-vous à l'interface Web IdM.
Allez sur l'onglet Users → Stage Users.
Vous pouvez également ajouter le compte d'utilisateur sur le site Users → Active users, mais vous ne pouvez pas ajouter de groupes d'utilisateurs à ce compte.
- Cliquez sur l'icône Add.
- Dans la boîte de dialogue Add stage user, entrez First name et Last name du nouvel utilisateur.
[Facultatif] Dans le champ User login, ajoutez un nom de connexion.
Si vous laissez ce champ vide, le serveur IdM crée le nom de connexion selon le modèle suivant : La première lettre du prénom et le nom de famille. Le nom de connexion complet peut comporter jusqu'à 32 caractères.
- [Dans le menu déroulant GID, sélectionnez les groupes dans lesquels l'utilisateur doit être inclus.
- [Facultatif] Dans les champs Password et Verify password, saisissez votre mot de passe et confirmez-le, en veillant à ce qu'il corresponde à votre mot de passe.
Cliquez sur le bouton Add.
À ce stade, vous pouvez voir le compte d'utilisateur dans la table Stage Users.
Si vous cliquez sur le nom de l'utilisateur, vous pouvez modifier les paramètres avancés, tels que l'ajout d'un numéro de téléphone, d'une adresse ou d'une profession.
3.3. Activation des utilisateurs d'étape dans l'interface Web IdM
Un compte d'utilisateur de scène doit être activé avant que l'utilisateur puisse se connecter à IdM et avant qu'il puisse être ajouté à un groupe IdM. Cette section décrit comment activer les comptes d'utilisateurs de scène.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
- Au moins un compte d'utilisateur en phase dans l'IdM.
Procédure
- Connectez-vous à l'interface Web IdM.
- Allez sur l'onglet Users → Stage users.
- Cliquez sur la case à cocher du compte utilisateur que vous souhaitez activer.
Cliquez sur le bouton Activate.
- Dans la boîte de dialogue Confirmation, cliquez sur le bouton OK.
Si l'activation est réussie, l'interface Web IdM affiche une confirmation verte indiquant que l'utilisateur a été activé et que le compte utilisateur a été déplacé vers Active users. Le compte est actif et l'utilisateur peut s'authentifier auprès du domaine IdM et de l'interface Web IdM. L'utilisateur est invité à modifier son mot de passe lors de la première connexion.
À ce stade, vous pouvez ajouter le compte d'utilisateur actif aux groupes d'utilisateurs.
3.4. Désactivation des comptes d'utilisateurs dans l'interface Web
Vous pouvez désactiver les comptes d'utilisateurs actifs. La désactivation d'un compte d'utilisateur désactive le compte. Par conséquent, les comptes d'utilisateur ne peuvent pas être utilisés pour s'authentifier et utiliser les services IdM, tels que Kerberos, ou pour effectuer des tâches.
Les comptes d'utilisateurs désactivés existent toujours dans l'IdM et toutes les informations qui leur sont associées restent inchangées. Contrairement aux comptes d'utilisateurs préservés, les comptes d'utilisateurs désactivés restent actifs et peuvent être membres de groupes d'utilisateurs.
Après la désactivation d'un compte d'utilisateur, les connexions existantes restent valables jusqu'à l'expiration du TGT Kerberos et des autres tickets de l'utilisateur. Après l'expiration du ticket, l'utilisateur ne pourra pas le renouveler.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
Procédure
- Connectez-vous à l'interface Web IdM.
- Allez sur l'onglet Users → Active users.
- Cliquez sur la case à cocher des comptes d'utilisateurs que vous souhaitez désactiver.
Cliquez sur le bouton Disable.
- Dans la boîte de dialogue Confirmation, cliquez sur le bouton OK.
Si la procédure de désactivation a réussi, vous pouvez le vérifier dans la colonne Statut du tableau Active users.
3.5. Activation des comptes d'utilisateurs dans l'interface Web
L'IdM permet d'activer des comptes d'utilisateurs actifs désactivés. L'activation d'un compte d'utilisateur active le compte désactivé.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
Procédure
- Connectez-vous à l'interface Web IdM.
- Allez sur l'onglet Users → Active users.
- Cliquez sur la case à cocher des comptes d'utilisateurs que vous souhaitez activer.
Cliquez sur le bouton Enable.
- Dans la boîte de dialogue Confirmation, cliquez sur le bouton OK.
Si la modification a été effectuée avec succès, vous pouvez le vérifier dans la colonne Statut du tableau Active users.
3.6. Préservation des utilisateurs actifs dans l'interface Web IdM
La préservation des comptes d'utilisateurs vous permet de supprimer des comptes de l'onglet Active users, tout en conservant ces comptes dans l'IdM.
Conservez le compte utilisateur si l'employé quitte l'entreprise. Si vous souhaitez désactiver les comptes d'utilisateur pendant quelques semaines ou quelques mois (congé parental, par exemple), désactivez le compte. Pour plus d'informations, voir Désactivation des comptes d'utilisateurs dans l'interface Web. Les comptes conservés ne sont pas actifs et les utilisateurs ne peuvent pas les utiliser pour accéder à votre réseau interne, mais le compte reste dans la base de données avec toutes les données.
Vous pouvez remettre les comptes restaurés en mode actif.
La liste des utilisateurs dans l'état préservé peut fournir un historique des anciens comptes d'utilisateurs.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM (Identity Management) ou rôle d'administrateur des utilisateurs.
Procédure
- Connectez-vous à l'interface Web IdM.
- Allez sur l'onglet Users → Active users.
- Cliquez sur la case à cocher des comptes d'utilisateurs que vous souhaitez conserver.
Cliquez sur le bouton Delete.
- Dans la boîte de dialogue Remove users, remplacez le bouton radio Delete mode par preserve.
Cliquez sur le bouton Delete.
En conséquence, le compte d'utilisateur est déplacé vers Preserved users.
Si vous devez restaurer les utilisateurs conservés, consultez la section Restauration des utilisateurs dans l'interface Web IdM.
3.7. Restauration des utilisateurs dans l'interface Web IdM
IdM (Identity Management) vous permet de restaurer les comptes d'utilisateurs préservés à l'état actif. Vous pouvez restaurer un utilisateur préservé en tant qu'utilisateur actif ou en tant qu'utilisateur d'étape.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
Procédure
- Connectez-vous à l'interface Web IdM.
- Allez sur l'onglet Users → Preserved users.
- Cliquez sur la case à cocher des comptes d'utilisateurs que vous souhaitez restaurer.
Cliquez sur le bouton Restore.
- Dans la boîte de dialogue Confirmation, cliquez sur le bouton OK.
L'interface Web IdM affiche une confirmation verte et déplace les comptes d'utilisateurs vers l'onglet Active users.
3.8. Suppression d'utilisateurs dans l'interface Web IdM
La suppression d'utilisateurs est une opération irréversible, qui entraîne la suppression permanente des comptes d'utilisateurs de la base de données de l'IdM, y compris les appartenances à des groupes et les mots de passe. Toute configuration externe de l'utilisateur, telle que le compte système et le répertoire personnel, n'est pas supprimée, mais n'est plus accessible par l'intermédiaire de l'IdM.
Vous pouvez supprimer :
Utilisateurs actifs - l'interface Web de l'IdM vous offre les options suivantes :
Préservation temporaire des utilisateurs
Pour plus de détails, voir la section Préserver les utilisateurs actifs dans l'interface Web IdM.
- Suppression définitive
- Utilisateurs de l'étape - vous pouvez supprimer définitivement les utilisateurs de l'étape.
- Utilisateurs conservés - vous pouvez supprimer définitivement les utilisateurs conservés.
La procédure suivante décrit la suppression des utilisateurs actifs. De même, vous pouvez supprimer des comptes d'utilisateurs sur :
- L'onglet Stage users
- L'onglet Preserved users
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
Procédure
- Connectez-vous à l'interface Web IdM.
Allez sur l'onglet Users → Active users.
Vous pouvez également supprimer le compte d'utilisateur sur le site Users → Stage users ou Users → Preserved users.
- Cliquez sur l'icône Delete.
- Dans la boîte de dialogue Remove users, remplacez le bouton radio Delete mode par delete.
- Cliquez sur le bouton Delete.
Les comptes des utilisateurs ont été définitivement supprimés de l'IdM.
Chapitre 4. Gérer les comptes d'utilisateurs à l'aide de playbooks Ansible
Vous pouvez gérer les utilisateurs dans IdM à l'aide de carnets de commande Ansible. Après avoir présenté le cycle de vie des utilisateurs, ce chapitre décrit comment utiliser les playbooks Ansible pour les opérations suivantes :
-
Assurer la présence d'un seul utilisateur répertorié directement dans le fichier
YML
. -
Assurer la présence de plusieurs utilisateurs listés directement dans le fichier
YML
. -
Assurer la présence de plusieurs utilisateurs répertoriés dans un fichier
JSON
référencé à partir du fichierYML
. -
Garantir l'absence d'utilisateurs listés directement dans le fichier
YML
.
4.1. Cycle de vie de l'utilisateur
La gestion des identités (IdM) prend en charge trois états de compte utilisateur :
- Stage les utilisateurs ne sont pas autorisés à s'authentifier. Il s'agit d'un état initial. Certaines propriétés du compte utilisateur requises pour les utilisateurs actifs ne peuvent pas être définies, par exemple l'appartenance à un groupe.
- Active les utilisateurs sont autorisés à s'authentifier. Toutes les propriétés requises du compte utilisateur doivent être définies dans cet état.
- Preserved sont d'anciens utilisateurs actifs qui sont considérés comme inactifs et ne peuvent pas s'authentifier auprès de l'IdM. Les utilisateurs préservés conservent la plupart des propriétés du compte qu'ils avaient en tant qu'utilisateurs actifs, mais ils ne font partie d'aucun groupe d'utilisateurs.
Vous pouvez supprimer définitivement les entrées utilisateur de la base de données IdM.
Les comptes d'utilisateurs supprimés ne peuvent pas être restaurés. Lorsque vous supprimez un compte d'utilisateur, toutes les informations associées à ce compte sont définitivement perdues.
Un nouvel administrateur ne peut être créé que par un utilisateur disposant de droits d'administrateur, tel que l'utilisateur admin par défaut. Si vous supprimez accidentellement tous les comptes d'administrateur, le gestionnaire de répertoire doit créer manuellement un nouvel administrateur dans le serveur de répertoire.
Ne pas supprimer l'utilisateur admin
. Comme admin
est un utilisateur prédéfini requis par l'IdM, cette opération pose des problèmes avec certaines commandes. Si vous souhaitez définir et utiliser un autre utilisateur administrateur, désactivez l'utilisateur prédéfini admin
avec ipa user-disable admin
après avoir accordé des droits d'administrateur à au moins un autre utilisateur.
N'ajoutez pas d'utilisateurs locaux à IdM. Le commutateur de service de noms (NSS) résout toujours les utilisateurs et les groupes IdM avant de résoudre les utilisateurs et les groupes locaux. Cela signifie, par exemple, que l'appartenance à un groupe IdM ne fonctionne pas pour les utilisateurs locaux.
4.2. Assurer la présence d'un utilisateur IdM à l'aide d'un playbook Ansible
La procédure suivante décrit comment assurer la présence d'un utilisateur dans IdM à l'aide d'un playbook Ansible.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. 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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier Ansible playbook avec les données de l'utilisateur dont vous voulez assurer la présence dans IdM. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier
/usr/share/doc/ansible-freeipa/playbooks/user/add-user.yml
. Par exemple, pour créer un utilisateur nommé idm_user et ajouter Password123 comme mot de passe :--- - name: Playbook to handle users hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Create user idm_user ipauser: ipaadmin_password: "{{ ipaadmin_password }}" name: idm_user first: Alice last: Acme uid: 1000111 gid: 10011 phone: "+555123457" email: idm_user@acme.com passwordexpiration: "2023-01-19 23:59:59" password: "Password123" update_password: on_create
Vous devez utiliser les options suivantes pour ajouter un utilisateur :
- namele nom d'utilisateur
- first: la chaîne de caractères du prénom
- last: la chaîne du nom de famille
Pour la liste complète des options disponibles pour l'utilisateur, voir le fichier Markdown de
/usr/share/doc/ansible-freeipa/README-user.md
.NoteSi vous utilisez l'option
update_password: on_create
, Ansible ne crée le mot de passe de l'utilisateur que lorsqu'il crée l'utilisateur. Si l'utilisateur est déjà créé avec un mot de passe, Ansible ne génère pas de nouveau mot de passe.Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-IdM-user.yml
Verification steps
Vous pouvez vérifier si le nouveau compte d'utilisateur existe dans IdM en utilisant la commande
ipa user-show
:Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Demander un ticket Kerberos pour l'administrateur :
$ kinit admin Password for admin@IDM.EXAMPLE.COM:
Demande d'informations sur idm_user:
$ ipa user-show idm_user User login: idm_user First name: Alice Last name: Acme ....
L'utilisateur nommé idm_user est présent dans IdM.
4.3. Assurer la présence de plusieurs utilisateurs IdM à l'aide de playbooks Ansible
La procédure suivante décrit comment assurer la présence de plusieurs utilisateurs dans IdM à l'aide d'un playbook Ansible.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. 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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier Ansible playbook avec les données des utilisateurs dont vous voulez assurer la présence dans IdM. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier
/usr/share/doc/ansible-freeipa/playbooks/user/ensure-users-present.yml
. Par exemple, pour créer les utilisateurs idm_user_1, idm_user_2, et idm_user_3, et ajouter Password123 comme mot de passe de idm_user_1:--- - name: Playbook to handle users hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Create user idm_users ipauser: ipaadmin_password: "{{ ipaadmin_password }}" users: - name: idm_user_1 first: Alice last: Acme uid: 10001 gid: 10011 phone: "+555123457" email: idm_user@acme.com passwordexpiration: "2023-01-19 23:59:59" password: "Password123" - name: idm_user_2 first: Bob last: Acme uid: 100011 gid: 10011 - name: idm_user_3 first: Eve last: Acme uid: 1000111 gid: 10011
NoteSi vous ne spécifiez pas l'option update_password: on_create, Ansible réinitialise le mot de passe de l'utilisateur à chaque fois que le livre de jeu est exécuté : si l'utilisateur a modifié le mot de passe depuis la dernière fois que le livre de jeu a été exécuté, Ansible réinitialise le mot de passe.
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-users.yml
Verification steps
Vous pouvez vérifier si le compte d'utilisateur existe dans IdM en utilisant la commande
ipa user-show
:Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh administrator@server.idm.example.com Password: [admin@server /]$
Afficher des informations sur idm_user_1:
$ ipa user-show idm_user_1 User login: idm_user_1 First name: Alice Last name: Acme Password: True ....
L'utilisateur nommé idm_user_1 est présent dans IdM.
4.4. Assurer la présence de plusieurs utilisateurs IdM à partir d'un fichier JSON en utilisant les playbooks Ansible
La procédure suivante décrit comment assurer la présence de plusieurs utilisateurs dans IdM à l'aide d'un playbook Ansible. Les utilisateurs sont stockés dans un fichier JSON
.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. 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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les tâches nécessaires. Référencez le fichier
JSON
avec les données des utilisateurs dont vous voulez assurer la présence. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/ensure-users-present-ymlfile.yml
:--- - name: Ensure users' presence hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Include users.json include_vars: file: users.json - name: Users present ipauser: ipaadmin_password: "{{ ipaadmin_password }}" users: "{{ users }}"
Créez le fichier
users.json
et ajoutez-y les utilisateurs IdM. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple du fichier/usr/share/doc/ansible-freeipa/playbooks/user/users.json
. Par exemple, pour créer les utilisateurs idm_user_1, idm_user_2, et idm_user_3, et ajouter Password123 comme mot de passe de idm_user_1:{ "users": [ { "name": "idm_user_1", "first": "Alice", "last": "Acme", "password": "Password123" }, { "name": "idm_user_2", "first": "Bob", "last": "Acme" }, { "name": "idm_user_3", "first": "Eve", "last": "Acme" } ] }
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 path_to_playbooks_directory/ensure-users-present-jsonfile.yml
Verification steps
Vous pouvez vérifier si les comptes d'utilisateurs sont présents dans IdM à l'aide de la commande
ipa user-show
:Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh administrator@server.idm.example.com Password: [admin@server /]$
Afficher des informations sur idm_user_1:
$ ipa user-show idm_user_1 User login: idm_user_1 First name: Alice Last name: Acme Password: True ....
L'utilisateur nommé idm_user_1 est présent dans IdM.
4.5. Assurer l'absence d'utilisateurs utilisant des playbooks Ansible
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer que des utilisateurs spécifiques sont absents de l'IdM.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. 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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les utilisateurs dont vous voulez garantir l'absence d'IdM. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier
/usr/share/doc/ansible-freeipa/playbooks/user/ensure-users-present.yml
. Par exemple, pour supprimer les utilisateurs idm_user_1, idm_user_2, et idm_user_3:--- - name: Playbook to handle users hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Delete users idm_user_1, idm_user_2, idm_user_3 ipauser: ipaadmin_password: "{{ ipaadmin_password }}" users: - name: idm_user_1 - name: idm_user_2 - name: idm_user_3 state: absent
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 path_to_playbooks_directory/delete-users.yml
Verification steps
Vous pouvez vérifier que les comptes d'utilisateurs n'existent pas dans IdM en utilisant la commande ipa user-show
:
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh administrator@server.idm.example.com Password: [admin@server /]$
Demande d'informations sur idm_user_1:
$ ipa user-show idm_user_1 ipa: ERROR: idm_user_1: user not found
L'utilisateur nommé idm_user_1 n'existe pas dans IdM.
4.6. Ressources supplémentaires
-
Voir le fichier Markdown de
README-user.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks Ansible dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/user
.
Chapitre 5. Gestion des mots de passe des utilisateurs dans l'IdM
5.1. Qui peut modifier les mots de passe des utilisateurs de l'IdM et comment ?
Les utilisateurs réguliers qui ne sont pas autorisés à modifier les mots de passe d'autres utilisateurs ne peuvent modifier que leur propre mot de passe. Le nouveau mot de passe doit être conforme aux politiques de mot de passe de l'IdM applicables aux groupes dont l'utilisateur est membre. Pour plus de détails sur la configuration des politiques de mot de passe, voir Définir les politiques de mot de passe de l'IdM.
Les administrateurs et les utilisateurs ayant le droit de modifier les mots de passe peuvent définir des mots de passe initiaux pour les nouveaux utilisateurs et réinitialiser les mots de passe des utilisateurs existants. Ces mots de passe :
- Il n'est pas nécessaire de respecter les politiques de mot de passe de l'IdM.
- Expirent après la première connexion réussie. Dans ce cas, l'IdM invite l'utilisateur à modifier immédiatement le mot de passe expiré. Pour désactiver ce comportement, voir Activer la réinitialisation du mot de passe dans IdM sans inviter l'utilisateur à changer de mot de passe lors de la prochaine connexion.
L'utilisateur du LDAP Directory Manager (DM) peut modifier les mots de passe des utilisateurs à l'aide des outils LDAP. Le nouveau mot de passe peut remplacer toute politique de mot de passe de l'IdM. Les mots de passe définis par DM n'expirent pas après la première connexion.
5.2. Modification du mot de passe de l'utilisateur dans l'interface Web de l'IdM
En tant qu'utilisateur de la gestion des identités (IdM), vous pouvez modifier votre mot de passe d'utilisateur dans l'interface Web IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
Procédure
Dans le coin supérieur droit, cliquez sur User name → Change password.
Figure 5.1. Réinitialisation du mot de passe
- Saisissez le mot de passe actuel et le nouveau mot de passe.
5.3. Réinitialisation du mot de passe d'un autre utilisateur dans l'interface Web IdM
En tant qu'utilisateur administratif de Identity Management (IdM), vous pouvez modifier les mots de passe d'autres utilisateurs dans l'interface Web IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM en tant qu'utilisateur administratif.
Procédure
-
Sélectionner Identité →
Users
. - Cliquez sur le nom de l'utilisateur à modifier.
Cliquez sur Actions →
Reset password
.Figure 5.2. Réinitialisation du mot de passe
Saisissez le nouveau mot de passe et cliquez sur Réinitialiser le mot de passe.
Figure 5.3. Confirmation du nouveau mot de passe
5.4. Réinitialisation du mot de passe de l'utilisateur du gestionnaire de répertoire
Si vous perdez le mot de passe de l'Identity Management (IdM) Directory Manager, vous pouvez le réinitialiser.
Conditions préalables
-
Vous avez un accès
root
à un serveur IdM.
Procédure
Générez un nouveau hachage de mot de passe à l'aide de la commande
pwdhash
. Par exemple :# pwdhash -D /etc/dirsrv/slapd-IDM-EXAMPLE-COM password {PBKDF2_SHA256}AAAgABU0bKhyjY53NcxY33ueoPjOUWtl4iyYN5uW...
En spécifiant le chemin d'accès à la configuration du serveur d'annuaire, vous utilisez automatiquement le schéma de stockage du mot de passe défini dans l'attribut
nsslapd-rootpwstoragescheme
pour crypter le nouveau mot de passe.Sur chaque serveur IdM de votre topologie, exécutez les étapes suivantes :
Arrêter tous les services IdM installés sur le serveur :
# ipactl stop
Modifiez le fichier
/etc/dirsrv/IDM-EXAMPLE-COM/dse.ldif
et attribuez à l'attributnsslapd-rootpw
la valeur générée par la commandepwdhash
:nsslapd-rootpw: {PBKDF2_SHA256}AAAgABU0bKhyjY53NcxY33ueoPjOUWtl4iyYN5uW...
- Démarrer tous les services IdM installés sur le serveur :
# ipactl start
5.5. Modification du mot de passe de l'utilisateur ou réinitialisation du mot de passe d'un autre utilisateur dans l'interface CLI de l'IdM
Vous pouvez modifier votre mot de passe utilisateur à l'aide de l'interface de ligne de commande (CLI) de la gestion des identités (IdM). Si vous êtes un utilisateur administratif, vous pouvez utiliser l'interface de ligne de commande pour réinitialiser le mot de passe d'un autre utilisateur.
Conditions préalables
- Vous avez obtenu un ticket d'attribution de ticket (TGT) pour un utilisateur IdM.
- Si vous réinitialisez le mot de passe d'un autre utilisateur, vous devez avoir obtenu un TGT pour un utilisateur administratif dans IdM.
Procédure
Entrez la commande
ipa user-mod
avec le nom de l'utilisateur et l'option--password
. La commande vous demandera le nouveau mot de passe.$ ipa user-mod idm_user --password Password: Enter Password again to verify: -------------------- Modified user "idm_user" -------------------- ...
Vous pouvez également utiliser la commande ipa passwd
idm_user au lieu de ipa user-mod
.
5.6. Permettre la réinitialisation du mot de passe dans l'IdM sans demander à l'utilisateur de changer de mot de passe lors de la prochaine connexion
Par défaut, lorsqu'un administrateur réinitialise le mot de passe d'un autre utilisateur, le mot de passe expire après la première connexion réussie. En tant que gestionnaire de l'annuaire IdM, vous pouvez spécifier les privilèges suivants pour les administrateurs IdM individuels :
- Ils peuvent effectuer des opérations de changement de mot de passe sans exiger des utilisateurs qu'ils modifient leur mot de passe lors de leur première connexion.
- Ils peuvent contourner la politique en matière de mots de passe de sorte qu'aucune force ou historique n'est appliquée.
Le contournement de la politique de mot de passe peut constituer une menace pour la sécurité. Faites preuve de prudence lorsque vous sélectionnez les utilisateurs auxquels vous accordez ces privilèges supplémentaires.
Conditions préalables
- Vous connaissez le mot de passe du gestionnaire de répertoire.
Procédure
Sur chaque serveur de gestion des identités (IdM) du domaine, effectuez les modifications suivantes :
Entrez la commande
ldapmodify
pour modifier les entrées LDAP. Indiquez le nom du serveur IdM et le port 389, puis appuyez sur Entrée :$ ldapmodify -x -D "cn=Directory Manager" -W -h server.idm.example.com -p 389 Enter LDAP Password:
- Saisissez le mot de passe du gestionnaire de répertoire.
Saisissez le nom distinctif de l'entrée de synchronisation du mot de passe
ipa_pwd_extop
et appuyez sur Entrée :dn : cn=ipa_pwd_extop,cn=plugins,cn=config
Spécifiez le type de modification
modify
et appuyez sur Entrée :changetype : modify
Indiquez le type de modification que vous souhaitez que LDAP exécute et à quel attribut. Appuyez sur Entrée :
ajouter : passSyncManagersDNs
Spécifiez les comptes d'utilisateurs administratifs dans l'attribut
passSyncManagersDNs
. Cet attribut a plusieurs valeurs. Par exemple, pour accorder à l'utilisateuradmin
les pouvoirs de réinitialisation du mot de passe de Directory Manager :passSyncManagersDNs: \ uid=admin,cn=users,cn=accounts,dc=example,dc=com
- Appuyez deux fois sur Enter pour arrêter la modification de l'entrée.
L'ensemble de la procédure se déroule comme suit :
$ ldapmodify -x -D "cn=Directory Manager" -W -h server.idm.example.com -p 389 Enter LDAP Password: dn: cn=ipa_pwd_extop,cn=plugins,cn=config changetype: modify add: passSyncManagersDNs passSyncManagersDNs: uid=admin,cn=users,cn=accounts,dc=example,dc=com
L'utilisateur admin
, répertorié sous passSyncManagerDNs
, dispose désormais de privilèges supplémentaires.
5.7. Vérifier si le compte d'un utilisateur IdM est verrouillé
En tant qu'administrateur de la gestion des identités (IdM), vous pouvez vérifier si le compte d'un utilisateur IdM est verrouillé. Pour ce faire, vous devez comparer le nombre maximal autorisé de tentatives de connexion infructueuses d'un utilisateur avec le nombre de connexions infructueuses réelles de l'utilisateur.
Conditions préalables
- Vous avez obtenu le ticket d'attribution de ticket (TGT) d'un utilisateur administratif dans IdM.
Procédure
Affichez le statut du compte utilisateur pour connaître le nombre d'échecs de connexion :
$ ipa user-status example_user ----------------------- Account disabled: False ----------------------- Server: idm.example.com Failed logins: 8 Last successful authentication: N/A Last failed authentication: 20220229080317Z Time now: 2022-02-29T08:04:46Z ---------------------------- Number of entries returned 1 ----------------------------
Affiche le nombre de tentatives de connexion autorisées pour un utilisateur donné :
- Se connecter à l'interface Web IdM en tant qu'administrateur IdM.
- Ouvrez l'onglet Identity → Users → Active users.
- Cliquez sur le nom de l'utilisateur pour ouvrir les paramètres de l'utilisateur.
- Dans la section Password policy, localisez l'élément Max failures.
-
Comparez le nombre d'échecs de connexion affiché dans la sortie de la commande
ipa user-status
avec le nombre de Max failures affiché dans l'interface Web de l'IdM. Si le nombre d'échecs de connexion est égal au nombre maximum de tentatives de connexion autorisées, le compte de l'utilisateur est verrouillé.
Ressources supplémentaires
5.8. Déverrouillage des comptes d'utilisateurs en cas d'échec du mot de passe dans l'IdM
Si un utilisateur tente de se connecter en utilisant un mot de passe incorrect un certain nombre de fois, la gestion des identités (IdM) verrouille le compte de l'utilisateur, ce qui l'empêche de se connecter. Pour des raisons de sécurité, l'IdM n'affiche aucun message d'avertissement indiquant que le compte de l'utilisateur a été verrouillé. Au lieu de cela, l'invite CLI peut continuer à demander à l'utilisateur un mot de passe encore et encore.
L'IdM déverrouille automatiquement le compte d'utilisateur après un certain temps. Vous pouvez également déverrouiller le compte d'utilisateur manuellement en suivant la procédure suivante.
Conditions préalables
- Vous avez obtenu le ticket d'attribution de ticket d'un utilisateur administratif de l'IdM.
Procédure
Pour déverrouiller un compte d'utilisateur, utilisez la commande
ipa user-unlock
.$ ipa user-unlock idm_user ----------------------- Unlocked account "idm_user" -----------------------
L'utilisateur peut ensuite se reconnecter.
Ressources supplémentaires
5.9. Activation du suivi de la dernière authentification Kerberos réussie pour les utilisateurs dans IdM
Pour des raisons de performance, Identity Management (IdM) fonctionnant dans Red Hat Enterprise Linux 8 ne stocke pas l'horodatage de la dernière authentification Kerberos réussie d'un utilisateur. Par conséquent, certaines commandes, telles que ipa user-status
, n'affichent pas l'horodatage.
Conditions préalables
- Vous avez obtenu le ticket d'attribution de ticket (TGT) d'un utilisateur administratif dans IdM.
-
Vous avez un accès
root
au serveur IdM sur lequel vous exécutez la procédure.
Procédure
Affiche les fonctions du plug-in de mot de passe actuellement activées :
# ipa config-show | grep "Password plugin features" Password plugin features: AllowNThash, KDC:Disable Last Success
La sortie montre que le plug-in
KDC:Disable Last Success
est activé. Le plug-in masque la dernière tentative d'authentification Kerberos réussie dans la sortie ipa user-status.Ajouter le paramètre
--ipaconfigstring=feature
le paramètre pour chaque fonctionnalité de la commandeipa config-mod
actuellement activée, à l'exception deKDC:Disable Last Success
:# ipa config-mod --ipaconfigstring='AllowNThash'
Cette commande n'active que le plug-in
AllowNThash
. Pour activer plusieurs fonctionnalités, spécifiez le paramètre--ipaconfigstring=feature
séparément pour chaque fonctionnalité.Redémarrer IdM :
# ipactl restart
Chapitre 6. Définition des politiques de mot de passe de l'IdM
Ce chapitre décrit les politiques de mot de passe de la gestion des identités (IdM) et explique comment ajouter une nouvelle politique de mot de passe dans l'IdM à l'aide d'un playbook Ansible.
6.1. Qu'est-ce qu'une politique de mot de passe ?
Une politique de mot de passe est un ensemble de règles auxquelles les mots de passe doivent répondre. Par exemple, une politique de mot de passe peut définir la longueur minimale et la durée maximale d'un mot de passe. Tous les utilisateurs concernés par cette politique sont tenus de définir un mot de passe suffisamment long et de le modifier assez fréquemment pour satisfaire aux conditions spécifiées. De cette manière, les politiques de mot de passe contribuent à réduire le risque que quelqu'un découvre et utilise à mauvais escient le mot de passe d'un utilisateur.
6.2. Politiques en matière de mots de passe dans l'IdM
Les mots de passe sont le moyen le plus courant pour les utilisateurs de la gestion de l'identité (IdM) de s'authentifier auprès du domaine Kerberos IdM. Les stratégies de mot de passe définissent les exigences auxquelles doivent répondre les mots de passe des utilisateurs IdM.
La politique de mot de passe de l'IdM est définie dans l'annuaire LDAP sous-jacent, mais c'est le centre de distribution de clés Kerberos (KDC) qui applique la politique de mot de passe.
Les attributs de la politique de mot de passe énumèrent les attributs que vous pouvez utiliser pour définir une politique de mot de passe dans IdM.
Tableau 6.1. Attributs de la politique relative aux mots de passe
Attribut | Explication | Exemple : |
---|---|---|
Durée de vie maximale | Durée maximale en jours pendant laquelle un mot de passe est valide avant que l'utilisateur ne doive le réinitialiser. | Durée de vie maximale = 90 Les mots de passe des utilisateurs ne sont valables que pendant 90 jours. Après cette période, l'IdM invite les utilisateurs à les modifier. |
Durée de vie minimale | Le temps minimum en heures qui doit s'écouler entre deux opérations de changement de mot de passe. | Durée de vie minimale = 1 Après avoir modifié leur mot de passe, les utilisateurs doivent attendre au moins une heure avant de le modifier à nouveau. |
Taille de l'histoire | Le nombre de mots de passe précédents qui sont stockés. Un utilisateur ne peut pas réutiliser un mot de passe de son historique de mots de passe, mais peut réutiliser d'anciens mots de passe qui ne sont pas stockés. | Taille de l'historique = 0 Dans ce cas, l'historique des mots de passe est vide et les utilisateurs peuvent réutiliser n'importe lequel de leurs mots de passe précédents. |
Classes de personnages | Le nombre de classes de caractères différentes que l'utilisateur doit utiliser dans le mot de passe. Les classes de caractères sont les suivantes : * Caractères majuscules * Caractères minuscules * Chiffres * Caractères spéciaux, tels que virgule (,), point (.), astérisque (*) * Autres caractères UTF-8 L'utilisation d'un caractère trois fois ou plus à la suite diminue la classe du caractère d'une unité. Par exemple :
*
* | Classes de caractères = 0
Le nombre de classes requis par défaut est de 0. Pour configurer ce nombre, exécutez la commande Voir également la note importante sous ce tableau. |
Longueur minimale | Nombre minimum de caractères dans un mot de passe. Si l'une des options de politique de mot de passe supplémentaires est définie, la longueur minimale des mots de passe est de 6, quelle que soit la valeur de l'option Longueur min. | Longueur minimale = 8 Les utilisateurs ne peuvent pas utiliser de mots de passe de moins de 8 caractères. |
Défaillances maximales | Nombre maximal de tentatives de connexion échouées avant que l'IdM ne verrouille le compte de l'utilisateur. | Nombre maximal d'échecs = 6 L'IdM verrouille le compte de l'utilisateur lorsque celui-ci saisit un mot de passe erroné sept fois de suite. |
Intervalle de réinitialisation des défaillances | Délai en secondes après lequel l'IdM réinitialise le nombre actuel de tentatives de connexion infructueuses. | Intervalle de réinitialisation des défaillances = 60
Si l'utilisateur attend plus d'une minute après le nombre d'échecs de connexion défini à l'adresse |
Durée du verrouillage |
Durée en secondes pendant laquelle le compte de l'utilisateur est verrouillé après le nombre de tentatives de connexion infructueuses défini à l'adresse | Durée du verrouillage = 600 Les utilisateurs dont le compte est verrouillé ne peuvent pas se connecter pendant 10 minutes. |
Utilisez l'alphabet anglais et les symboles courants pour les classes de caractères requises si vous disposez d'un ensemble diversifié de matériel qui peut ne pas avoir accès aux caractères et symboles internationaux. Pour plus d'informations sur les politiques de classes de caractères dans les mots de passe, voir Quels sont les caractères valides dans un mot de passe ? dans la base de connaissances de Red Hat.
6.3. Assurer la présence d'une politique de mot de passe dans IdM à l'aide d'un playbook Ansible
Cette section décrit comment assurer la présence d'une politique de mot de passe dans la gestion des identités (IdM) à l'aide d'un playbook Ansible.
Dans la politique de mot de passe global_policy
par défaut dans IdM, le nombre de classes de caractères différents dans le mot de passe est fixé à 0. La taille de l'historique est également fixée à 0.
Effectuez cette procédure pour appliquer une politique de mot de passe plus stricte pour un groupe IdM à l'aide d'un playbook Ansible.
Vous ne pouvez définir une politique de mot de passe que pour un groupe IdM. Vous ne pouvez pas définir une politique de mot de passe pour un utilisateur individuel.
Conditions préalables
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 connaissez le mot de passe de l'administrateur IdM.
- Le groupe pour lequel vous vous assurez de la présence d'une politique de mot de passe existe dans IdM.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez leFQDN
de votre serveur IdM dans la section[ipaserver]
:[ipaserver] server.idm.example.com
Créez votre fichier playbook Ansible qui définit la politique de mot de passe dont vous voulez assurer la présence. Pour simplifier cette étape, copiez et modifiez l'exemple dans le fichier
/usr/share/doc/ansible-freeipa/playbooks/pwpolicy/pwpolicy_present.yml
:--- - name: Tests hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure presence of pwpolicy for group ops ipapwpolicy: ipaadmin_password: "{{ ipaadmin_password }}" name: ops minlife: 7 maxlife: 49 history: 5 priority: 1 lockouttime: 300 minlength: 8 minclasses: 4 maxfail: 3 failinterval: 5
Pour plus de détails sur la signification des différentes variables, voir Attributs de la politique de mot de passe.
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory_/new_pwpolicy_present.yml
Vous avez utilisé avec succès un playbook Ansible pour vous assurer qu'une politique de mot de passe pour le groupe ops est présente dans IdM.
La priorité de la politique de mot de passe ops est fixée à 1, alors que la politique de mot de passe global_policy n'a pas de priorité définie. Pour cette raison, la politique ops remplace automatiquement global_policy pour le groupe ops et est appliquée immédiatement.
global_policy sert de stratégie de repli lorsqu'aucune stratégie de groupe n'est définie pour un utilisateur, et ne peut jamais avoir la priorité sur une stratégie de groupe.
Ressources supplémentaires
-
Voir le fichier
README-pwpolicy.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. - Voir les priorités politiques du mot de passe.
6.4. Options supplémentaires de politique de mot de passe dans IdM
En tant qu'administrateur Identity Management (IdM), vous pouvez renforcer les exigences en matière de mot de passe par défaut en activant des options de politique de mot de passe supplémentaires basées sur l'ensemble des fonctionnalités de libpwquality
. Les options supplémentaires de stratégie de mot de passe sont les suivantes :
--maxrepeat
- Spécifie le nombre maximal acceptable de caractères consécutifs identiques dans le nouveau mot de passe.
--maxsequence
- Spécifie la longueur maximale des séquences de caractères monotones dans le nouveau mot de passe. Des exemples d'une telle séquence sont 12345 ou fedcb. La plupart de ces mots de passe ne passeront pas le contrôle de simplicité.
--dictcheck
-
Si non nul, vérifie si le mot de passe, avec d'éventuelles modifications, correspond à un mot du dictionnaire. Actuellement,
libpwquality
effectue la vérification du dictionnaire à l'aide de la bibliothèquecracklib
. --usercheck
- S'il est différent de zéro, il vérifie si le mot de passe, avec d'éventuelles modifications, contient le nom de l'utilisateur sous une forme ou une autre. Cette vérification n'est pas effectuée pour les noms d'utilisateur de moins de 3 caractères.
Vous ne pouvez pas appliquer les options supplémentaires de politique de mot de passe aux mots de passe existants. Si vous appliquez l'une des options supplémentaires, l'IdM définit automatiquement l'option --minlength
, le nombre minimum de caractères dans un mot de passe, à 6 caractères.
Dans un environnement mixte avec des serveurs RHEL 7, RHEL 8 et RHEL 9, vous pouvez appliquer les paramètres supplémentaires de la stratégie de mot de passe uniquement sur les serveurs fonctionnant sous RHEL 8.4 ou une version ultérieure. Si un utilisateur est connecté à un client IdM et que ce dernier communique avec un serveur IdM fonctionnant sous RHEL 8.3 ou une version antérieure, les nouvelles exigences en matière de stratégie de mot de passe définies par l'administrateur système ne seront pas appliquées. Pour garantir un comportement cohérent, mettez à niveau ou mettez à jour tous les serveurs vers RHEL 8.4 ou une version ultérieure.
Ressources complémentaires :
- Appliquer des politiques de mot de passe supplémentaires à un groupe IdM
-
pwquality(3)
page de manuel
6.5. Appliquer des options supplémentaires de politique de mot de passe à un groupe IdM
Cette section décrit comment appliquer des options supplémentaires de politique de mot de passe dans la gestion des identités (IdM). L'exemple décrit comment renforcer la politique de mot de passe pour le groupe managers en s'assurant que les nouveaux mots de passe ne contiennent pas les noms d'utilisateur respectifs des utilisateurs et que les mots de passe ne contiennent pas plus de deux caractères identiques à la suite.
Conditions préalables
- Vous êtes connecté en tant qu'administrateur IdM.
- Le groupe managers existe dans IdM.
- La politique de mot de passe managers existe dans IdM.
Procédure
Appliquer le contrôle du nom d'utilisateur à tous les nouveaux mots de passe proposés par les utilisateurs du groupe managers:
$ ipa pwpolicy-mod --usercheck=True managers
NoteSi vous ne spécifiez pas le nom de la politique de mot de passe, la valeur par défaut
global_policy
est modifiée.Définissez le nombre maximum de caractères identiques consécutifs à 2 dans la politique de mot de passe managers:
$ ipa pwpolicy-mod --maxrepeat=2 managers
Un mot de passe ne sera pas accepté s'il contient plus de 2 caractères identiques consécutifs. Par exemple, la combinaison eR873mUi111YJQ est inacceptable parce qu'elle contient trois 1consécutifs.
Vérification
Ajouter un utilisateur test nommé test_user:
$ ipa user-add test_user First name: test Last name: user ---------------------------- Added user "test_user" ----------------------------
Ajoutez l'utilisateur test au groupe managers:
- Dans l'interface Web IdM, cliquez sur Identité → Groupes → Groupes d'utilisateurs.
- Cliquez sur managers.
-
Cliquez sur
Add
. - Dans la page Add users into user group 'managers', vérifiez test_user.
-
Cliquez sur la flèche
>
pour déplacer l'utilisateur dans la colonneProspective
. -
Cliquez sur
Add
.
Réinitialiser le mot de passe de l'utilisateur test :
- Aller à Identité → Utilisateurs.
- Cliquez sur test_user.
-
Dans le menu
Actions
, cliquez surReset Password
. - Entrez un mot de passe temporaire pour l'utilisateur.
Sur la ligne de commande, essayez d'obtenir un ticket Kerberos (TGT) pour l'adresse test_user:
$ kinit test_user
- Saisissez le mot de passe temporaire.
Le système vous informe que vous devez modifier votre mot de passe. Saisissez un mot de passe qui contient le nom d'utilisateur test_user:
Password expired. You must change it now. Enter new password: Enter it again: Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again.
NoteKerberos ne dispose pas d'une politique de signalement des erreurs de mot de passe très fine et, dans certains cas, ne fournit pas de raison claire pour laquelle un mot de passe a été rejeté.
Le système vous informe que le mot de passe introduit a été rejeté. Introduisez un mot de passe contenant au moins trois caractères identiques successifs :
Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again. Enter new password: Enter it again:
Le système vous informe que le mot de passe introduit a été rejeté. Saisissez un mot de passe qui répond aux critères de la politique de mot de passe managers:
Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again. Enter new password: Enter it again:
Voir le TGT :
$ klist Ticket cache: KCM:0:33945 Default principal: test_user@IDM.EXAMPLE.COM Valid starting Expires Service principal 07/07/2021 12:44:44 07/08/2021 12:44:44 krbtgt@IDM.EXAMPLE.COM@IDM.EXAMPLE.COM
La politique de mot de passe managers fonctionne désormais correctement pour les utilisateurs du groupe managers.
Ressources supplémentaires
6.6. Utilisation d'un playbook Ansible pour appliquer des options de politique de mot de passe supplémentaires à un groupe IdM
Vous pouvez utiliser un playbook Ansible pour appliquer des options de politique de mot de passe supplémentaires afin de renforcer les exigences de la politique de mot de passe pour un groupe IdM spécifique. Vous pouvez utiliser les options de politique de mot de passe maxrepeat
, maxsequence
, dictcheck
et usercheck
à cette fin. L'exemple décrit comment définir les exigences suivantes pour le groupe managers:
- Les nouveaux mots de passe des utilisateurs ne contiennent pas leurs noms d'utilisateur respectifs.
- Les mots de passe ne contiennent pas plus de deux caractères identiques successifs.
- Les séquences de caractères monotones dans les mots de passe ne doivent pas dépasser 3 caractères. Cela signifie que le système n'accepte pas un mot de passe comportant une séquence telle que 1234 ou abcd.
Conditions préalables
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. - Vous avez créé un fichier d'inventaire Ansible avec le nom de domaine complet (FQDN) du serveur IdM dans le répertoire ~/MyPlaybooks/ dans le répertoire
-
Vous avez stocké votre site
ipaadmin_password
dans le coffre-fort secret.yml Ansible.
- Le groupe pour lequel vous vous assurez de la présence d'une politique de mot de passe existe dans IdM.
Procédure
Créez votre fichier Ansible playbook manager_pwpolicy_present.yml qui définit la politique de mot de passe dont vous voulez assurer la présence. Pour simplifier cette étape, copiez et modifiez l'exemple suivant :
--- - name: Tests hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure presence of usercheck and maxrepeat pwpolicy for group managers ipapwpolicy: ipaadmin_password: "{{ ipaadmin_password }}" name: managers usercheck: True maxrepeat: 2 maxsequence: 3
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory_/manager_pwpolicy_present.yml
Vérification
Ajouter un utilisateur test nommé test_user:
$ ipa user-add test_user First name: test Last name: user ---------------------------- Added user "test_user" ----------------------------
Ajoutez l'utilisateur test au groupe managers:
- Dans l'interface Web IdM, cliquez sur Identité → Groupes → Groupes d'utilisateurs.
- Cliquez sur managers.
-
Cliquez sur
Add
. - Dans la page Add users into user group 'managers', vérifiez test_user.
-
Cliquez sur la flèche
>
pour déplacer l'utilisateur dans la colonneProspective
. -
Cliquez sur
Add
.
Réinitialiser le mot de passe de l'utilisateur test :
- Aller à Identité → Utilisateurs.
- Cliquez sur test_user.
-
Dans le menu
Actions
, cliquez surReset Password
. - Entrez un mot de passe temporaire pour l'utilisateur.
Sur la ligne de commande, essayez d'obtenir un ticket Kerberos (TGT) pour l'adresse test_user:
$ kinit test_user
- Saisissez le mot de passe temporaire.
Le système vous informe que vous devez modifier votre mot de passe. Saisissez un mot de passe qui contient le nom d'utilisateur test_user:
Password expired. You must change it now. Enter new password: Enter it again: Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again.
NoteKerberos ne dispose pas d'une politique de signalement des erreurs de mot de passe très fine et, dans certains cas, ne fournit pas de raison claire pour laquelle un mot de passe a été rejeté.
Le système vous informe que le mot de passe introduit a été rejeté. Introduisez un mot de passe contenant au moins trois caractères identiques successifs :
Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again. Enter new password: Enter it again:
Le système vous informe que le mot de passe saisi a été rejeté. Introduisez un mot de passe qui contient une séquence de caractères monotone de plus de 3 caractères. Des exemples de telles séquences sont 1234 et fedc:
Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again. Enter new password: Enter it again:
Le système vous informe que le mot de passe introduit a été rejeté. Saisissez un mot de passe qui répond aux critères de la politique de mot de passe managers:
Password change rejected: Password not changed. Unspecified password quality failure while trying to change password. Please try again. Enter new password: Enter it again:
Vérifiez que vous avez obtenu un TGT, ce qui n'est possible qu'après avoir introduit un mot de passe valide :
$ klist Ticket cache: KCM:0:33945 Default principal: test_user@IDM.EXAMPLE.COM Valid starting Expires Service principal 07/07/2021 12:44:44 07/08/2021 12:44:44 krbtgt@IDM.EXAMPLE.COM@IDM.EXAMPLE.COM
Ressources supplémentaires
- Politiques de mot de passe supplémentaires dans l'IdM
-
/usr/share/doc/ansible-freeipa/README-pwpolicy.md
-
/usr/share/doc/ansible-freeipa/playbooks/pwpolicy
Chapitre 7. Gestion des notifications d'expiration de mot de passe
Vous pouvez utiliser l'outil EPN (Expiring Password Notification), fourni par le paquetage ipa-client-epn
, pour établir une liste des utilisateurs de la gestion des identités (IdM) dont les mots de passe expirent dans un laps de temps configuré. Pour installer, configurer et utiliser l'outil EPN, reportez-vous aux sections correspondantes.
- Qu'est-ce que l'outil de notification d'expiration du mot de passe ?
- Installation de l'outil de notification d'expiration de mot de passe
- Exécution de l'outil EPN pour envoyer des courriels aux utilisateurs dont les mots de passe arrivent à expiration
- Permettre à ipa-epn.timer d'envoyer un courrier électronique à tous les utilisateurs dont le mot de passe arrive à expiration
- Modification du modèle de courriel de notification d'expiration du mot de passe
7.1. Qu'est-ce que l'outil de notification d'expiration du mot de passe ?
L'outil EPN (Expiring Password Notification) est un outil autonome qui permet de dresser une liste des utilisateurs de la gestion des identités (IdM) dont les mots de passe expirent dans un laps de temps donné.
Les administrateurs IdM peuvent utiliser l'EPN pour :
- Affiche une liste des utilisateurs concernés au format JSON, qui est créée lors de l'exécution en mode "dry-run".
- Calculez le nombre d'e-mails qui seront envoyés pour un jour ou une période donnés.
- Envoyer aux utilisateurs des notifications par courrier électronique concernant l'expiration du mot de passe.
-
Configurez le site
ipa-epn.timer
pour qu'il exécute quotidiennement l'outil EPN et envoie un courrier électronique aux utilisateurs dont les mots de passe expirent dans les plages de dates futures définies. - Personnaliser la notification par courriel à envoyer aux utilisateurs.
Si un compte d'utilisateur est désactivé, aucune notification par courrier électronique n'est envoyée si le mot de passe est sur le point d'expirer.
7.2. Installation de l'outil de notification d'expiration de mot de passe
Cette procédure décrit comment installer l'outil EPN (Expiring Password Notification).
Conditions préalables
- Installez l'outil EPN sur un réplica Identity Management (IdM) ou un client IdM avec un serveur Postfix SMTP local configuré en tant qu'hôte intelligent.
Procédure
Installer l'outil EPN :
# dnf install ipa-client-epn
7.3. Exécution de l'outil EPN pour envoyer des courriels aux utilisateurs dont les mots de passe arrivent à expiration
Cette procédure décrit comment exécuter l'outil EPN (Expiring Password Notification) pour envoyer des courriels aux utilisateurs dont le mot de passe arrive à expiration.
L'outil EPN est sans état. Si l'outil EPN n'envoie pas de courrier électronique aux utilisateurs dont les mots de passe expirent un jour donné, il n'enregistre pas la liste de ces utilisateurs.
Conditions préalables
-
Le paquetage
ipa-client-epn
est installé. Voir Installation de l'outil de notification d'expiration de mot de passe. -
Personnalisez le modèle d'e-mail
ipa-epn
si nécessaire. Voir Modifier le modèle d'e-mail de notification d'expiration du mot de passe.
Procédure
Mettez à jour le fichier de configuration
epn.conf
pour définir les options permettant à l'outil EPN d'avertir les utilisateurs de l'expiration prochaine de leur mot de passe.# vi /etc/ipa/epn.conf
Mettez à jour le site
notify_ttls
si nécessaire. Par défaut, les utilisateurs dont les mots de passe expirent dans 28, 14, 7, 3 et 1 jour(s) sont avertis.notify_ttls = 28, 14, 7, 3, 1
Configurez votre serveur SMTP et votre port :
smtp_server = localhost smtp_port = 25
Indiquez l'adresse électronique à partir de laquelle la notification d'expiration du courrier électronique est envoyée. Les courriels non délivrés sont renvoyés à cette adresse.
mail_from =admin-email@example.com
-
Enregistrez le fichier
/etc/ipa/epn.conf
. Exécutez l'outil EPN en mode "dry-run" pour générer une liste des utilisateurs auxquels la notification par e-mail de l'expiration du mot de passe serait envoyée si vous exécutiez l'outil sans l'option
--dry-run
.ipa-epn --dry-run [ { "uid": "user5", "cn": "user 5", "krbpasswordexpiration": "2020-04-17 15:51:53", "mail": "['user5@ipa.test']" } ] [ { "uid": "user6", "cn": "user 6", "krbpasswordexpiration": "2020-12-17 15:51:53", "mail": "['user5@ipa.test']" } ] The IPA-EPN command was successful
NoteSi la liste des utilisateurs renvoyée est très importante et que vous exécutez l'outil sans l'option
--dry-run
, cela peut entraîner un problème avec votre serveur de messagerie.Exécutez l'outil EPN sans l'option
--dry-run
pour envoyer des courriels d'expiration à la liste de tous les utilisateurs renvoyés lorsque vous avez exécuté l'outil EPN en mode "dry run" :ipa-epn [ { "uid": "user5", "cn": "user 5", "krbpasswordexpiration": "2020-10-01 15:51:53", "mail": "['user5@ipa.test']" } ] [ { "uid": "user6", "cn": "user 6", "krbpasswordexpiration": "2020-12-17 15:51:53", "mail": "['user5@ipa.test']" } ] The IPA-EPN command was successful
Vous pouvez ajouter EPN à n'importe quel système de surveillance et l'invoquer avec les options
--from-nbdays
et--to-nbdays
pour déterminer combien de mots de passe d'utilisateurs vont expirer dans un délai spécifique :# ipa-epn --from-nbdays 8 --to-nbdays 12
NoteSi vous invoquez l'outil EPN avec les options
--from-nbdays
et--to-nbdays
, il est automatiquement exécuté en mode "dry-run".
Verification steps
- Exécutez l'outil EPN et vérifiez qu'une notification par courrier électronique est envoyée.
Ressources supplémentaires
-
Voir la page de manuel
ipa-epn
. -
Voir la page de manuel
epn.conf
.
7.4. Permettre à ipa-epn.timer d'envoyer un courrier électronique à tous les utilisateurs dont le mot de passe arrive à expiration
Cette procédure décrit comment utiliser ipa-epn.timer
pour exécuter l'outil Expiring Password Notification (EPN) afin d'envoyer des courriels aux utilisateurs dont les mots de passe expirent. Le site ipa-epn.timer
analyse le fichier epn.conf
et envoie un courrier électronique aux utilisateurs dont les mots de passe expirent dans les plages de dates futures définies dans ce fichier.
Conditions préalables
-
Le paquetage
ipa-client-epn
est installé. Voir Installation de l'outil de notification d'expiration de mot de passe -
Personnalisez le modèle d'e-mail
ipa-epn
si nécessaire. Voir Modifier le modèle d'e-mail de notification d'expiration du mot de passe
Procédure
Démarrer le site
ipa-epn.timer
:systemctl start ipa-epn.timer
Une fois que vous avez lancé la minuterie, l'outil EPN est exécuté par défaut tous les jours à 1 heure du matin.
Ressources supplémentaires
-
Voir la page de manuel
ipa-epn
.
7.5. Modification du modèle de courriel de notification d'expiration du mot de passe
Cette procédure décrit comment personnaliser le modèle de message électronique EPN (Expiring Password Notification).
Conditions préalables
-
Le paquet
ipa-client-epn
est installé.
Procédure
Ouvrez le modèle de message EPN :
# vi /etc/ipa/epn/expire_msg.template
Mettez à jour le texte du modèle si nécessaire.
Hi {{ fullname }}, Your password will expire on {{ expiration }}. Please change it as soon as possible.
Vous pouvez utiliser les variables suivantes dans le modèle.
- Identifiant de l'utilisateur : uid
- Nom complet : nom complet
- Prénom : prénom
- Nom de famille : nom
- Date d'expiration du mot de passe : expiration
- Sauvegarder le fichier du modèle de message.
Verification steps
- Exécutez l'outil EPN et vérifiez que la notification par courrier électronique contient le texte mis à jour.
Ressources supplémentaires
-
Voir la page de manuel
ipa-epn
.
Chapitre 8. Accorder un accès sudo à un utilisateur IdM sur un client IdM
Cette section décrit comment accorder l'accès sudo
aux utilisateurs dans la gestion des identités.
8.1. Accès Sudo sur un client IdM
Les administrateurs système peuvent accorder l'accès sudo
pour permettre aux utilisateurs non root d'exécuter des commandes administratives qui sont normalement réservées à l'utilisateur root
. Par conséquent, lorsque les utilisateurs doivent exécuter une commande administrative normalement réservée à l'utilisateur root
, ils font précéder cette commande de sudo
. Après avoir introduit son mot de passe, la commande est exécutée comme s'il s'agissait de l'utilisateur root
. Pour exécuter une commande sudo
en tant qu'autre utilisateur ou groupe, tel qu'un compte de service de base de données, vous pouvez configurer une règle RunAs alias pour sudo
.
Si un hôte Red Hat Enterprise Linux (RHEL) 8 est inscrit en tant que client Identity Management (IdM), vous pouvez spécifier les règles sudo
définissant quels utilisateurs IdM peuvent exécuter quelles commandes sur l'hôte de la manière suivante :
-
Localement dans le fichier
/etc/sudoers
- Au niveau central dans l'IdM
Cette section décrit la création d'un central sudo
rule pour un client IdM à l'aide de l'interface de ligne de commande (CLI) et de l'interface Web IdM.
Vous pouvez également configurer l'authentification sans mot de passe pour sudo
à l'aide de l'interface GSSAPI (Generic Security Service Application Programming Interface), le moyen natif pour les systèmes d'exploitation basés sur UNIX d'accéder aux services Kerberos et de les authentifier. Vous pouvez utiliser pam_sss_gss.so
Pluggable Authentication Module (PAM) pour invoquer l'authentification GSSAPI via le service SSSD, ce qui permet aux utilisateurs de s'authentifier auprès de la commande sudo
à l'aide d'un ticket Kerberos valide.
Ressources supplémentaires
8.2. Accorder un accès sudo à un utilisateur IdM sur un client IdM à l'aide de la CLI
Dans la gestion des identités (IdM), vous pouvez accorder l'accès sudo
pour une commande spécifique à un compte d'utilisateur IdM sur un hôte IdM spécifique. Commencez par ajouter une commande sudo
, puis créez une règle sudo
pour une ou plusieurs commandes.
Par exemple, suivez cette procédure pour créer la règle idm_user_reboot sudo
afin d'autoriser le compte idm_user à exécuter la commande /usr/sbin/reboot
sur la machine idmclient.
Conditions préalables
- Vous êtes connecté en tant qu'administrateur IdM.
- Vous avez créé un compte utilisateur pour idm_user dans IdM et déverrouillé le compte en créant un mot de passe pour l'utilisateur. Pour plus d'informations sur l'ajout d'un nouvel utilisateur IdM à l'aide de la ligne de commande, voir Ajouter des utilisateurs à l'aide de la ligne de commande.
-
Aucun compte local idm_user n'est présent sur l'hôte idmclient. L'utilisateur idm_user n'est pas répertorié dans le fichier local
/etc/passwd
.
Procédure
Récupérer un ticket Kerberos en tant qu'IdM
admin
.[root@idmclient ~]# kinit admin
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 idm_user_reboot:[root@idmclient ~]# ipa sudorule-add idm_user_reboot --------------------------------- Added Sudo Rule "idm_user_reboot" --------------------------------- Rule name: idm_user_reboot Enabled: TRUE
Ajoutez la commande
/usr/sbin/reboot
à la règle idm_user_reboot:[root@idmclient ~]# ipa sudorule-add-allow-command idm_user_reboot --sudocmds '/usr/sbin/reboot' Rule name: idm_user_reboot Enabled: TRUE Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
Appliquer la règle idm_user_reboot à l'hôte IdM idmclient:
[root@idmclient ~]# ipa sudorule-add-host idm_user_reboot --hosts idmclient.idm.example.com Rule name: idm_user_reboot Enabled: TRUE Hosts: idmclient.idm.example.com Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
Ajoutez le compte idm_user à la règle idm_user_reboot:
[root@idmclient ~]# ipa sudorule-add-user idm_user_reboot --users idm_user Rule name: idm_user_reboot Enabled: TRUE Users: idm_user Hosts: idmclient.idm.example.com Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
Il est possible de définir la validité de la règle idm_user_reboot:
Pour définir l'heure à laquelle une règle
sudo
commence à être valide, utilisez la commandeipa sudorule-mod sudo_rule_name
avec l'option--setattr sudonotbefore=DATE
option. La valeur de DATE doit suivre le format de yyyymmddHHMMSSZ, en spécifiant explicitement les secondes. Par exemple, pour définir le début de la validité de la règle idm_user_reboot au 31 décembre 2025 12:34:00, entrez :[root@idmclient ~]# ipa sudorule-mod idm_user_reboot --setattr sudonotbefore=20251231123400Z
Pour définir l'heure à laquelle une règle sudo cesse d'être valide, utilisez l'option
--setattr sudonotafter=DATE
. Par exemple, pour fixer la fin de la validité de la règle idm_user_reboot au 31 décembre 2026 12:34:00, entrez :[root@idmclient ~]# ipa sudorule-mod idm_user_reboot --setattr sudonotafter=20261231123400Z
La propagation des changements du serveur au client peut prendre quelques minutes.
Verification steps
- Connectez-vous à l'hôte idmclient en tant que compte idm_user.
Affiche les règles
sudo
que le compte idm_user est autorisé à appliquer.[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idm_user 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 idm_user may run the following commands on idmclient: (root) /usr/sbin/reboot
Redémarrez la machine en utilisant
sudo
. Saisissez le mot de passe de idm_user lorsque vous y êtes invité :[idm_user@idmclient ~]$ sudo /usr/sbin/reboot [sudo] password for idm_user:
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:
8.4. Accorder un accès sudo à un utilisateur IdM sur un client IdM à l'aide de l'interface Web IdM
Dans la gestion des identités (IdM), vous pouvez accorder l'accès sudo
pour une commande spécifique à un compte d'utilisateur IdM sur un hôte IdM spécifique. Commencez par ajouter une commande sudo
, puis créez une règle sudo
pour une ou plusieurs commandes.
Suivez cette procédure pour créer la règle sudo idm_user_reboot
afin d'autoriser le compte idm_user
à exécuter la commande /usr/sbin/reboot
sur la machine idmclient
.
Conditions préalables
- Vous êtes connecté en tant qu'administrateur IdM.
-
Vous avez créé un compte utilisateur pour
idm_user
dans IdM et déverrouillé le compte en créant un mot de passe pour l'utilisateur. Pour plus de détails sur l'ajout d'un nouvel utilisateur IdM à l'aide de l'interface de ligne de commande, voir Ajouter des utilisateurs à l'aide de la ligne de commande. -
Aucun compte local
idm_user
n'est présent sur l'hôteidmclient
. L'utilisateuridm_user
n'est pas répertorié dans le fichier local/etc/passwd
.
Procédure
Ajouter la commande
/usr/sbin/reboot
à la base de données IdM des commandessudo
:- Naviguez vers Policy → Sudo → Sudo Commands.
- Cliquez sur Add dans le coin supérieur droit pour ouvrir la boîte de dialogue Add sudo command.
Saisissez la commande que vous souhaitez que l'utilisateur puisse exécuter en utilisant
sudo
:/usr/sbin/reboot
.Figure 8.1. Ajout de la commande sudo de l'IdM
- Cliquez sur Add.
Utilisez la nouvelle entrée de commande
sudo
pour créer une règle sudo permettant à idm_user de redémarrer la machine idmclient:- Naviguez vers Policy → Sudo → Sudo rules.
- Cliquez sur Add dans le coin supérieur droit pour ouvrir la boîte de dialogue Add sudo rule.
-
Saisissez le nom de la règle
sudo
: idm_user_reboot. - Cliquez sur Add and Edit.
Spécifiez l'utilisateur :
- Dans la section Who, cochez le bouton radio Specified Users and Groups.
- Dans la sous-section User category the rule applies to, cliquez sur Add pour ouvrir la boîte de dialogue Add users into sudo rule "idm_user_reboot".
- Dans la boîte de dialogue Add users into sudo rule "idm_user_reboot", dans la colonne Available, cochez la case idm_user et déplacez-la dans la colonne Prospective.
- Cliquez sur Add.
Spécifiez l'hôte :
- Dans la section Access this host, cochez le bouton radio Specified Hosts and Groups.
- Dans la sous-section Host category this rule applies to, cliquez sur Add pour ouvrir la boîte de dialogue Add hosts into sudo rule "idm_user_reboot".
- Dans la boîte de dialogue Add hosts into sudo rule "idm_user_reboot", dans la colonne Available, cochez la case idmclient.idm.example.com et déplacez-la dans la colonne Prospective.
- Cliquez sur Add.
Spécifiez les commandes :
- Dans la sous-section Command category the rule applies to de la section Run Commands, cochez le bouton radio Specified Commands and Groups.
- Dans la sous-section Sudo Allow Commands, cliquez sur Add pour ouvrir la boîte de dialogue Add allow sudo commands into sudo rule "idm_user_reboot".
-
Dans la boîte de dialogue Add allow sudo commands into sudo rule "idm_user_reboot", dans la colonne Available, cochez la case
/usr/sbin/reboot
et déplacez-la dans la colonne Prospective. - Cliquez sur Add pour revenir à la page idm_sudo_reboot.
Figure 8.2. Ajout d'une règle sudo à l'IdM
- Cliquez sur Save dans le coin supérieur gauche.
La nouvelle règle est activée par défaut.
La propagation des changements du serveur au client peut prendre quelques minutes.
Verification steps
-
Connectez-vous à
idmclient
en tant queidm_user
. Redémarrez la machine en utilisant
sudo
. Saisissez le mot de passe deidm_user
lorsque vous y êtes invité :$ sudo /usr/sbin/reboot [sudo] password for idm_user:
Si la règle sudo
est configurée correctement, la machine redémarre.
8.5. Création d'une règle sudo sur la CLI qui exécute une commande en tant que compte de service sur un client IdM
Dans IdM, vous pouvez configurer une règle sudo
avec une règle RunAs alias pour exécuter une commande sudo
en tant qu'autre utilisateur ou groupe. Par exemple, vous pouvez avoir un client IdM qui héberge une application de base de données et vous devez exécuter des commandes en tant que compte de service local correspondant à cette application.
Utilisez cet exemple pour créer une règle sudo
sur la ligne de commande appelée run_third-party-app_report
afin d'autoriser le compte idm_user
à exécuter la commande /opt/third-party-app/bin/report
en tant que compte de service thirdpartyapp
sur l'hôte idmclient
.
Conditions préalables
- Vous êtes connecté en tant qu'administrateur IdM.
-
Vous avez créé un compte utilisateur pour
idm_user
dans IdM et déverrouillé le compte en créant un mot de passe pour l'utilisateur. Pour plus d'informations sur l'ajout d'un nouvel utilisateur IdM à l'aide de la ligne de commande, voir Ajouter des utilisateurs à l'aide de la ligne de commande. -
Aucun compte local
idm_user
n'est présent sur l'hôteidmclient
. L'utilisateuridm_user
n'est pas répertorié dans le fichier local/etc/passwd
. -
Vous avez une application personnalisée nommée
third-party-app
installée sur l'hôteidmclient
. -
La commande
report
pour l'applicationthird-party-app
est installée dans le répertoire/opt/third-party-app/bin/report
. -
Vous avez créé un compte de service local nommé
thirdpartyapp
pour exécuter les commandes de l'applicationthird-party-app
.
Procédure
Récupérer un ticket Kerberos en tant qu'IdM
admin
.[root@idmclient ~]# kinit admin
Ajouter la commande
/opt/third-party-app/bin/report
à la base de données IdM des commandessudo
:[root@idmclient ~]# ipa sudocmd-add /opt/third-party-app/bin/report ---------------------------------------------------- Added Sudo Command "/opt/third-party-app/bin/report" ---------------------------------------------------- Sudo Command: /opt/third-party-app/bin/report
Créez une règle
sudo
nomméerun_third-party-app_report
:[root@idmclient ~]# ipa sudorule-add run_third-party-app_report -------------------------------------------- Added Sudo Rule "run_third-party-app_report" -------------------------------------------- Rule name: run_third-party-app_report Enabled: TRUE
Utilisez l'option
--users=<user>
pour spécifier l'utilisateur RunAs pour la commandesudorule-add-runasuser
:[root@idmclient ~]# ipa sudorule-add-runasuser run_third-party-app_report --users=thirdpartyapp Rule name: run_third-party-app_report Enabled: TRUE RunAs External User: thirdpartyapp ------------------------- Number of members added 1 -------------------------
L'utilisateur (ou le groupe spécifié avec l'option
--groups=*
) peut être externe à IdM, comme un compte de service local ou un utilisateur Active Directory. N'ajoutez pas de préfixe%
pour les noms de groupes.Ajoutez la commande
/opt/third-party-app/bin/report
à la règlerun_third-party-app_report
:[root@idmclient ~]# ipa sudorule-add-allow-command run_third-party-app_report --sudocmds '/opt/third-party-app/bin/report' Rule name: run_third-party-app_report Enabled: TRUE Sudo Allow Commands: /opt/third-party-app/bin/report RunAs External User: thirdpartyapp ------------------------- Number of members added 1 -------------------------
Appliquer la règle
run_third-party-app_report
à l'hôte IdMidmclient
:[root@idmclient ~]# ipa sudorule-add-host run_third-party-app_report --hosts idmclient.idm.example.com Rule name: run_third-party-app_report Enabled: TRUE Hosts: idmclient.idm.example.com Sudo Allow Commands: /opt/third-party-app/bin/report RunAs External User: thirdpartyapp ------------------------- Number of members added 1 -------------------------
Ajoutez le compte
idm_user
à la règlerun_third-party-app_report
:[root@idmclient ~]# ipa sudorule-add-user run_third-party-app_report --users idm_user Rule name: run_third-party-app_report Enabled: TRUE Users: idm_user Hosts: idmclient.idm.example.com Sudo Allow Commands: /opt/third-party-app/bin/report RunAs External User: thirdpartyapp ------------------------- 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 compteidm_user
. Testez la nouvelle règle sudo :
Affiche les règles
sudo
que le compteidm_user
est autorisé à appliquer.[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idm_user@idm.example.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 idm_user@idm.example.com may run the following commands on idmclient: (thirdpartyapp) /opt/third-party-app/bin/report
Exécutez la commande
report
en tant que compte de servicethirdpartyapp
.[idm_user@idmclient ~]$ sudo -u thirdpartyapp /opt/third-party-app/bin/report [sudo] password for idm_user@idm.example.com: Executing report... Report successful.
8.6. Création d'une règle sudo dans l'interface Web IdM qui exécute une commande en tant que compte de service sur un client IdM
Dans IdM, vous pouvez configurer une règle sudo
avec une règle RunAs alias pour exécuter une commande sudo
en tant qu'autre utilisateur ou groupe. Par exemple, vous pouvez avoir un client IdM qui héberge une application de base de données et vous devez exécuter des commandes en tant que compte de service local correspondant à cette application.
Utilisez cet exemple pour créer une règle sudo
dans l'IdM WebUI appelée run_third-party-app_report
pour permettre au compte idm_user
d'exécuter la commande /opt/third-party-app/bin/report
en tant que compte de service thirdpartyapp
sur l'hôte idmclient
.
Conditions préalables
- Vous êtes connecté en tant qu'administrateur IdM.
-
Vous avez créé un compte utilisateur pour
idm_user
dans IdM et déverrouillé le compte en créant un mot de passe pour l'utilisateur. Pour plus d'informations sur l'ajout d'un nouvel utilisateur IdM à l'aide de la ligne de commande, voir Ajouter des utilisateurs à l'aide de la ligne de commande. -
Aucun compte local
idm_user
n'est présent sur l'hôteidmclient
. L'utilisateuridm_user
n'est pas répertorié dans le fichier local/etc/passwd
. -
Vous avez une application personnalisée nommée
third-party-app
installée sur l'hôteidmclient
. -
La commande
report
pour l'applicationthird-party-app
est installée dans le répertoire/opt/third-party-app/bin/report
. -
Vous avez créé un compte de service local nommé
thirdpartyapp
pour exécuter les commandes de l'applicationthird-party-app
.
Procédure
Ajouter la commande
/opt/third-party-app/bin/report
à la base de données IdM des commandessudo
:- Naviguez vers Policy → Sudo → Sudo Commands.
- Cliquez sur Add dans le coin supérieur droit pour ouvrir la boîte de dialogue Add sudo command.
Entrez la commande :
/opt/third-party-app/bin/report
.- Cliquez sur Add.
Utilisez l'entrée de commande new
sudo
pour créer la nouvelle règlesudo
:- Naviguez vers Policy → Sudo → Sudo rules.
- Cliquez sur Add dans le coin supérieur droit pour ouvrir la boîte de dialogue Add sudo rule.
Saisissez le nom de la règle
sudo
: run_third-party-app_report.- Cliquez sur Add and Edit.
Spécifiez l'utilisateur :
- Dans la section Who, cochez le bouton radio Specified Users and Groups.
- Dans la sous-section User category the rule applies to, cliquez sur Add pour ouvrir la boîte de dialogue Add users into sudo rule "run_third-party-app_report".
Dans la boîte de dialogue Add users into sudo rule "run_third-party-app_report", dans la colonne Available, cochez la case idm_user et déplacez-la dans la colonne Prospective.
- Cliquez sur Add.
Spécifiez l'hôte :
- Dans la section Access this host, cochez le bouton radio Specified Hosts and Groups.
- Dans la sous-section Host category this rule applies to, cliquez sur Add pour ouvrir la boîte de dialogue Add hosts into sudo rule "run_third-party-app_report".
Dans la boîte de dialogue Add hosts into sudo rule "run_third-party-app_report", dans la colonne Available, cochez la case idmclient.idm.example.com et déplacez-la dans la colonne Prospective.
- Cliquez sur Add.
Spécifiez les commandes :
- Dans la sous-section Command category the rule applies to de la section Run Commands, cochez le bouton radio Specified Commands and Groups.
- Dans la sous-section Sudo Allow Commands, cliquez sur Add pour ouvrir la boîte de dialogue Add allow sudo commands into sudo rule "run_third-party-app_report".
Dans la boîte de dialogue Add allow sudo commands into sudo rule "run_third-party-app_report", dans la colonne Available, cochez la case
/opt/third-party-app/bin/report
et déplacez-la dans la colonne Prospective.- Cliquez sur Add pour revenir à la page run_third-party-app_report.
Spécifiez l'utilisateur RunAs :
- Dans la section As Whom, cochez le bouton radio Specified Users and Groups.
- Dans la sous-section RunAs Users, cliquez sur Add pour ouvrir la boîte de dialogue Add RunAs users into sudo rule "run_third-party-app_report".
Dans la boîte de dialogue Add RunAs users into sudo rule "run_third-party-app_report", saisissez le compte de service
thirdpartyapp
dans la case External et déplacez-le dans la colonne Prospective.- Cliquez sur Add pour revenir à la page run_third-party-app_report.
- Cliquez sur Save dans le coin supérieur gauche.
La nouvelle règle est activée par défaut.
Figure 8.3. Détails de la règle sudo
La propagation des changements du serveur au client peut prendre quelques minutes.
Verification steps
-
Connectez-vous à l'hôte
idmclient
en tant que compteidm_user
. Testez la nouvelle règle sudo :
Affiche les règles
sudo
que le compteidm_user
est autorisé à appliquer.[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idm_user@idm.example.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 idm_user@idm.example.com may run the following commands on idmclient: (thirdpartyapp) /opt/third-party-app/bin/report
Exécutez la commande
report
en tant que compte de servicethirdpartyapp
.[idm_user@idmclient ~]$ sudo -u thirdpartyapp /opt/third-party-app/bin/report [sudo] password for idm_user@idm.example.com: Executing report... Report successful.
8.7. Activation de l'authentification GSSAPI pour sudo sur un client IdM
La procédure suivante décrit l'activation de l'authentification GSSAPI (Generic Security Service Application Program Interface) sur un client IdM pour les commandes sudo
et sudo -i
via le module PAM pam_sss_gss.so
. Avec cette configuration, les utilisateurs IdM peuvent s'authentifier à la commande sudo
avec leur ticket Kerberos.
Conditions préalables
-
Vous avez créé une règle
sudo
pour un utilisateur IdM qui s'applique à un hôte IdM. Pour cet exemple, vous avez créé la règleidm_user_reboot
sudo
pour accorder au compteidm_user
la permission d'exécuter la commande/usr/sbin/reboot
sur l'hôteidmclient
. -
Vous devez disposer des privilèges
root
pour modifier le fichier/etc/sssd/sssd.conf
et les fichiers PAM dans le répertoire/etc/pam.d/
.
Procédure
-
Ouvrez le fichier de configuration
/etc/sssd/sssd.conf
. Ajoutez l'entrée suivante à la section
[domain/<domain_name>]
l'entrée suivante.[domain/<domain_name>] pam_gssapi_services = sudo, sudo-i
-
Enregistrez et fermez le fichier
/etc/sssd/sssd.conf
. Redémarrez le service SSSD pour charger les modifications de configuration.
[root@idmclient ~]# systemctl restart sssd
Si vous utilisez RHEL 9.2 ou une version ultérieure :
[Facultatif] Déterminez si vous avez sélectionné le profil
sssd
authselect
:# authselect current Profile ID: sssd
Le résultat indique que le profil
sssd
authselect
est sélectionné.Si le profil
sssd
authselect
est sélectionné, activez l'authentification GSSAPI :# authselect enable-feature with-gssapi
Si le profil
sssd
authselect
n'est pas sélectionné, sélectionnez-le et activez l'authentification GSSAPI :# authselect select sssd with-gssapi
Si vous utilisez RHEL 9.1 ou une version antérieure :
-
Ouvrez le fichier de configuration PAM de
/etc/pam.d/sudo
. Ajoutez l'entrée suivante comme première ligne de la section
auth
dans le fichier/etc/pam.d/sudo
.#%PAM-1.0 auth sufficient pam_sss_gss.so auth include system-auth account include system-auth password include system-auth session include system-auth
-
Enregistrez et fermez le fichier
/etc/pam.d/sudo
.
-
Ouvrez le fichier de configuration PAM de
Verification steps
Connectez-vous à l'hôte en tant que compte
idm_user
.[root@idm-client ~]# ssh -l idm_user@idm.example.com localhost idm_user@idm.example.com's password:
Vérifiez que vous disposez d'un ticket d'attribution de tickets en tant que compte
idm_user
.[idmuser@idmclient ~]$ klist Ticket cache: KCM:1366201107 Default principal: idm_user@IDM.EXAMPLE.COM Valid starting Expires Service principal 01/08/2021 09:11:48 01/08/2021 19:11:48 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM renew until 01/15/2021 09:11:44
(Optional) Si vous ne disposez pas d'informations d'identification Kerberos pour le compte
idm_user
, détruisez vos informations d'identification Kerberos actuelles et demandez les informations correctes.[idm_user@idmclient ~]$ kdestroy -A [idm_user@idmclient ~]$ kinit idm_user@IDM.EXAMPLE.COM Password for idm_user@idm.example.com:
Redémarrez la machine à l'aide de
sudo
, sans spécifier de mot de passe.[idm_user@idmclient ~]$ sudo /usr/sbin/reboot
Ressources supplémentaires
- L'entrée GSSAPI dans la liste terminologique IdM
- Accorder un accès sudo à un utilisateur IdM sur un client IdM à l'aide de l'interface Web IdM
- Accorder un accès sudo à un utilisateur IdM sur un client IdM à l'aide de la CLI
-
pam_sss_gss (8)
page de manuel -
sssd.conf (5)
page de manuel
8.8. Activation de l'authentification GSSAPI et application des indicateurs d'authentification Kerberos pour sudo sur un client IdM
La procédure suivante décrit l'activation de l'authentification GSSAPI (Generic Security Service Application Program Interface) sur un client IdM pour les commandes sudo
et sudo -i
via le module PAM pam_sss_gss.so
. En outre, seuls les utilisateurs qui se sont connectés avec une carte à puce s'authentifieront à ces commandes avec leur ticket Kerberos.
Vous pouvez utiliser cette procédure comme modèle pour configurer l'authentification GSSAPI avec SSSD pour d'autres services compatibles avec PAM, et restreindre davantage l'accès aux seuls utilisateurs dont le ticket Kerberos est associé à un indicateur d'authentification spécifique.
Conditions préalables
-
Vous avez créé une règle
sudo
pour un utilisateur IdM qui s'applique à un hôte IdM. Pour cet exemple, vous avez créé la règleidm_user_reboot
sudo
pour accorder au compteidm_user
la permission d'exécuter la commande/usr/sbin/reboot
sur l'hôteidmclient
. -
Vous avez configuré l'authentification par carte à puce pour l'hôte
idmclient
. -
Vous devez disposer des privilèges
root
pour modifier le fichier/etc/sssd/sssd.conf
et les fichiers PAM dans le répertoire/etc/pam.d/
.
Procédure
-
Ouvrez le fichier de configuration
/etc/sssd/sssd.conf
. Ajoutez les entrées suivantes à la section
[domain/<domain_name>]
les entrées suivantes.[domain/<domain_name>] pam_gssapi_services = sudo, sudo-i pam_gssapi_indicators_map = sudo:pkinit, sudo-i:pkinit
-
Enregistrez et fermez le fichier
/etc/sssd/sssd.conf
. Redémarrez le service SSSD pour charger les modifications de configuration.
[root@idmclient ~]# systemctl restart sssd
-
Ouvrez le fichier de configuration PAM de
/etc/pam.d/sudo
. Ajoutez l'entrée suivante comme première ligne de la section
auth
dans le fichier/etc/pam.d/sudo
.#%PAM-1.0 auth sufficient pam_sss_gss.so auth include system-auth account include system-auth password include system-auth session include system-auth
-
Enregistrez et fermez le fichier
/etc/pam.d/sudo
. -
Ouvrez le fichier de configuration PAM de
/etc/pam.d/sudo-i
. Ajoutez l'entrée suivante comme première ligne de la section
auth
dans le fichier/etc/pam.d/sudo-i
.#%PAM-1.0 auth sufficient pam_sss_gss.so auth include sudo account include sudo password include sudo session optional pam_keyinit.so force revoke session include sudo
-
Enregistrez et fermez le fichier
/etc/pam.d/sudo-i
.
Verification steps
Connectez-vous à l'hôte en tant que compte
idm_user
et authentifiez-vous à l'aide d'une carte à puce.[root@idmclient ~]# ssh -l idm_user@idm.example.com localhost PIN for smart_card
Vérifiez que vous disposez d'un ticket d'attribution de billets en tant qu'utilisateur de la carte à puce.
[idm_user@idmclient ~]$ klist Ticket cache: KEYRING:persistent:1358900015:krb_cache_TObtNMd Default principal: idm_user@IDM.EXAMPLE.COM Valid starting Expires Service principal 02/15/2021 16:29:48 02/16/2021 02:29:48 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM renew until 02/22/2021 16:29:44
Affiche les règles
sudo
que le compteidm_user
est autorisé à appliquer.[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idmuser 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 idm_user may run the following commands on idmclient: (root) /usr/sbin/reboot
Redémarrez la machine à l'aide de
sudo
, sans spécifier de mot de passe.[idm_user@idmclient ~]$ sudo /usr/sbin/reboot
Ressources supplémentaires
- Options SSSD contrôlant l'authentification GSSAPI pour les services PAM
- L'entrée GSSAPI dans la liste terminologique IdM
- Configuration de la gestion des identités pour l'authentification par carte à puce
- Indicateurs d'authentification Kerberos
- Accorder un accès sudo à un utilisateur IdM sur un client IdM à l'aide de l'interface Web IdM
- Accorder un accès sudo à un utilisateur IdM sur un client IdM en utilisant le CLI.
-
pam_sss_gss (8)
page de manuel -
sssd.conf (5)
page de manuel
8.9. Options SSSD contrôlant l'authentification GSSAPI pour les services PAM
Vous pouvez utiliser les options suivantes pour le fichier de configuration /etc/sssd/sssd.conf
afin d'ajuster la configuration GSSAPI au sein du service SSSD.
- pam_gssapi_services
-
L'authentification GSSAPI avec SSSD est désactivée par défaut. Vous pouvez utiliser cette option pour spécifier une liste de services PAM, séparés par des virgules, qui sont autorisés à essayer l'authentification GSSAPI à l'aide du module PAM
pam_sss_gss.so
. Pour désactiver explicitement l'authentification GSSAPI, définissez cette option sur-
. - pam_gssapi_indicators_map
Cette option ne s'applique qu'aux domaines de gestion des identités (IdM). Cette option permet de répertorier les indicateurs d'authentification Kerberos requis pour accorder à PAM l'accès à un service. Les paires doivent être au format
<PAM_service>:_<required_authentication_indicator>_
.Les indicateurs d'authentification valides sont les suivants :
-
otp
pour l'authentification à deux facteurs -
radius
pour l'authentification RADIUS -
pkinit
pour l'authentification par PKINIT, carte à puce ou certificat -
hardened
pour des mots de passe renforcés
-
- pam_gssapi_check_upn
-
Cette option est activée et définie par défaut sur
true
. Si cette option est activée, le service SSSD exige que le nom d'utilisateur corresponde aux informations d'identification Kerberos. Si l'optionfalse
est activée, le module PAMpam_sss_gss.so
authentifie chaque utilisateur capable d'obtenir le ticket de service requis.
Examples
Les options suivantes activent l'authentification Kerberos pour les services sudo
et sudo-i
, exigent que les utilisateurs de sudo
s'authentifient avec un mot de passe à usage unique et que les noms d'utilisateur correspondent au principal Kerberos. Ces paramètres se trouvant dans la section [pam]
, ils s'appliquent à tous les domaines :
[pam] pam_gssapi_services = sudo, sudo-i pam_gssapi_indicators_map = sudo:otp pam_gssapi_check_upn = true
Vous pouvez également définir ces options dans des sections [domain]
individuelles afin d'écraser toutes les valeurs globales dans la section [pam]
. Les options suivantes appliquent des paramètres GSSAPI différents à chaque domaine :
- Pour le domaine
idm.example.com
-
Activez l'authentification GSSAPI pour les services
sudo
etsudo -i
. -
Exiger des authentificateurs de type certificat ou carte à puce pour la commande
sudo
. -
Exiger des authentificateurs à mot de passe unique pour la commande
sudo -i
. - Assurer la correspondance entre les noms d'utilisateurs et les principes Kerberos.
-
Activez l'authentification GSSAPI pour les services
- Pour le domaine
ad.example.com
-
Activez l'authentification GSSAPI uniquement pour le service
sudo
. - Ne pas imposer la correspondance entre les noms d'utilisateurs et les mandants.
-
Activez l'authentification GSSAPI uniquement pour le service
[domain/idm.example.com] pam_gssapi_services = sudo, sudo-i pam_gssapi_indicators_map = sudo:pkinit, sudo-i:otp pam_gssapi_check_upn = true ... [domain/ad.example.com] pam_gssapi_services = sudo pam_gssapi_check_upn = false ...
Ressources supplémentaires
8.10. Dépannage de l'authentification GSSAPI pour sudo
Si vous ne parvenez pas à vous authentifier auprès du service sudo
à l'aide d'un ticket Kerberos provenant de l'IdM, utilisez les scénarios suivants pour résoudre votre problème.
Conditions préalables
-
Vous avez activé l'authentification GSSAPI pour le service
sudo
. Voir Activation de l'authentification GSSAPI pour sudo sur un client IdM. -
Vous devez disposer des privilèges
root
pour modifier le fichier/etc/sssd/sssd.conf
et les fichiers PAM dans le répertoire/etc/pam.d/
.
Procédure
Si l'erreur suivante s'affiche, il se peut que le service Kerberos ne soit pas en mesure de résoudre le domaine correct pour le ticket de service en se basant sur le nom d'hôte :
Serveur introuvable dans la base de données Kerberos
Dans ce cas, ajoutez le nom d'hôte directement à la section
[domain_realm]
dans le fichier de configuration Kerberos/etc/krb5.conf
:[idm-user@idm-client ~]$ cat /etc/krb5.conf ... [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM server.example.com = EXAMPLE.COM
Si l'erreur suivante s'affiche, vous ne disposez pas d'informations d'identification Kerberos :
Pas d'identifiants Kerberos disponibles
Dans ce cas, récupérez les informations d'identification Kerberos à l'aide de l'utilitaire
kinit
ou authentifiez-vous à l'aide de SSSD :[idm-user@idm-client ~]$ kinit idm-user@IDM.EXAMPLE.COM Password for idm-user@idm.example.com:
Si l'une des erreurs suivantes apparaît dans le fichier journal
/var/log/sssd/sssd_pam.log
, les informations d'identification Kerberos ne correspondent pas au nom d'utilisateur de l'utilisateur actuellement connecté :User with UPN [<UPN>] was not found. UPN [<UPN>] does not match target user [<username>].
Dans ce cas, vérifiez que vous vous êtes authentifié avec SSSD, ou envisagez de désactiver l'option
pam_gssapi_check_upn
dans le fichier/etc/sssd/sssd.conf
:[idm-user@idm-client ~]$ cat /etc/sssd/sssd.conf ... pam_gssapi_check_upn = false
Pour un dépannage supplémentaire, vous pouvez activer la sortie de débogage pour le module PAM de
pam_sss_gss.so
.Ajoutez l'option
debug
à la fin de toutes les entréespam_sss_gss.so
dans les fichiers PAM, telles que/etc/pam.d/sudo
et/etc/pam.d/sudo-i
:[root@idm-client ~]# cat /etc/pam.d/sudo #%PAM-1.0 auth sufficient pam_sss_gss.so debug auth include system-auth account include system-auth password include system-auth session include system-auth
[root@idm-client ~]# cat /etc/pam.d/sudo-i #%PAM-1.0 auth sufficient pam_sss_gss.so debug auth include sudo account include sudo password include sudo session optional pam_keyinit.so force revoke session include sudo
Essayez de vous authentifier avec le module
pam_sss_gss.so
et examinez la sortie de la console. Dans cet exemple, l'utilisateur n'avait pas d'identifiants Kerberos.[idm-user@idm-client ~]$ sudo ls -l /etc/sssd/sssd.conf pam_sss_gss: Initializing GSSAPI authentication with SSSD pam_sss_gss: Switching euid from 0 to 1366201107 pam_sss_gss: Trying to establish security context pam_sss_gss: SSSD User name: idm-user@idm.example.com pam_sss_gss: User domain: idm.example.com pam_sss_gss: User principal: pam_sss_gss: Target name: host@idm.example.com pam_sss_gss: Using ccache: KCM: pam_sss_gss: Acquiring credentials, principal name will be derived pam_sss_gss: Unable to read credentials from [KCM:] [maj:0xd0000, min:0x96c73ac3] pam_sss_gss: GSSAPI: Unspecified GSS failure. Minor code may provide more information pam_sss_gss: GSSAPI: No credentials cache found pam_sss_gss: Switching euid from 1366200907 to 0 pam_sss_gss: System error [5]: Input/output error
8.11. Utilisation d'un playbook Ansible pour garantir l'accès sudo à un utilisateur IdM sur un client IdM
Dans la gestion des identités (IdM), vous pouvez vous assurer que l'accès sudo
à une commande spécifique est accordé à un compte d'utilisateur IdM sur un hôte IdM spécifique.
Effectuez cette procédure pour vous assurer qu'une règle sudo
nommée idm_user_reboot existe. La règle accorde à idm_user la permission d'exécuter la commande /usr/sbin/reboot
sur la machine idmclient.
Conditions préalables
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 vous êtes assuré de la présence d'un compte utilisateur pour idm_user dans IdM et vous avez déverrouillé le compte en créant un mot de passe pour l'utilisateur. Pour plus de détails sur l'ajout d'un nouvel utilisateur IdM à l'aide de l'interface de ligne de commande, voir le lien : Ajouter des utilisateurs à l'aide de la ligne de commande.
-
Aucun compte local idm_user n'existe sur idmclient. L'utilisateur idm_user n'est pas listé dans le fichier
/etc/passwd
sur idmclient.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaservers
:[ipaservers] server.idm.example.com
Ajouter une ou plusieurs commandes
sudo
:Créer un playbook Ansible
ensure-reboot-sudocmd-is-present.yml
qui assure la présence de la commande/usr/sbin/reboot
dans la base de données IdM des commandessudo
. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/playbooks/sudocmd/ensure-sudocmd-is-present.yml
:--- - name: Playbook to manage sudo command hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure sudo command is present - ipasudocmd: ipaadmin_password: "{{ ipaadmin_password }}" name: /usr/sbin/reboot state: present
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-reboot-sudocmd-is-present.yml
Créez une règle
sudo
qui fait référence aux commandes :Créez un playbook Ansible
ensure-sudorule-for-idmuser-on-idmclient-is-present.yml
qui utilise l'entrée de commandesudo
pour s'assurer de la présence d'une règle sudo. La règle sudo permet à idm_user de redémarrer la machine idmclient. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/playbooks/sudorule/ensure-sudorule-is-present.yml
:--- - name: Tests hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure a sudorule is present granting idm_user the permission to run /usr/sbin/reboot on idmclient - ipasudorule: ipaadmin_password: "{{ ipaadmin_password }}" name: idm_user_reboot description: A test sudo rule. allow_sudocmd: /usr/sbin/reboot host: idmclient.idm.example.com user: idm_user state: present
Exécutez le manuel de jeu :
$ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-sudorule-for-idmuser-on-idmclient-is-present.yml
Verification steps
Testez que la règle sudo
dont vous avez assuré la présence sur le serveur IdM fonctionne sur idmclient en vérifiant que idm_user peut redémarrer idmclient à l'aide de sudo
. Notez qu'il peut s'écouler quelques minutes avant que les changements effectués sur le serveur ne prennent effet sur le client.
- Connectez-vous à idmclient en tant que idm_user.
Redémarrez la machine en utilisant
sudo
. Saisissez le mot de passe de idm_user lorsque vous y êtes invité :$ sudo /usr/sbin/reboot [sudo] password for idm_user:
Si sudo
est configuré correctement, la machine redémarre.
Ressources supplémentaires
-
Voir les fichiers
README-sudocmd.md
,README-sudocmdgroup.md
, etREADME-sudorule.md
dans le répertoire/usr/share/doc/ansible-freeipa/
.
Chapitre 9. Utilisation de ldapmodify pour gérer les utilisateurs IdM en externe
En tant qu'administrateur IdM, vous pouvez utiliser les commandes ipa
pour gérer le contenu de votre annuaire. Vous pouvez également utiliser la commande ldapmodify
pour atteindre des objectifs similaires. Vous pouvez utiliser cette commande de manière interactive et fournir toutes les données directement dans la ligne de commande. Vous pouvez également fournir les données du fichier au format LDAP Data Interchange Format (LDIF) à la commande ldapmodify
.
9.1. Modèles pour la gestion externe des comptes d'utilisateurs IdM
Cette section décrit des modèles pour diverses opérations de gestion des utilisateurs dans IdM. Les modèles indiquent les attributs que vous devez modifier à l'aide de ldapmodify
pour atteindre les objectifs suivants :
- Ajout d'un nouvel utilisateur de l'étape
- Modifier l'attribut d'un utilisateur
- Activation d'un utilisateur
- Désactivation d'un utilisateur
- Préserver un utilisateur
Les modèles sont formatés dans le format d'échange de données LDAP (LDIF). LDIF est un format standard d'échange de données en texte clair pour représenter le contenu de l'annuaire LDAP et les demandes de mise à jour.
À l'aide des modèles, vous pouvez configurer le fournisseur LDAP de votre système de provisionnement pour gérer les comptes d'utilisateurs IdM.
Pour des exemples détaillés de procédures, voir les sections suivantes :
Modèles pour l'ajout d'un nouvel utilisateur de l'étape
Un modèle pour ajouter un utilisateur avec UID and GID assigned automatically. Le nom distinctif (DN) de l'entrée créée doit commencer par
uid=user_login
:dn: uid=user_login,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com changetype: add objectClass: top objectClass: inetorgperson uid: user_login sn: surname givenName: first_name cn: full_name
Un modèle pour ajouter un utilisateur avec UID and GID assigned statically:
dn: uid=user_login,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com changetype: add objectClass: top objectClass: person objectClass: inetorgperson objectClass: organizationalperson objectClass: posixaccount uid: user_login uidNumber: UID_number gidNumber: GID_number sn: surname givenName: first_name cn: full_name homeDirectory: /home/user_login
Il n'est pas nécessaire de spécifier des classes d'objets IdM lors de l'ajout d'utilisateurs de scène. L'IdM ajoute ces classes automatiquement après l'activation des utilisateurs.
Modèles pour la modification des utilisateurs existants
Modifying a user’s attribute:
dn: distinguished_name changetype: modify replace: attribute_to_modify attribute_to_modify: new_value
Disabling a user:
dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: TRUE
Enabling a user:
dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: FALSE
La mise à jour de l'attribut
nssAccountLock
n'a aucun effet sur les utilisateurs de l'étape et les utilisateurs préservés. Même si l'opération de mise à jour se termine avec succès, la valeur de l'attribut restenssAccountLock: TRUE
.Preserving a user:
dn: distinguished_name changetype: modrdn newrdn: uid=user_login deleteoldrdn: 0 newsuperior: cn=deleted users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com
Avant de modifier un utilisateur, obtenez son nom distinctif (DN) en effectuant une recherche à l'aide de son login. Dans l'exemple suivant, l'utilisateur user_allowed_to_modify_user_entries est un utilisateur autorisé à modifier les informations relatives aux utilisateurs et aux groupes, par exemple activator ou l'administrateur IdM. Le mot de passe dans l'exemple est le mot de passe de cet utilisateur :
[...]
# ldapsearch -LLL -x -D "uid=user_allowed_to_modify_user_entries,cn=users,cn=accounts,dc=idm,dc=example,dc=com" -w "Secret123" -H ldap://r8server.idm.example.com -b "cn=users,cn=accounts,dc=idm,dc=example,dc=com" uid=test_user
dn: uid=test_user,cn=users,cn=accounts,dc=idm,dc=example,dc=com
memberOf: cn=ipausers,cn=groups,cn=accounts,dc=idm,dc=example,dc=com
9.2. Modèles pour la gestion externe des comptes de groupe IdM
Cette section décrit des modèles pour diverses opérations de gestion des groupes d'utilisateurs dans IdM. Les modèles indiquent les attributs que vous devez modifier à l'aide de ldapmodify
pour atteindre les objectifs suivants :
- Création d'un nouveau groupe
- Suppression d'un groupe existant
- Ajouter un membre à un groupe
- Supprimer un membre d'un groupe
Les modèles sont formatés dans le format d'échange de données LDAP (LDIF). LDIF est un format standard d'échange de données en texte clair pour représenter le contenu de l'annuaire LDAP et les demandes de mise à jour.
À l'aide des modèles, vous pouvez configurer le fournisseur LDAP de votre système de provisionnement pour gérer les comptes de groupe IdM.
Création d'un nouveau groupe
dn: cn=group_name,cn=groups,cn=accounts,dc=idm,dc=example,dc=com changetype: add objectClass: top objectClass: ipaobject objectClass: ipausergroup objectClass: groupofnames objectClass: nestedgroup objectClass: posixgroup uid: group_name cn: group_name gidNumber: GID_number
Modification des groupes
Deleting an existing group:
dn: group_distinguished_name changetype: delete
Adding a member to a group:
dn: group_distinguished_name changetype: modify add: member member: uid=user_login,cn=users,cn=accounts,dc=idm,dc=example,dc=com
N'ajoutez pas d'utilisateurs en stage ou préservés aux groupes. Même si l'opération de mise à jour se termine avec succès, les utilisateurs ne seront pas mis à jour en tant que membres du groupe. Seuls les utilisateurs actifs peuvent appartenir à des groupes.
Removing a member from a group:
dn: distinguished_name changetype: modify delete: member member: uid=user_login,cn=users,cn=accounts,dc=idm,dc=example,dc=com
Avant de modifier un groupe, obtenez son nom distinctif (DN) en effectuant une recherche à l'aide de son nom.
# ldapsearch -YGSSAPI -H ldap://server.idm.example.com -b "cn=groups,cn=accounts,dc=idm,dc=example,dc=com" "cn=group_name"
dn: cn=group_name,cn=groups,cn=accounts,dc=idm,dc=example,dc=com
ipaNTSecurityIdentifier: S-1-5-21-1650388524-2605035987-2578146103-11017
cn: testgroup
objectClass: top
objectClass: groupofnames
objectClass: nestedgroup
objectClass: ipausergroup
objectClass: ipaobject
objectClass: posixgroup
objectClass: ipantgroupattrs
ipaUniqueID: 569bf864-9d45-11ea-bea3-525400f6f085
gidNumber: 1997010017
9.3. Utilisation interactive de la commande ldapmodify
Vous pouvez modifier les entrées LDAP (Lightweight Directory Access Protocol) en mode interactif.
Procédure
Dans une ligne de commande, saisissez l'instruction LDAP Data Interchange Format (LDIF) après la commande
ldapmodify
.Exemple 9.1. Modifier le numéro de téléphone d'un testuser
# ldapmodify -Y GSSAPI -H ldap://server.example.com dn: uid=testuser,cn=users,cn=accounts,dc=example,dc=com changetype: modify replace: telephoneNumber telephonenumber: 88888888
Notez que vous devez obtenir un ticket Kerberos pour utiliser l'option
-Y
.-
Appuyez sur
Ctlr D
pour quitter le mode interactif. Vous pouvez également fournir un fichier LDIF après la commande
ldapmodify
:Exemple 9.2. La commande
ldapmodify
permet de lire les données de modification d'un fichier LDIF# ldapmodify -Y GSSAPI -H ldap://server.example.com -f ~/example.ldif
Ressources supplémentaires
-
Pour plus d'informations sur l'utilisation de la commande
ldapmodify
, voir la page de manuelldapmodify(1)
. -
Pour plus d'informations sur la structure
LDIF
, voir la page de manuelldif(5)
.
9.4. Préservation d'un utilisateur IdM avec ldapmodify
Cette section décrit comment utiliser ldapmodify
pour préserver un utilisateur IdM, c'est-à-dire comment désactiver un compte utilisateur après que l'employé a quitté l'entreprise.
Conditions préalables
- Vous pouvez vous authentifier en tant qu'utilisateur IdM avec un rôle de préservation des utilisateurs.
Procédure
Se connecter en tant qu'utilisateur IdM avec un rôle de préservation des utilisateurs :
kinit admin
Entrez dans la commande
ldapmodify
et indiquez Generic Security Services API (GSSAPI) comme mécanisme SASL (Simple Authentication and Security Layer) à utiliser pour l'authentification :# ldapmodify -Y GSSAPI SASL/GSSAPI authentication started SASL username: admin@IDM.EXAMPLE.COM SASL SSF: 256 SASL data security layer installed.
Saisissez l'adresse
dn
de l'utilisateur que vous souhaitez préserver :dn : uid=user1,cn=users,cn=accounts,dc=idm,dc=example,dc=com
Saisissez modrdn comme type de modification à effectuer :
changetype : modrdn
Spécifiez l'adresse newrdn pour l'utilisateur :
newrdn : uid=user1
Indiquez que vous souhaitez préserver l'utilisateur :
supprimeroldrdn : 0
Spécifiez le site new superior DN:
newsuperior : cn=deleted users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com
La préservation d'un utilisateur déplace l'entrée vers un nouvel emplacement dans l'arborescence des informations de répertoire (DIT). C'est pourquoi vous devez spécifier le DN de la nouvelle entrée parent comme nouveau DN supérieur.
Appuyez à nouveau sur
Enter
pour confirmer la fin de l'entrée :[Enter] modifying rdn of entry "uid=user1,cn=users,cn=accounts,dc=idm,dc=example,dc=com"
- Quittez la connexion en utilisant Ctrl C .
Verification steps
Vérifiez que l'utilisateur a été préservé en dressant la liste de tous les utilisateurs préservés :
$ ipa user-find --preserved=true -------------- 1 user matched -------------- User login: user1 First name: First 1 Last name: Last 1 Home directory: /home/user1 Login shell: /bin/sh Principal name: user1@IDM.EXAMPLE.COM Principal alias: user1@IDM.EXAMPLE.COM Email address: user1@idm.example.com UID: 1997010003 GID: 1997010003 Account disabled: True Preserved user: True ---------------------------- Number of entries returned 1 ----------------------------
Chapitre 10. Recherche d'entrées IdM à l'aide de la commande ldapsearch
Vous pouvez utiliser la commande ipa find
pour effectuer une recherche dans les entrées de gestion de l'identité. Pour plus d'informations sur la commande ipa
, voir la section Structure des commandes IPA.
Cette section présente les bases d'une option de recherche alternative à l'aide de la commande en ligne ldapsearch
par le biais des entrées de gestion de l'identité.
10.1. Utilisation de la commande ldapsearch
La commande ldapsearch
a le format suivant :
# ldapsearch [-x | -Y mechanism] [options] [search_filter] [list_of_attributes]
-
Pour configurer la méthode d'authentification, spécifiez l'option
-x
pour utiliser des liaisons simples ou l'option-Y
pour définir le mécanisme SASL (Simple Authentication and Security Layer). Notez que vous devez obtenir un ticket Kerberos si vous utilisez l'option-Y GSSAPI
. -
Les options de la commande options sont les options de la commande
ldapsearch
décrites dans le tableau ci-dessous. - Le site search_filter est un filtre de recherche LDAP.
- Le site list_of_attributes est une liste des attributs que les résultats de la recherche renvoient.
Par exemple, vous souhaitez rechercher le nom d'utilisateur user01 dans toutes les entrées d'une arborescence LDAP de base :
# ldapsearch -x -H ldap://ldap.example.com -s sub "(uid=user01)"
-
L'option
-x
indique à la commandeldapsearch
de s'authentifier avec le simple bind. Notez que si vous ne fournissez pas le Distinguish Name (DN) avec l'option-D
, l'authentification est anonyme. -
L'option
-H
vous connecte au site ldap://ldap.example.com. -
L'option
-s sub
indique à la commandeldapsearch
de rechercher dans toutes les entrées, à partir du DN de base, l'utilisateur portant le nom user01. L'option "(uid=user01)" est un filtre.
Notez que si vous n'indiquez pas le point de départ de la recherche avec l'option -b
, la commande recherche dans l'arbre par défaut. Il est spécifié dans le paramètre BASE du fichier etc/openldap/ldap.conf
.
Tableau 10.1. Les options de la commande ldapsearch
Option | Description |
---|---|
-b |
Le point de départ de la recherche. Si vos paramètres de recherche contiennent un astérisque (*) ou un autre caractère que la ligne de commande peut interpréter comme un code, vous devez mettre la valeur entre guillemets simples ou doubles. Par exemple, |
-D | Le Distinguished Name (DN) avec lequel vous souhaitez vous authentifier. |
-H |
Une URL LDAP pour se connecter au serveur. L'option |
-l | Délai en secondes pour attendre la fin d'une demande de recherche. |
-s scope | L'étendue de la recherche. Vous pouvez choisir l'un des éléments suivants pour le champ d'application :
|
-W | Demande de mot de passe. |
-x | Désactive la connexion SASL par défaut pour permettre des liaisons simples. |
-Y SASL_mechanism | Définit le mécanisme SASL pour l'authentification. |
-z number | Nombre maximum d'entrées dans le résultat de la recherche. |
Remarque : vous devez spécifier l'un des mécanismes d'authentification avec l'option -x
ou -Y
dans la commande ldapsearch
.
Ressources supplémentaires
-
Pour plus de détails sur l'utilisation de
ldapsearch
, voir la page de manuelldapsearch(1)
.
10.2. Utilisation des filtres ldapsearch
Les filtres du site ldapsearch
vous permettent d'affiner les résultats de la recherche.
Par exemple, vous souhaitez que le résultat de la recherche contienne toutes les entrées dont le nom commun est example:
"(cn=example)"
Dans ce cas, equal sign (=) est l'opérateur et example est la valeur.
Tableau 10.2. Les opérateurs de filtrage ldapsearch
Type de recherche | Opérateur | Description |
---|---|---|
L'égalité | = | Renvoie les entrées qui correspondent exactement à la valeur. Par exemple, cn=example. |
Sous-chaîne | =string* string | Renvoie toutes les entrées contenant la sous-chaîne correspondante. Par exemple, cn=exa*l. L'astérisque (*) indique zéro (0) ou plusieurs caractères. |
Supérieur ou égal à | >= | Renvoie toutes les entrées dont les attributs sont supérieurs ou égaux à la valeur. Par exemple, uidNumber >= 5000. |
Inférieur ou égal à | <= | Renvoie toutes les entrées dont les attributs sont inférieurs ou égaux à la valeur. Par exemple, uidNumber <= 5000. |
Présence | =* | Renvoie toutes les entrées avec un ou plusieurs attributs. Par exemple, cn=*. |
Approximation | ~= | Renvoie toutes les entrées dont les attributs sont similaires à ceux de la valeur. Par exemple, l~=san fransico peut renvoyer l=san francisco. |
Vous pouvez utiliser les opérateurs boolean pour combiner plusieurs filtres à la commande ldapsearch
.
Tableau 10.3. Les opérateurs booléens du filtre ldapsearch
Type de recherche | Opérateur | Description |
---|---|---|
ET | & | Renvoie toutes les entrées pour lesquelles toutes les affirmations des filtres sont vraies. Par exemple, (&(filter)(filter)(filter)…). |
OU | | | Renvoie toutes les entrées pour lesquelles au moins une déclaration dans les filtres est vraie. Par exemple, (|(filter)(filter)(filter)…). |
PAS | ! | Renvoie toutes les entrées pour lesquelles l'énoncé du filtre n'est pas vrai. Par exemple, (!(filter)). |
Chapitre 11. Configuration de l'IdM pour le provisionnement externe des utilisateurs
En tant qu'administrateur système, vous pouvez configurer la gestion des identités (IdM) pour prendre en charge le provisionnement des utilisateurs par une solution externe de gestion des identités.
Plutôt que d'utiliser l'utilitaire ipa
, l'administrateur du système de provisionnement externe peut accéder au LDAP IdM à l'aide de l'utilitaire ldapmodify
. L'administrateur peut ajouter des utilisateurs de scène individuels à partir de l'interface de ligne de commande en utilisant ldapmodify ou en utilisant un fichier LDIF.
L'hypothèse est que vous, en tant qu'administrateur IdM, faites entièrement confiance à votre système de provisionnement externe pour n'ajouter que des utilisateurs validés. Toutefois, vous ne souhaitez pas attribuer aux administrateurs du système de provisionnement externe le rôle IdM de User Administrator
pour leur permettre d'ajouter directement de nouveaux utilisateurs actifs.
Vous pouvez configurer un script pour déplacer automatiquement les utilisateurs en phase créés par le système de provisionnement externe vers des utilisateurs actifs.
Ce chapitre contient les sections suivantes :
- Préparation de la gestion des identités (IdM) à l'utilisation d'un système de provisionnement externe pour ajouter des utilisateurs d'étape à IdM.
- Création d'un script pour faire passer les utilisateurs ajoutés par le système de provisionnement externe du statut d'utilisateurs actifs à celui d'utilisateurs actifs.
Utilisation d'un système de provisionnement externe pour ajouter un utilisateur de l'étape IdM. Vous pouvez le faire de deux manières :
11.1. Préparation des comptes IdM pour l'activation automatique des comptes d'utilisateurs de l'étape
Cette procédure montre comment configurer deux comptes d'utilisateur IdM pour qu'ils soient utilisés par un système de provisionnement externe. En ajoutant les comptes à un groupe avec une politique de mot de passe appropriée, vous permettez au système de provisionnement externe de gérer le provisionnement des utilisateurs dans IdM. Dans ce qui suit, le compte d'utilisateur à utiliser par le système externe pour ajouter des utilisateurs de stage est nommé provisionator. Le compte d'utilisateur à utiliser pour activer automatiquement les utilisateurs de l'étape est nommé activator.
Conditions préalables
- L'hôte sur lequel vous effectuez la procédure est enrôlé dans IdM.
Procédure
Se connecter en tant qu'administrateur IdM :
kinit admin
Créez un utilisateur nommé provisionator avec les privilèges d'ajouter des utilisateurs de scène.
- Ajouter le compte utilisateur du provisionneur :
ipa user-add provisionator --first=provisioning --last=account --password
Accorder à l'utilisateur du provisionneur les privilèges requis.
Créez un rôle personnalisé,
System Provisioning
, pour gérer l'ajout d'utilisateurs de l'étape :$ ipa role-add --desc \N- "Responsable de l'approvisionnement des utilisateurs de l'étape\N" \N- "Provisionnement du système\N"
Ajoutez le privilège
Stage User Provisioning
au rôle. Ce privilège permet d'ajouter des utilisateurs de scène :$ ipa role-add-privilege \N "System Provisioning" --privileges=\N "Stage User Provisioning" $ ipa role-add-privilege \N "System Provisioning" --privileges=\N "Stage User Provisioning"
Ajouter l'utilisateur du provisionneur au rôle :
$ ipa role-add-member --users=provisionator "System Provisioning"
- Vérifier que le provisionneur existe dans IdM :
$ ipa user-find provisionator --all --raw -------------- 1 user matched -------------- dn: uid=provisionator,cn=users,cn=accounts,dc=idm,dc=example,dc=com uid: provisionator [...]
Créez un utilisateur, activator, avec les privilèges nécessaires pour gérer les comptes d'utilisateurs.
Ajouter le compte utilisateur de l'activateur :
$ ipa user-add activator --first=activation --last=account --password
Accordez à l'utilisateur de l'activateur les privilèges requis en ajoutant l'utilisateur au rôle par défaut
User Administrator
:$ ipa role-add-member --users=activator "User Administrator"
Créer un groupe d'utilisateurs pour les comptes d'application :
ipa group-add application-accounts
Mettez à jour la politique de mot de passe pour le groupe. La politique suivante empêche l'expiration du mot de passe et le verrouillage du compte, mais compense les risques potentiels en exigeant des mots de passe complexes :
$ ipa pwpolicy-add application-accounts --maxlife=10000 --minlife=0 --history=0 --minclasses=4 --minlength=8 --priority=1 --maxfail=0 --failinterval=1 --lockouttime=0
(Facultatif) Vérifier que la politique de mot de passe existe dans IdM :
$ ipa pwpolicy-show application-accounts Group: application-accounts Max lifetime (days): 10000 Min lifetime (hours): 0 History size: 0 [...]
Ajoutez les comptes de provisionnement et d'activation au groupe des comptes d'application :
$ ipa group-add-member application-accounts --users={provisionator,activator}
Modifier les mots de passe des comptes utilisateurs :
$ kpasswd provisionator $ kpasswd activator
La modification des mots de passe est nécessaire car les mots de passe des nouveaux utilisateurs de l'IdM expirent immédiatement.
Ressources complémentaires :
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.
11.3. Ajout d'une étape IdM définie par l'utilisateur dans un fichier LDIF
Cette section décrit comment un administrateur d'un système de provisionnement externe peut accéder à IdM LDAP et utiliser un fichier LDIF pour ajouter des utilisateurs d'étape. L'exemple ci-dessous montre l'ajout d'un seul utilisateur, mais plusieurs utilisateurs peuvent être ajoutés dans un fichier en mode groupé.
Conditions préalables
- L'administrateur IdM a créé le compte provisionator et un mot de passe. Pour plus de détails, voir Préparation des comptes IdM pour l'activation automatique des comptes d'utilisateurs de scène.
- En tant qu'administrateur externe, vous connaissez le mot de passe du compte provisionator.
- Vous pouvez accéder au serveur IdM par SSH à partir de votre serveur LDAP.
Vous êtes en mesure de fournir l'ensemble minimal d'attributs qu'un utilisateur de la phase IdM doit posséder pour permettre le traitement correct du cycle de vie de l'utilisateur, à savoir :
-
Le site
distinguished name
(dn) -
The
common name
(cn) -
The
last name
(sn) -
Les
uid
-
Le site
Procédure
Sur le serveur externe, créez un fichier LDIF contenant des informations sur le nouvel utilisateur :
dn: uid=stageidmuser,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com changetype: add objectClass: top objectClass: inetorgperson uid: stageidmuser sn: surname givenName: first_name cn: full_name
Transférer le fichier LDIF du serveur externe vers le serveur IdM :
$ scp add-stageidmuser.ldif provisionator@server.idm.example.com:/provisionator/ Password: add-stageidmuser.ldif 100% 364 217.6KB/s 00:00
Utilisez le protocole
SSH
pour vous connecter au serveur IdM en tant que provisionator:$ ssh provisionator@server.idm.example.com Password: [provisionator@server ~]$
Sur le serveur IdM, obtenez le ticket Kerberos (TGT) pour le compte du provisionneur :
[provisionator@server ~]$ kinit provisionator
Saisir la commande
ldapadd
avec l'option -f et le nom du fichier LDIF. Spécifiez le nom du serveur IdM et le numéro de port :~]$ ldapadd -h server.idm.example.com -p 389 -f add-stageidmuser.ldif SASL/GSSAPI authentication started SASL username: provisionator@IDM.EXAMPLE.COM SASL SSF: 256 SASL data security layer installed. adding the entry "uid=stageidmuser,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com"
11.4. Ajout d'un utilisateur d'étape IdM directement à partir de l'interface de dialogue en ligne à l'aide de ldapmodify
Cette section décrit comment un administrateur d'un système de provisionnement externe peut accéder au LDAP de la gestion des identités (IdM) et utiliser l'utilitaire ldapmodify
pour ajouter un utilisateur de scène.
Conditions préalables
- L'administrateur IdM a créé le compte provisionator et un mot de passe. Pour plus de détails, voir Préparation des comptes IdM pour l'activation automatique des comptes d'utilisateurs de scène.
- En tant qu'administrateur externe, vous connaissez le mot de passe du compte provisionator.
- Vous pouvez accéder au serveur IdM par SSH à partir de votre serveur LDAP.
Vous êtes en mesure de fournir l'ensemble minimal d'attributs qu'un utilisateur de la phase IdM doit posséder pour permettre le traitement correct du cycle de vie de l'utilisateur, à savoir :
-
Le site
distinguished name
(dn) -
The
common name
(cn) -
The
last name
(sn) -
Les
uid
-
Le site
Procédure
Utilisez le protocole
SSH
pour vous connecter au serveur IdM en utilisant votre identité et vos informations d'identification IdM :$ ssh provisionator@server.idm.example.com Password: [provisionator@server ~]$
Obtenir le TGT du compte provisionator, un utilisateur IdM ayant le rôle d'ajouter de nouveaux utilisateurs de scène :
$ kinit provisionator
Entrez dans la commande
ldapmodify
et spécifiez Generic Security Services API (GSSAPI) comme mécanisme SASL (Simple Authentication and Security Layer) à utiliser pour l'authentification. Indiquez le nom du serveur IdM et le port :# ldapmodify -h server.idm.example.com -p 389 -Y GSSAPI SASL/GSSAPI authentication started SASL username: provisionator@IDM.EXAMPLE.COM SASL SSF: 56 SASL data security layer installed.
Saisissez l'adresse
dn
de l'utilisateur que vous ajoutez :dn : uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com
Saisissez add comme type de modification à effectuer :
changetype : add
Spécifier les catégories de classes d'objets LDAP requises pour permettre le traitement correct du cycle de vie de l'utilisateur :
objectClass: top objectClass: inetorgperson
Vous pouvez spécifier des classes d'objets supplémentaires.
Saisissez l'adresse
uid
de l'utilisateur :uid : stageuser
Saisissez l'adresse
cn
de l'utilisateur :cn : Babs Jensen
Saisissez le nom de famille de l'utilisateur :
sn : Jensen
Appuyez à nouveau sur
Enter
pour confirmer la fin de l'entrée :[Enter] adding new entry "uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com"
- Quittez la connexion en utilisant Ctrl C .
Verification steps
Vérifiez le contenu de l'entrée de scène pour vous assurer que votre système de provisionnement a ajouté tous les attributs POSIX requis et que l'entrée de scène est prête à être activée.
Pour afficher les attributs LDAP du nouvel utilisateur de l'étape, entrez la commande
ipa stageuser-show --all --raw
:$ ipa stageuser-show stageuser --all --raw dn: uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=idm,dc=example,dc=com uid: stageuser sn: Jensen cn: Babs Jensen has_password: FALSE has_keytab: FALSE nsaccountlock: TRUE objectClass: top objectClass: inetorgperson objectClass: organizationalPerson objectClass: person
-
Notez que l'utilisateur est explicitement désactivé par l'attribut
nsaccountlock
.
-
Notez que l'utilisateur est explicitement désactivé par l'attribut
11.5. Ressources supplémentaires
Chapitre 12. Renforcer la sécurité de Kerberos avec les informations du PAC
Les sections suivantes expliquent comment la gestion des identités (IdM) fonctionne avec les informations du certificat d'attributs de privilèges (PAC) par défaut depuis RHEL 8.5. Vous pouvez également activer les identificateurs de sécurité (SID) dans les déploiements IdM installés avant RHEL 8.5.
12.1. Utilisation du certificat d'attribut de privilège (PAC) dans l'IdM
Pour renforcer la sécurité, RHEL Identity Management (IdM) émet désormais des tickets Kerberos avec des informations de certificat d'attribut de privilège (PAC) par défaut dans les nouveaux déploiements. Un PAC contient de nombreuses informations sur un principal Kerberos, notamment son identifiant de sécurité (SID), l'appartenance à un groupe et des informations sur le répertoire personnel.
Les SID, que Microsoft Active Directory (AD) utilise par défaut, sont des identifiants uniques au niveau mondial qui ne sont jamais réutilisés. Les SID expriment plusieurs espaces de noms : chaque domaine a un SID, qui est un préfixe dans le SID de chaque objet.
À partir de RHEL 8.5, lorsque vous installez un serveur IdM ou un réplica, le script d'installation génère par défaut des SID pour les utilisateurs et les groupes. Cela permet à IdM de travailler avec des données PAC. Si vous avez installé IdM avant RHEL 8.5 et que vous n'avez pas configuré de confiance avec un domaine AD, il se peut que vous n'ayez pas généré de SID pour vos objets IdM. Pour plus d'informations sur la génération de SID pour vos objets IdM, voir Activation des identifiants de sécurité (SID) dans IdM.
En évaluant les informations PAC dans les tickets Kerberos, vous pouvez contrôler l'accès aux ressources de manière beaucoup plus détaillée. Par exemple, le compte Administrateur d'un domaine a un SID différent de celui du compte Administrateur d'un autre domaine. Dans un environnement IdM avec une confiance dans un domaine AD, vous pouvez définir des contrôles d'accès basés sur des SID uniques au niveau mondial plutôt que sur de simples noms d'utilisateur ou UID qui peuvent se répéter à différents endroits, comme par exemple chaque compte Linux root
ayant un UID de 0.
12.2. Activation des identificateurs de sécurité (SID) dans l'IdM
Si vous avez installé IdM avant RHEL 8.5 et que vous n'avez pas configuré de confiance avec un domaine AD, il se peut que vous n'ayez pas généré d'identifiants de sécurité (SID) pour vos objets IdM. En effet, auparavant, le seul moyen de générer des SID était d'exécuter la commande ipa-adtrust-install
pour ajouter le rôle Trust Controller à un serveur IdM.
À partir de RHEL 8.6, Kerberos dans IdM exige que vos objets IdM aient des SID, qui sont nécessaires pour la sécurité basée sur les informations du certificat d'accès aux privilèges (PAC).
Conditions préalables
- Vous avez installé IdM avant RHEL 8.5.
-
Vous n'avez pas exécuté la tâche
ipa-sidgen
, qui fait partie de la configuration d'une confiance avec un domaine Active Directory. - Vous pouvez vous authentifier en tant que compte administrateur IdM.
Procédure
Activez l'utilisation des SID et déclenchez la tâche
SIDgen
pour générer des SID pour les utilisateurs et les groupes existants. Cette tâche peut être gourmande en ressources :[root@server ~]# ipa config-mod --enable-sid --add-sids
Vérification
Vérifiez que l'entrée du compte utilisateur IdM
admin
a un attributipantsecurityidentifier
avec un SID qui se termine par-500
, le SID réservé à l'administrateur du domaine :[root@server ~]# ipa user-show admin --all | grep ipantsecurityidentifier ipantsecurityidentifier: S-1-5-21-2633809701-976279387-419745629-500
Chapitre 13. Gestion des politiques de tickets Kerberos
Les politiques de tickets Kerberos dans la gestion des identités (IdM) définissent des restrictions sur l'accès, la durée et le renouvellement des tickets Kerberos. Vous pouvez configurer les politiques de tickets Kerberos pour le Centre de distribution de clés (KDC) fonctionnant sur votre serveur IdM.
Ce chapitre présente les sujets et les tâches suivants relatifs à la gestion des tickets Kerberos :
- Le rôle du KDC IdM
- Types de politiques de ticket IdM Kerberos
- Indicateurs d'authentification Kerberos
- Renforcement des indicateurs d'authentification pour un service IdM
- Configuration de la politique globale de cycle de vie des tickets
- Configuration des politiques de tickets globales par indicateur d'authentification
- Configuration de la politique de billetterie par défaut pour un utilisateur
- Configurer les politiques de tickets des indicateurs d'authentification individuels pour un utilisateur
-
Options de l'indicateur d'authentification pour la commande
krbtpolicy-mod
13.1. Le rôle du KDC IdM
Les mécanismes d'authentification de la gestion de l'identité utilisent l'infrastructure Kerberos établie par le centre de distribution de clés (KDC). Le KDC est l'autorité de confiance qui stocke les informations d'identification et garantit l'authenticité des données provenant des entités du réseau IdM.
Chaque utilisateur, service et hôte IdM agit comme un client Kerberos et est identifié par une adresse Kerberos unique principal:
-
Pour les utilisateurs :
identifier@REALM
, tels queadmin@EXAMPLE.COM
-
Pour les services :
service/fully-qualified-hostname@REALM
, tels quehttp/server.example.com@EXAMPLE.COM
-
Pour les hôtes :
host/fully-qualified-hostname@REALM
, tels quehost/client.example.com@EXAMPLE.COM
L'image suivante est une simplification de la communication entre un client Kerberos, le KDC et une application Kerberisée avec laquelle le client veut communiquer.
-
Un client Kerberos s'identifie auprès du KDC en s'authentifiant en tant que principal Kerberos. Par exemple, un utilisateur IdM effectue
kinit username
et fournit son mot de passe. - Le KDC vérifie la présence du principal dans sa base de données, authentifie le client et évalue les politiques de tickets Kerberos afin de déterminer s'il convient d'accéder à la demande.
- Le KDC délivre au client un ticket d'attribution de ticket (TGT) avec un cycle de vie et des indicateurs d'authentification conformément à la politique de ticket appropriée.
- Avec le TGT, le client demande une adresse service ticket au KDC pour communiquer avec un service Kerberisé sur un hôte cible.
- Le KDC vérifie si le TGT du client est toujours valide et évalue la demande de ticket de service par rapport aux politiques de ticket.
- Le KDC délivre au client une adresse service ticket.
- Avec le ticket de service, le client peut initier une communication cryptée avec le service sur l'hôte cible.
13.2. Types de politiques de ticket IdM Kerberos
Les politiques de ticket Kerberos de l'IdM mettent en œuvre les types de politique de ticket suivants :
- Politique de connexion
Pour protéger les services Kerberisés avec différents niveaux de sécurité, vous pouvez définir des stratégies de connexion pour appliquer des règles basées sur le mécanisme de préauthentification qu'un client a utilisé pour récupérer un ticket d'attribution de ticket (TGT).
Par exemple, vous pouvez exiger une authentification par carte à puce pour vous connecter à
client1.example.com
, et exiger une authentification à deux facteurs pour accéder à l'applicationtestservice
surclient2.example.com
.Pour appliquer les politiques de connexion, associez authentication indicators aux services. Seuls les clients dont les demandes de tickets de service contiennent les indicateurs d'authentification requis peuvent accéder à ces services. Pour plus d'informations, voir Indicateurs d'authentification Kerberos.
- Politique relative au cycle de vie des billets
Chaque ticket Kerberos a une lifetime et une renewal age potentielle : vous pouvez renouveler un ticket avant qu'il n'atteigne sa durée de vie maximale, mais pas après qu'il ait dépassé son âge maximal de renouvellement.
La durée de vie globale par défaut des tickets est d'un jour (86400 secondes) et l'âge maximum de renouvellement global par défaut est d'une semaine (604800 secondes). Pour ajuster ces valeurs globales, voir Configuration de la politique globale de cycle de vie des tickets.
Vous pouvez également définir vos propres politiques de cycle de vie des tickets :
- Pour configurer des valeurs de cycle de vie des tickets globaux différentes pour chaque indicateur d'authentification, voir Configuration des politiques de tickets globaux par indicateur d'authentification.
- Pour définir des valeurs de cycle de vie des tickets pour un seul utilisateur qui s'appliquent quelle que soit la méthode d'authentification utilisée, voir Configuration de la stratégie de ticket par défaut pour un utilisateur.
- Pour définir des valeurs de cycle de vie de ticket individuelles pour chaque indicateur d'authentification qui ne s'appliquent qu'à un seul utilisateur, voir Configuration de politiques de ticket d'indicateur d'authentification individuelles pour un utilisateur.
13.3. Indicateurs d'authentification Kerberos
Le centre de distribution de clés Kerberos (KDC) associe authentication indicators à un ticket d'attribution de ticket (TGT) en fonction du mécanisme de préauthentification utilisé par le client pour prouver son identité :
otp
- authentification à deux facteurs (mot de passe à usage unique)
radius
- Authentification RADIUS (généralement pour l'authentification 802.1x)
pkinit
- Authentification par PKINIT, carte à puce ou certificat
hardened
- mots de passe renforcés (SPAKE ou FAST)[1]
Le KDC attache ensuite les indicateurs d'authentification du TGT à toutes les demandes de tickets de service qui en découlent. Le KDC applique des politiques telles que le contrôle d'accès aux services, la durée de vie maximale des tickets et l'âge maximal de renouvellement sur la base des indicateurs d'authentification.
Indicateurs d'authentification et services IdM
Si vous associez un service ou un hôte à un indicateur d'authentification, seuls les clients qui ont utilisé le mécanisme d'authentification correspondant pour obtenir un TGT pourront y accéder. Le KDC, et non l'application ou le service, vérifie la présence d'indicateurs d'authentification dans les demandes de tickets de service et accorde ou refuse les demandes en fonction des politiques de connexion Kerberos.
Par exemple, pour exiger une authentification à deux facteurs pour se connecter à un réseau privé virtuel (VPN), associez l'indicateur d'authentification otp
à ce service. Seuls les utilisateurs qui ont utilisé un mot de passe à usage unique pour obtenir leur TGT initial auprès du KDC pourront se connecter au réseau privé virtuel :
Figure 13.1. Exemple de service VPN nécessitant l'indicateur d'authentification otp
Si aucun indicateur d'authentification n'est attribué à un service ou à un hôte, celui-ci acceptera les tickets authentifiés par n'importe quel mécanisme.
Ressources supplémentaires
13.4. Renforcement des indicateurs d'authentification pour un service IdM
Les mécanismes d'authentification pris en charge par la gestion des identités (IdM) varient en termes de force d'authentification. Par exemple, l'obtention du ticket initial Kerberos (TGT) à l'aide d'un mot de passe à usage unique (OTP) en combinaison avec un mot de passe standard est considérée comme plus sûre que l'authentification à l'aide d'un mot de passe standard uniquement.
En associant des indicateurs d'authentification à un service IdM particulier, vous pouvez, en tant qu'administrateur IdM, configurer le service de sorte que seuls les utilisateurs qui ont utilisé ces mécanismes de préauthentification spécifiques pour obtenir leur ticket initial (TGT) puissent accéder au service.
De cette façon, vous pouvez configurer différents services IdM de manière à ce que :
- Seuls les utilisateurs qui ont utilisé une méthode d'authentification plus forte pour obtenir leur TGT initial, comme un mot de passe à usage unique (OTP), peuvent accéder à des services essentiels à la sécurité, comme un VPN.
- Les utilisateurs qui ont utilisé des méthodes d'authentification plus simples pour obtenir leur TGT initial, comme un mot de passe, ne peuvent accéder qu'à des services non critiques, comme les connexions locales.
Figure 13.2. Exemple d'authentification à l'aide de différentes technologies
Cette procédure décrit la création d'un service IdM et sa configuration pour exiger des indicateurs d'authentification Kerberos particuliers pour les demandes de tickets de service entrantes.
13.4.1. Création d'une entrée de service IdM et de son keytab Kerberos
L'ajout d'une entrée IdM service à IdM pour un service fonctionnant sur un hôte IdM crée un principal Kerberos correspondant et permet au service de demander un certificat SSL, un keytab Kerberos ou les deux.
La procédure suivante décrit la création d'une entrée de service IdM et la génération d'un keytab Kerberos associé pour chiffrer la communication avec ce service.
Conditions préalables
- Votre service peut stocker un principal Kerberos, un certificat SSL ou les deux.
Procédure
Ajoutez un service IdM avec la commande
ipa service-add
pour créer un principal Kerberos associé à ce service. Par exemple, pour créer l'entrée du service IdM pour l'applicationtestservice
qui s'exécute sur l'hôteclient.example.com
:[root@client ~]# ipa service-add testservice/client.example.com ------------------------------------------------------------- Modified service "testservice/client.example.com@EXAMPLE.COM" ------------------------------------------------------------- Principal name: testservice/client.example.com@EXAMPLE.COM Principal alias: testservice/client.example.com@EXAMPLE.COM Managed by: client.example.com
Générer et stocker un keytab Kerberos pour le service sur le client.
[root@client ~]# ipa-getkeytab -k /etc/testservice.keytab -p testservice/client.example.com Keytab successfully retrieved and stored in: /etc/testservice.keytab
Verification steps
Affichez des informations sur un service IdM à l'aide de la commande
ipa service-show
.[root@server ~]# ipa service-show testservice/client.example.com Principal name: testservice/client.example.com@EXAMPLE.COM Principal alias: testservice/client.example.com@EXAMPLE.COM Keytab: True Managed by: client.example.com
Affichez le contenu de la base de données Kerberos du service avec la commande
klist
.[root@server etc]# klist -ekt /etc/testservice.keytab Keytab name: FILE:/etc/testservice.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 2 04/01/2020 17:52:55 testservice/client.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96) 2 04/01/2020 17:52:55 testservice/client.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96) 2 04/01/2020 17:52:55 testservice/client.example.com@EXAMPLE.COM (camellia128-cts-cmac) 2 04/01/2020 17:52:55 testservice/client.example.com@EXAMPLE.COM (camellia256-cts-cmac)
13.4.2. Associer des indicateurs d'authentification à un service IdM à l'aide de la CLI IdM
En tant qu'administrateur Identity Management (IdM), vous pouvez configurer un hôte ou un service pour exiger qu'un ticket de service présenté par l'application cliente contienne un indicateur d'authentification spécifique. Par exemple, vous pouvez vous assurer que seuls les utilisateurs qui ont utilisé un jeton d'authentification à deux facteurs IdM valide avec leur mot de passe lors de l'obtention d'un ticket Kerberos (TGT) pourront accéder à cet hôte ou à ce service.
Cette procédure décrit la configuration d'un service pour qu'il exige des indicateurs d'authentification Kerberos particuliers dans les demandes de tickets de service entrantes.
Conditions préalables
- Vous avez créé une entrée de service IdM pour un service qui s'exécute sur un hôte IdM. Voir Création d'une entrée de service IdM et de son keytab Kerberos.
- Vous avez obtenu le ticket d'attribution de ticket d'un utilisateur administratif dans IdM.
Ne not assigner des indicateurs d'authentification aux services IdM internes. Les services IdM suivants ne peuvent pas effectuer les étapes d'authentification interactive requises par PKINIT et les méthodes d'authentification multifactorielle :
host/server.example.com@EXAMPLE.COM HTTP/server.example.com@EXAMPLE.COM ldap/server.example.com@EXAMPLE.COM DNS/server.example.com@EXAMPLE.COM cifs/server.example.com@EXAMPLE.COM
Procédure
Utilisez la commande
ipa service-mod
pour spécifier un ou plusieurs indicateurs d'authentification requis pour un service, identifié par l'argument--auth-ind
.Méthode d'authentification --auth-ind
valeurAuthentification à deux facteurs
otp
Authentification RADIUS
radius
Authentification par PKINIT, carte à puce ou certificat
pkinit
Mots de passe renforcés (SPAKE ou FAST)
hardened
Par exemple, pour exiger qu'un utilisateur ait été authentifié par carte à puce ou par OTP pour récupérer un ticket de service pour le principal
testservice
sur l'hôteclient.example.com
:[root@server ~]# ipa service-mod testservice/client.example.com@EXAMPLE.COM --auth-ind otp --auth-ind pkinit ------------------------------------------------------------- Modified service "testservice/client.example.com@EXAMPLE.COM" ------------------------------------------------------------- Principal name: testservice/client.example.com@EXAMPLE.COM Principal alias: testservice/client.example.com@EXAMPLE.COM Authentication Indicators: otp, pkinit Managed by: client.example.com
Pour supprimer tous les indicateurs d'authentification d'un service, il faut fournir une liste vide d'indicateurs :
[root@server ~]# ipa service-mod testservice/client.example.com@EXAMPLE.COM --auth-ind ''
------------------------------------------------------
Modified service "testservice/client.example.com@EXAMPLE.COM"
------------------------------------------------------
Principal name: testservice/client.example.com@EXAMPLE.COM
Principal alias: testservice/client.example.com@EXAMPLE.COM
Managed by: client.example.com
Verification steps
La commande
ipa service-show
permet d'afficher des informations sur un service IdM, y compris les indicateurs d'authentification qu'il requiert.[root@server ~]# ipa service-show testservice/client.example.com Principal name: testservice/client.example.com@EXAMPLE.COM Principal alias: testservice/client.example.com@EXAMPLE.COM Authentication Indicators: otp, pkinit Keytab: True Managed by: client.example.com
13.4.3. Associer des indicateurs d'authentification à un service IdM à l'aide de l'interface Web IdM
En tant qu'administrateur Identity Management (IdM), vous pouvez configurer un hôte ou un service pour qu'un ticket de service présenté par l'application cliente contienne un indicateur d'authentification spécifique. Par exemple, vous pouvez vous assurer que seuls les utilisateurs qui ont utilisé un jeton d'authentification à deux facteurs IdM valide avec leur mot de passe lors de l'obtention d'un ticket Kerberos (TGT) pourront accéder à cet hôte ou à ce service.
Cette procédure décrit comment utiliser l'interface Web IdM pour configurer un hôte ou un service afin qu'il exige des indicateurs d'authentification Kerberos particuliers pour les demandes de tickets entrantes.
Conditions préalables
- Vous vous êtes connecté à l'interface Web IdM en tant qu'utilisateur administratif.
Procédure
- Sélectionner Identité → Hôtes ou D'identité → Services.
- Cliquez sur le nom de l'hôte ou du service requis.
Sous
Authentication indicators
, sélectionnez la méthode d'authentification requise.-
Par exemple, la sélection de
OTP
garantit que seuls les utilisateurs qui ont utilisé un jeton d'authentification à deux facteurs IdM valide avec leur mot de passe lors de l'obtention d'un TGT Kerberos pourront accéder à l'hôte ou au service. -
Si vous sélectionnez à la fois
OTP
etRADIUS
, les utilisateurs qui ont utilisé un jeton d'authentification à deux facteurs IdM valide avec leur mot de passe lors de l'obtention d'un TGT Kerberos and qui ont utilisé le serveur RADIUS pour obtenir leur TGT Kerberos seront autorisés à accéder à l'application.
-
Par exemple, la sélection de
- Cliquez sur Enregistrer en haut de la page.
13.4.4. Récupération d'un ticket de service Kerberos pour un service IdM
La procédure suivante décrit la récupération d'un ticket de service Kerberos pour un service IdM. Vous pouvez utiliser cette procédure pour tester les politiques relatives aux tickets Kerberos, par exemple en imposant la présence de certains indicateurs d'authentification Kerberos dans un ticket d'attribution de ticket (TGT).
Conditions préalables
- Si le service avec lequel vous travaillez n'est pas un service IdM interne, vous avez créé une entrée IdM service correspondante. Voir Création d'une entrée de service IdM et de son keytab Kerberos.
- Vous disposez d'un ticket Kerberos (TGT).
Procédure
Utilisez la commande
kvno
avec l'option-S
pour récupérer un ticket de service et spécifier le nom du service IdM et le nom de domaine complet de l'hôte qui le gère.[root@server ~]# kvno -S testservice client.example.com testservice/client.example.com@EXAMPLE.COM: kvno = 1
Si vous devez accéder à un service IdM et que votre ticket d'attribution de ticket (TGT) actuel ne possède pas les indicateurs d'authentification Kerberos requis qui lui sont associés, effacez votre cache d'informations d'identification Kerberos actuel à l'aide de la commande kdestroy
et récupérez un nouveau TGT :
[root@server ~]# kdestroy
Par exemple, si vous avez initialement récupéré un TGT en vous authentifiant avec un mot de passe et que vous devez accéder à un service IdM auquel est associé l'indicateur d'authentification pkinit
, détruisez votre cache d'informations d'identification actuel et authentifiez-vous à nouveau avec une carte à puce. Voir les indicateurs d'authentification Kerberos.
Verification steps
Utilisez la commande
klist
pour vérifier que le ticket de service se trouve dans le cache d'informations d'identification Kerberos par défaut.[root@server etc]# klist_ Ticket cache: KCM:1000 Default principal: admin@EXAMPLE.COM Valid starting Expires Service principal 04/01/2020 12:52:42 04/02/2020 12:52:39 krbtgt/EXAMPLE.COM@EXAMPLE.COM 04/01/2020 12:54:07 04/02/2020 12:52:39 testservice/client.example.com@EXAMPLE.COM
13.4.5. Ressources supplémentaires
13.5. Configuration de la politique globale de cycle de vie des tickets
La politique de ticket globale s'applique à tous les tickets de service et aux utilisateurs pour lesquels aucune politique de ticket par utilisateur n'a été définie.
La procédure suivante décrit l'ajustement de la durée de vie maximale des tickets et de l'âge maximal de renouvellement des tickets pour la stratégie globale de tickets Kerberos à l'aide de la commande ipa krbtpolicy-mod
.
Lors de l'utilisation de la commande ipa krbtpolicy-mod
, spécifiez au moins l'un des arguments suivants :
-
--maxlife
pour la durée de vie maximale du ticket en secondes -
--maxrenew
pour l'âge maximum renouvelable en secondes
Procédure
Pour modifier la politique globale en matière de tickets :
[root@server ~]# ipa krbtpolicy-mod --maxlife=$((8*60*60)) --maxrenew=$((24*60*60)) Max life: 28800 Max renew: 86400
In this example, the maximum lifetime is set to eight hours (8 * 60 minutes * 60 seconds) and the maximum renewal age is set to one day (24 * 60 minutes * 60 seconds).
Facultatif : Pour rétablir les valeurs d'installation par défaut de la politique globale en matière de tickets Kerberos :
[root@server ~]# ipa krbtpolicy-reset Max life: 86400 Max renew: 604800
Verification steps
Afficher la politique globale en matière de tickets :
[root@server ~]# ipa krbtpolicy-show Max life: 28800 Max renew: 86640
13.6. Configuration des politiques de tickets globales par indicateur d'authentification
Cette procédure décrit le réglage de la durée de vie maximale globale du ticket et de l'âge maximal renouvelable pour chaque indicateur d'authentification. Ces paramètres s'appliquent aux utilisateurs pour lesquels aucune politique de ticket par utilisateur n'a été définie.
Utilisez la commande ipa krbtpolicy-mod
pour spécifier la durée de vie maximale globale ou l'âge maximal renouvelable des tickets Kerberos en fonction des indicateurs d'authentification qui leur sont associés.
Procédure
Par exemple, pour définir les valeurs globales de durée de vie et d'âge de renouvellement du ticket à deux facteurs à une semaine, et les valeurs globales de durée de vie et d'âge de renouvellement du ticket de carte à puce à deux semaines :
[root@server ~]# ipa krbtpolicy-mod --otp-maxlife=604800 --otp-maxrenew=604800 --pkinit-maxlife=172800 --pkinit-maxrenew=172800
Verification steps
Afficher la politique globale en matière de tickets :
[root@server ~]# ipa krbtpolicy-show Max life: 86400 OTP max life: 604800 PKINIT max life: 172800 Max renew: 604800 OTP max renew: 604800 PKINIT max renew: 172800
Notez que les valeurs OTP et PKINIT sont différentes des valeurs globales par défaut
Max life
etMax renew
.
Ressources supplémentaires
13.7. Configuration de la politique de billetterie par défaut pour un utilisateur
Vous pouvez définir une politique de ticket Kerberos unique qui ne s'applique qu'à un seul utilisateur. Ces paramètres par utilisateur remplacent la politique de ticket globale pour tous les indicateurs d'authentification.
Utilisez la commande ipa krbtpolicy-mod username
et spécifiez au moins l'un des arguments suivants :
-
--maxlife
pour la durée de vie maximale du ticket en secondes -
--maxrenew
pour l'âge maximum renouvelable en secondes
Procédure
Par exemple, pour définir la durée de vie maximale du ticket de l'utilisateur IdM
admin
à deux jours et l'âge maximal de renouvellement à deux semaines :[root@server ~]# ipa krbtpolicy-mod admin --maxlife=172800 --maxrenew=1209600 Max life: 172800 Max renew: 1209600
Optionnel : Pour réinitialiser la politique de ticket d'un utilisateur :
[root@server ~]# ipa krbtpolicy-reset admin
Verification steps
Afficher la politique de ticket Kerberos effective qui s'applique à un utilisateur :
[root@server ~]# ipa krbtpolicy-show admin Max life: 172800 Max renew: 1209600
Ressources supplémentaires
13.8. Configurer des politiques de tickets d'indicateurs d'authentification individuels pour un utilisateur
En tant qu'administrateur, vous pouvez définir des politiques de tickets Kerberos pour un utilisateur qui diffèrent selon l'indicateur d'authentification. Par exemple, vous pouvez configurer une politique permettant à l'utilisateur IdM admin
de renouveler un ticket pendant deux jours s'il a été obtenu par authentification OTP, et pendant une semaine s'il a été obtenu par authentification par carte à puce.
Ces paramètres par indicateur d'authentification remplaceront la politique de ticket par défaut user’s, la politique de ticket par défaut global et toute politique de ticket d'indicateur d'authentification global.
Utilisez la commande ipa krbtpolicy-mod username
pour définir des valeurs personnalisées de durée de vie maximale et d'âge maximal renouvelable pour les tickets Kerberos d'un utilisateur en fonction des indicateurs d'authentification qui leur sont associés.
Procédure
Par exemple, pour permettre à l'utilisateur d'IdM
admin
de renouveler un ticket Kerberos pendant deux jours s'il a été obtenu avec l'authentification par mot de passe à usage unique, définissez l'option--otp-maxrenew
:[root@server ~]# ipa krbtpolicy-mod admin --otp-maxrenew=$((2*24*60*60)) OTP max renew: 172800
Optionnel : Pour réinitialiser la politique de ticket d'un utilisateur :
[root@server ~]# ipa krbtpolicy-reset username
Verification steps
Afficher la politique de ticket Kerberos effective qui s'applique à un utilisateur :
[root@server ~]# ipa krbtpolicy-show admin Max life: 28800 Max renew: 86640
Ressources supplémentaires
-
Voir les options de l'indicateur d'authentification pour la commande
krbtpolicy-mod
. - Voir Configuration de la politique de billetterie par défaut pour un utilisateur.
- Voir Configuration de la politique globale de cycle de vie des tickets.
- Voir Configuration des politiques globales de tickets par indicateur d'authentification.
13.9. Options de l'indicateur d'authentification pour la commande krbtpolicy-mod
Spécifiez les valeurs des indicateurs d'authentification avec les arguments suivants.
Tableau 13.1. Options de l'indicateur d'authentification pour la commande krbtpolicy-mod
Indicateur d'authentification | Argument en faveur d'une durée de vie maximale | Argument en faveur d'un âge maximal de renouvellement |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Chapitre 14. Gestion des fichiers keytab Kerberos de l'IdM
La documentation suivante explique ce que sont les fichiers keytab Kerberos et comment la gestion des identités (IdM) les utilise pour permettre aux services de s'authentifier de manière sécurisée avec Kerberos.
Vous pouvez utiliser ces informations pour comprendre pourquoi vous devez protéger ces fichiers sensibles et pour résoudre les problèmes de communication entre les services IdM.
Cette section aborde les sujets suivants :
Cette section explique également comment afficher le type de cryptage de votre clé principale IdM.
14.1. Comment la gestion des identités utilise les fichiers keytab de Kerberos
Un keytab Kerberos est un fichier contenant les principaux Kerberos et les clés de chiffrement correspondantes. Les hôtes, les services, les utilisateurs et les scripts peuvent utiliser les keytabs pour s'authentifier auprès du centre de distribution de clés Kerberos (KDC) en toute sécurité, sans nécessiter d'interaction humaine.
Chaque service IdM sur un serveur IdM a un principe Kerberos unique stocké dans la base de données Kerberos. Par exemple, si les serveurs IdM east.idm.example.com
et west.idm.example.com
fournissent des services DNS, l'IdM crée 2 principes DNS Kerberos uniques pour identifier ces services, qui suivent la convention de dénomination <service>/host.domain.com@REALM.COM
:
-
DNS/east.idm.example.com@IDM.EXAMPLE.COM
-
DNS/west.idm.example.com@IDM.EXAMPLE.COM
IdM crée un fichier keytab sur le serveur pour chacun de ces services afin de stocker une copie locale des clés Kerberos, ainsi que leur numéro de version de clé (KVNO). Par exemple, le fichier keytab par défaut /etc/krb5.keytab
stocke le principal host
, qui représente cette machine dans le domaine Kerberos et est utilisé pour l'authentification de connexion. Le KDC génère des clés de chiffrement pour les différents algorithmes de chiffrement qu'il prend en charge, tels que aes256-cts-hmac-sha1-96
et aes128-cts-hmac-sha1-96
.
Vous pouvez afficher le contenu d'un fichier keytab à l'aide de la commande klist
:
[root@idmserver ~]# klist -ekt /etc/krb5.keytab Keytab name: FILE:/etc/krb5.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 2 02/24/2022 20:28:09 host/idmserver.idm.example.com@IDM.EXAMPLE.COM (aes256-cts-hmac-sha1-96) 2 02/24/2022 20:28:09 host/idmserver.idm.example.com@IDM.EXAMPLE.COM (aes128-cts-hmac-sha1-96) 2 02/24/2022 20:28:09 host/idmserver.idm.example.com@IDM.EXAMPLE.COM (camellia128-cts-cmac) 2 02/24/2022 20:28:09 host/idmserver.idm.example.com@IDM.EXAMPLE.COM (camellia256-cts-cmac)
14.2. Vérification de la synchronisation des fichiers keytab Kerberos avec la base de données IdM
Lorsque vous modifiez un mot de passe Kerberos, IdM génère automatiquement une nouvelle clé Kerberos correspondante et incrémente son numéro de version de clé (KVNO). Si un keytab Kerberos n'est pas mis à jour avec la nouvelle clé et le KVNO, les services qui dépendent de ce keytab pour récupérer une clé valide risquent de ne pas pouvoir s'authentifier auprès du centre de distribution de clés Kerberos (KDC).
Si l'un de vos services IdM ne peut pas communiquer avec un autre service, utilisez la procédure suivante pour vérifier que vos fichiers keytab Kerberos sont synchronisés avec les clés stockées dans la base de données IdM. S'ils ne sont pas synchronisés, récupérez un fichier keytab Kerberos avec une clé et un KVNO mis à jour. Cet exemple compare et récupère un principal DNS
mis à jour pour un serveur IdM.
Conditions préalables
- Vous devez vous authentifier en tant que compte administrateur IdM pour récupérer les fichiers keytab
-
Vous devez vous authentifier en tant que compte
root
pour modifier les fichiers keytab appartenant à d'autres utilisateurs
Procédure
Affichez le KVNO des mandants dans le keytab que vous vérifiez. Dans l'exemple suivant, le fichier
/etc/named.keytab
contient la clé du principalDNS/server1.idm.example.com@EXAMPLE.COM
avec un KVNO de 2.[root@server1 ~]# klist -ekt /etc/named.keytab Keytab name: FILE:/etc/named.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 2 11/26/2021 13:51:11 DNS/server1.idm.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96) 2 11/26/2021 13:51:11 DNS/server1.idm.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96) 2 11/26/2021 13:51:11 DNS/server1.idm.example.com@EXAMPLE.COM (camellia128-cts-cmac) 2 11/26/2021 13:51:11 DNS/server1.idm.example.com@EXAMPLE.COM (camellia256-cts-cmac)
Afficher le KVNO du principal stocké dans la base de données IdM. Dans cet exemple, le KVNO de la clé dans la base de données IdM ne correspond pas au KVNO dans la base de données.
[root@server1 ~]# kvno DNS/server1.idm.example.com@EXAMPLE.COM DNS/server1.idm.example.com@EXAMPLE.COM: kvno = 3
S'authentifier en tant que compte administrateur IdM.
[root@server1 ~]# kinit admin Password for admin@IDM.EXAMPLE.COM:
Récupérez une clé Kerberos mise à jour pour le principal et stockez-la dans son keytab. Effectuez cette étape en tant qu'utilisateur
root
afin de pouvoir modifier le fichier/etc/named.keytab
, qui appartient à l'utilisateurnamed
.[root@server1 ~]# ipa-getkeytab -s server1.idm.example.com -p DNS/server1.idm.example.com -k /etc/named.keytab
Vérification
Affiche le KVNO mis à jour du principal dans la base de données des clés.
[root@server1 ~]# klist -ekt /etc/named.keytab Keytab name: FILE:/etc/named.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 4 08/17/2022 14:42:11 DNS/server1.idm.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96) 4 08/17/2022 14:42:11 DNS/server1.idm.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96) 4 08/17/2022 14:42:11 DNS/server1.idm.example.com@EXAMPLE.COM (camellia128-cts-cmac) 4 08/17/2022 14:42:11 DNS/server1.idm.example.com@EXAMPLE.COM (camellia256-cts-cmac)
Afficher le KVNO du principal stocké dans la base de données IdM et s'assurer qu'il correspond au KVNO de la base de données.
[root@server1 ~]# kvno DNS/server1.idm.example.com@EXAMPLE.COM DNS/server1.idm.example.com@EXAMPLE.COM: kvno = 4
14.3. Liste des fichiers keytab Kerberos de l'IdM et de leur contenu
Le tableau suivant indique l'emplacement, le contenu et l'objectif des fichiers keytab IdM Kerberos.
Tableau 14.1. Tableau
Emplacement des touches | Contenu | Objectif |
---|---|---|
|
|
Vérification des informations d'identification de l'utilisateur lors de la connexion, utilisée par NFS s'il n'y a pas de principal |
|
| Authentification des utilisateurs de la base de données IdM, réplication sécurisée du contenu de la base de données entre les répliques IdM |
|
| Authentification au serveur Apache |
|
| Mise à jour sécurisée des enregistrements DNS |
|
| Synchronisation d'OpenDNSSEC avec LDAP |
|
| Communiquer avec l'autorité de certification (AC) |
|
| Communiquer avec le service Samba |
|
Contrôleurs de domaine (DC) Active Directory (AD) sous la forme suivante | Communication avec les AD DC par l'intermédiaire d'une confiance IdM-AD |
14.4. Visualisation du type de cryptage de votre clé maîtresse IdM
En tant qu'administrateur Identity Management (IdM), vous pouvez afficher le type de cryptage de votre clé principale IdM, qui est la clé que le Centre de distribution Kerberos (KDC) IdM utilise pour crypter tous les autres principaux lorsqu'ils sont stockés au repos. La connaissance du type de cryptage vous aide à déterminer la compatibilité de votre déploiement avec les normes FIPS.
À partir de RHEL 8.7, le type de chiffrement est aes256-cts-hmac-sha384-192
. Ce type de chiffrement est compatible avec la politique cryptographique FIPS par défaut de RHEL 9 visant à se conformer à la norme FIPS 140-3.
Les types de chiffrement utilisés sur les versions précédentes de RHEL ne sont pas compatibles avec les systèmes RHEL 9 qui adhèrent aux normes FIPS 140-3. Pour rendre les systèmes RHEL 9 en mode FIPS compatibles avec un déploiement RHEL 8 FIPS 140-2, activez la politique cryptographique FIPS:AD-SUPPORT
sur les systèmes RHEL 9.
L'implémentation Active Directory de Microsoft ne prend pas encore en charge les types de chiffrement Kerberos RFC8009 qui utilisent SHA-2 HMAC. Si une confiance IdM-AD est configurée, l'utilisation de la sous-politique cryptographique FIPS:AD-SUPPORT est donc requise même si le type de chiffrement de votre clé principale IdM est aes256-cts-hmac-sha384-192
.
Conditions préalables
-
Vous avez accès à
root
à n'importe laquelle des répliques RHEL 8 dans le déploiement IdM.
Procédure
Sur le réplica, affichez le type de chiffrement sur l'interface de ligne de commande :
# kadmin.local getprinc K/M | grep -E '^Key:' Key: vno 1, aes256-cts-hmac-sha1-96
La clé
aes256-cts-hmac-sha1-96
dans le résultat indique que le déploiement IdM a été installé sur un serveur fonctionnant sous RHEL 8.6 ou une version antérieure. La présence d'une cléaes256-cts-hmac-sha384-192
dans le résultat indique que le déploiement de l'IdM a été installé sur un serveur exécutant RHEL 8.7 ou une version ultérieure.
Chapitre 15. Utilisation du proxy KDC dans IdM
Certains administrateurs peuvent choisir de rendre les ports Kerberos par défaut inaccessibles dans leur déploiement. Pour permettre aux utilisateurs, aux hôtes et aux services d'obtenir des informations d'identification Kerberos, vous pouvez utiliser le service HTTPS
comme un proxy qui communique avec Kerberos via le port 443 de HTTPS
.
Dans le cadre de la gestion de l'identité (IdM), le site Kerberos Key Distribution Center Proxy (KKDCP) offre cette fonctionnalité.
Sur un serveur IdM, KKDCP est activé par défaut et disponible à l'adresse suivante https://server.idm.example.com/KdcProxy
. Sur un client IdM, vous devez modifier sa configuration Kerberos pour accéder au KKDCP.
15.1. Configuration d'un client IdM pour l'utilisation de KKDCP
En tant qu'administrateur du système de gestion des identités (IdM), vous pouvez configurer un client IdM pour qu'il utilise le Kerberos Key Distribution Center Proxy (KKDCP) sur un serveur IdM. Ceci est utile si les ports Kerberos par défaut ne sont pas accessibles sur le serveur IdM et que le port 443 de HTTPS
est le seul moyen d'accéder au service Kerberos.
Conditions préalables
-
Vous avez un accès
root
au client IdM.
Procédure
-
Ouvrez le fichier
/etc/krb5.conf
pour le modifier. Dans la section
[realms]
, entrez l'URL du KKDCP pour les optionskdc
,admin_server
etkpasswd_server
:[realms] EXAMPLE.COM = { kdc = https://kdc.example.com/KdcProxy admin_server = https://kdc.example.com/KdcProxy kpasswd_server = https://kdc.example.com/KdcProxy default_domain = example.com }
Pour des raisons de redondance, vous pouvez ajouter les paramètres
kdc
,admin_server
, etkpasswd_server
plusieurs fois pour indiquer différents serveurs KKDCP.Redémarrez le service
sssd
pour que les modifications soient prises en compte :~]# systemctl restart sssd
15.2. Vérification de l'activation de KKDCP sur un serveur IdM
Sur un serveur Identity Management (IdM), le Kerberos Key Distribution Center Proxy (KKDCP) est automatiquement activé à chaque démarrage du serveur web Apache si la paire d'attributs et de valeurs ipaConfigString=kdcProxyEnabled
existe dans le répertoire. Dans ce cas, le lien symbolique /etc/httpd/conf.d/ipa-kdc-proxy.conf
est créé.
Vous pouvez vérifier si le KKDCP est activé sur le serveur IdM, même en tant qu'utilisateur non privilégié.
Procédure
- Vérifiez que le lien symbolique existe :
$ ls -l /etc/httpd/conf.d/ipa-kdc-proxy.conf
lrwxrwxrwx. 1 root root 36 Jun 21 2020 /etc/httpd/conf.d/ipa-kdc-proxy.conf -> /etc/ipa/kdcproxy/ipa-kdc-proxy.conf
La sortie confirme que le KKDCP est activé.
15.3. Désactivation de KKDCP sur un serveur IdM
En tant qu'administrateur du système de gestion des identités (IdM), vous pouvez désactiver le Kerberos Key Distribution Center Proxy (KKDCP) sur un serveur IdM.
Conditions préalables
-
Vous avez un accès
root
au serveur IdM.
Procédure
Supprimer la paire d'attributs et de valeurs
ipaConfigString=kdcProxyEnabled
du répertoire :# ipa-ldap-updater /usr/share/ipa/kdcproxy-disable.uldif Update complete The ipa-ldap-updater command was successful
Redémarrez le service
httpd
:# systemctl restart httpd.service
KKDCP est maintenant désactivé sur le serveur IdM actuel.
Verification steps
Vérifiez que le lien symbolique n'existe pas :
$ ls -l /etc/httpd/conf.d/ipa-kdc-proxy.conf ls: cannot access '/etc/httpd/conf.d/ipa-kdc-proxy.conf': No such file or directory
15.4. Réactivation de KKDCP sur un serveur IdM
Sur un serveur IdM, le Kerberos Key Distribution Center Proxy (KKDCP) est activé par défaut et disponible à l'adresse suivante https://server.idm.example.com/KdcProxy
.
Si KKDCP a été désactivé sur un serveur, vous pouvez le réactiver.
Conditions préalables
-
Vous avez un accès
root
au serveur IdM.
Procédure
Ajoutez la paire d'attributs et de valeurs
ipaConfigString=kdcProxyEnabled
au répertoire :# ipa-ldap-updater /usr/share/ipa/kdcproxy-enable.uldif Update complete The ipa-ldap-updater command was successful
Redémarrez le service
httpd
:# systemctl restart httpd.service
KKDCP est maintenant activé sur le serveur IdM actuel.
Verification steps
Vérifiez que le lien symbolique existe :
$ ls -l /etc/httpd/conf.d/ipa-kdc-proxy.conf lrwxrwxrwx. 1 root root 36 Jun 21 2020 /etc/httpd/conf.d/ipa-kdc-proxy.conf -> /etc/ipa/kdcproxy/ipa-kdc-proxy.conf
15.5. Configuration du serveur KKDCP I
La configuration suivante permet d'utiliser TCP comme protocole de transport entre le KKDCP de l'IdM et le domaine Active Directory (AD), lorsque plusieurs serveurs Kerberos sont utilisés.
Conditions préalables
-
Vous avez accès à
root
.
Procédure
Dans la section
[global]
du fichier/etc/ipa/kdcproxy/kdcproxy.conf
, le paramètreuse_dns
doit être réglé sur false.[global] use_dns = false
Placez les informations relatives à la zone mandataire dans le fichier
/etc/ipa/kdcproxy/kdcproxy.conf
. Par exemple, pour la zone [AD.EXAMPLE.COM] avec proxy, listez les paramètres de configuration de la zone comme suit :[AD.EXAMPLE.COM] kerberos = kerberos+tcp://1.2.3.4:88 kerberos+tcp://5.6.7.8:88 kpasswd = kpasswd+tcp://1.2.3.4:464 kpasswd+tcp://5.6.7.8:464
ImportantLes paramètres de configuration du domaine doivent énumérer plusieurs serveurs séparés par un espace, contrairement à
/etc/krb5.conf
etkdc.conf
, dans lesquels certaines options peuvent être spécifiées plusieurs fois.Redémarrer les services de gestion des identités (IdM) :
# ipactl restart
Ressources supplémentaires
- Voir Configurer le serveur IPA en tant que proxy KDC pour la communication AD Kerberos dans la base de connaissances de Red Hat.
15.6. Configuration du serveur KKDCP II
La configuration de serveur suivante s'appuie sur les enregistrements du service DNS pour trouver les serveurs Active Directory (AD) avec lesquels communiquer.
Conditions préalables
-
Vous avez accès à
root
.
Procédure
Dans le fichier
/etc/ipa/kdcproxy/kdcproxy.conf
, à la section[global]
, le paramètreuse_dns
est remplacé par true.[global] configs = mit use_dns = true
Le paramètre
configs
permet de charger d'autres modules de configuration. Dans ce cas, la configuration est lue à partir de la bibliothèque MITlibkrb5
.Optional: Si vous ne souhaitez pas utiliser les enregistrements de service DNS, ajoutez des serveurs AD explicites à la section
[realms]
du fichier/etc/krb5.conf
. Si le domaine avec proxy est, par exemple, AD.EXAMPLE.COM, vous ajoutez :[realms] AD.EXAMPLE.COM = { kdc = ad-server.ad.example.com kpasswd_server = ad-server.ad.example.com }
Redémarrer les services de gestion des identités (IdM) :
# ipactl restart
Ressources supplémentaires
- Voir Configurer le serveur IPA en tant que proxy KDC pour la communication AD Kerberos dans la base de connaissances de Red Hat.
Chapitre 16. Gérer les règles de libre-service dans l'IdM à l'aide du CLI
Ce chapitre présente les règles en libre-service dans la gestion des identités (IdM) et décrit comment créer et modifier des règles d'accès en libre-service dans l'interface de ligne de commande (CLI).
16.1. Contrôle d'accès en libre-service dans l'IdM
Les règles de contrôle d'accès en libre-service définissent les opérations qu'une entité de gestion des identités (IdM) peut effectuer sur son entrée du serveur d'annuaire IdM : par exemple, les utilisateurs IdM ont la possibilité de mettre à jour leurs propres mots de passe.
Cette méthode de contrôle permet à une entité IdM authentifiée de modifier des attributs spécifiques dans son entrée LDAP, mais n'autorise pas les opérations add
ou delete
sur l'ensemble de l'entrée.
Soyez prudent lorsque vous utilisez des règles de contrôle d'accès en libre-service : une mauvaise configuration des règles de contrôle d'accès peut entraîner une élévation involontaire des privilèges d'une entité.
16.2. Création de règles en libre-service à l'aide de l'interface de ligne de commande
Cette procédure décrit la création de règles d'accès en libre-service dans IdM à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
Procédure
Pour ajouter une règle de libre-service, utilisez la commande
ipa selfservice-add
et spécifiez les deux options suivantes :--permissions
- définit les autorisations read et write accordées par l'instruction de contrôle d'accès (ACI).
--attrs
- établit la liste complète des attributs auxquels l'ACI accorde une autorisation.
Par exemple, pour créer une règle de libre-service permettant aux utilisateurs de modifier les détails de leur propre nom :
$ ipa selfservice-add "Users can manage their own name details" --permissions=write --attrs=givenname --attrs=displayname --attrs=title --attrs=initials ----------------------------------------------------------- Added selfservice "Users can manage their own name details" ----------------------------------------------------------- Self-service name: Users can manage their own name details Permissions: write Attributes: givenname, displayname, title, initials
16.3. Modification des règles de libre-service à l'aide de l'interface de ligne de commande
Cette procédure décrit la modification des règles d'accès en libre-service dans IdM à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
Procédure
-
Optional: Affichez les règles de libre-service existantes à l'aide de la commande
ipa selfservice-find
. -
Optional: Affiche les détails de la règle de libre-service que vous souhaitez modifier à l'aide de la commande
ipa selfservice-show
. -
Utilisez la commande
ipa selfservice-mod
pour modifier une règle de libre-service.
Par exemple :
$ ipa selfservice-mod "Users can manage their own name details" --attrs=givenname --attrs=displayname --attrs=title --attrs=initials --attrs=surname -------------------------------------------------------------- Modified selfservice "Users can manage their own name details" -------------------------------------------------------------- Self-service name: Users can manage their own name details Permissions: write Attributes: givenname, displayname, title, initials
L'utilisation de la commande ipa selfservice-mod
écrase les autorisations et les attributs définis précédemment. Il convient donc de toujours inclure la liste complète des autorisations et des attributs existants, ainsi que les nouvelles autorisations et les nouveaux attributs que vous souhaitez définir.
Verification steps
-
Utilisez la commande
ipa selfservice-show
pour afficher la règle de libre-service que vous avez modifiée.
$ ipa selfservice-show "Users can manage their own name details" -------------------------------------------------------------- Self-service name: Users can manage their own name details Permissions: write Attributes: givenname, displayname, title, initials
16.4. Suppression des règles de libre-service à l'aide de l'interface de ligne de commande
Cette procédure décrit la suppression des règles d'accès en libre-service dans IdM à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
Procédure
-
Utilisez la commande
ipa selfservice-del
pour supprimer une règle de libre-service.
Par exemple :
$ ipa selfservice-del "Users can manage their own name details" ----------------------------------------------------------- Deleted selfservice "Users can manage their own name details" -----------------------------------------------------------
Verification steps
-
Utilisez la commande
ipa selfservice-find
pour afficher toutes les règles de libre-service. La règle que vous venez de supprimer devrait être absente.
Chapitre 17. Gestion des règles de libre-service à l'aide de l'interface Web IdM
Ce chapitre présente les règles en libre-service dans la gestion des identités (IdM) et décrit comment créer et modifier des règles d'accès en libre-service dans l'interface web (IdM Web UI).
17.1. Contrôle d'accès en libre-service dans l'IdM
Les règles de contrôle d'accès en libre-service définissent les opérations qu'une entité de gestion des identités (IdM) peut effectuer sur son entrée du serveur d'annuaire IdM : par exemple, les utilisateurs IdM ont la possibilité de mettre à jour leurs propres mots de passe.
Cette méthode de contrôle permet à une entité IdM authentifiée de modifier des attributs spécifiques dans son entrée LDAP, mais n'autorise pas les opérations add
ou delete
sur l'ensemble de l'entrée.
Soyez prudent lorsque vous utilisez des règles de contrôle d'accès en libre-service : une mauvaise configuration des règles de contrôle d'accès peut entraîner une élévation involontaire des privilèges d'une entité.
17.2. Création de règles en libre-service à l'aide de l'interface Web IdM
Cette procédure décrit comment créer des règles d'accès en libre-service dans IdM à l'aide de l'interface web (IdM Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
- Ouvrez le sous-menu Role-Based Access Control dans l'onglet IPA Server et sélectionnez Self Service Permissions.
Cliquez sur Add en haut à droite de la liste des règles d'accès en libre-service :
La fenêtre Add Self Service Permission s'ouvre. Saisissez le nom de la nouvelle règle de libre-service dans le champ Self-service name. Les espaces sont autorisés :
- Cochez les cases en regard des attributs que vous souhaitez que les utilisateurs puissent modifier.
Optional: Si un attribut auquel vous souhaitez donner accès n'est pas répertorié, vous pouvez en ajouter un :
- Cliquez sur le bouton Add.
- Saisissez le nom de l'attribut dans le champ de texte Attribute de la fenêtre suivante Add Custom Attribute.
- Cliquez sur le bouton OK pour ajouter l'attribut
- Vérifier que le nouvel attribut est sélectionné
-
Cliquez sur le bouton Add au bas du formulaire pour enregistrer la nouvelle règle de libre-service.
Vous pouvez également enregistrer et continuer à modifier la règle de libre-service en cliquant sur le bouton Add and Edit, ou enregistrer et ajouter d'autres règles en cliquant sur le bouton Add and Add another.
17.3. Modification des règles de libre-service à l'aide de l'interface Web IdM
Cette procédure décrit comment modifier les règles d'accès en libre-service dans IdM à l'aide de l'interface web (IdM Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
- Ouvrez le sous-menu Role-Based Access Control dans l'onglet IPA Server et sélectionnez Self Service Permissions.
Cliquez sur le nom de la règle de libre-service que vous souhaitez modifier.
- La page d'édition vous permet uniquement de modifier la liste des attributs que vous souhaitez ajouter ou supprimer de la règle de libre-service. Cochez ou décochez les cases appropriées.
- Cliquez sur le bouton Save pour enregistrer les modifications apportées à la règle de libre-service.
17.4. Suppression des règles de libre-service à l'aide de l'interface Web IdM
Cette procédure décrit comment supprimer les règles d'accès en libre-service dans IdM à l'aide de l'interface web (IdM Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
- Ouvrez le sous-menu Role-Based Access Control dans l'onglet IPA Server et sélectionnez Self Service Permissions.
Cochez la case en regard de la règle que vous souhaitez supprimer, puis cliquez sur le bouton Delete à droite de la liste.
- Une boîte de dialogue s'ouvre, cliquez sur Delete pour confirmer.
Chapitre 18. Utiliser les playbooks Ansible pour gérer les règles de self-service dans l'IdM
Cette section présente les règles en libre-service dans la gestion des identités (IdM) et décrit comment créer et modifier des règles d'accès en libre-service à l'aide des playbooks Ansible. Les règles de contrôle d'accès en libre-service permettent à une entité IdM d'effectuer des opérations spécifiques sur son entrée du serveur d'annuaire IdM.
Cette section couvre les sujets suivants :
- Contrôle d'accès en libre-service dans l'IdM
- Utiliser Ansible pour s'assurer qu'une règle de libre-service est présente
- Utiliser Ansible pour s'assurer qu'une règle de libre-service est absente
- Utiliser Ansible pour s'assurer qu'une règle de libre-service possède des attributs spécifiques
- Utiliser Ansible pour s'assurer qu'une règle de libre-service n'a pas d'attributs spécifiques
18.1. Contrôle d'accès en libre-service dans l'IdM
Les règles de contrôle d'accès en libre-service définissent les opérations qu'une entité de gestion des identités (IdM) peut effectuer sur son entrée du serveur d'annuaire IdM : par exemple, les utilisateurs IdM ont la possibilité de mettre à jour leurs propres mots de passe.
Cette méthode de contrôle permet à une entité IdM authentifiée de modifier des attributs spécifiques dans son entrée LDAP, mais n'autorise pas les opérations add
ou delete
sur l'ensemble de l'entrée.
Soyez prudent lorsque vous utilisez des règles de contrôle d'accès en libre-service : une mauvaise configuration des règles de contrôle d'accès peut entraîner une élévation involontaire des privilèges d'une entité.
18.2. Utiliser Ansible pour s'assurer qu'une règle de libre-service est présente
La procédure suivante décrit comment utiliser un playbook Ansible pour définir des règles de libre-service et assurer leur présence sur un serveur de gestion des identités (IdM). Dans cet exemple, la nouvelle règle Users can manage their own name details permet aux utilisateurs de modifier leurs propres attributs givenname
, displayname
, title
et initials
. Cela leur permet, par exemple, de modifier leur nom d'affichage ou leurs initiales s'ils le souhaitent.
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
selfservice-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/selfservice/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/selfservice/selfservice-present.yml selfservice-present-copy.yml
-
Ouvrez le fichier
selfservice-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaselfservice
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom de la nouvelle règle de libre-service. -
Attribuez à la variable
permission
une liste de permissions à accorder, séparées par des virgules :read
etwrite
. -
Définissez la variable
attribute
avec une liste d'attributs que les utilisateurs peuvent gérer eux-mêmes :givenname
,displayname
,title
, etinitials
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Self-service present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure self-service rule "Users can manage their own name details" is present ipaselfservice: ipaadmin_password: "{{ ipaadmin_password }}" name: "Users can manage their own name details" permission: read, write attribute: - givenname - displayname - title - initials
-
Définissez 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 inventory selfservice-present-copy.yml
Ressources supplémentaires
- Voir Contrôle d'accès en libre-service dans IdM.
-
Voir le fichier
README-selfservice.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir le répertoire
/usr/share/doc/ansible-freeipa/playbooks/selfservice
.
18.3. Utiliser Ansible pour s'assurer qu'une règle de libre-service est absente
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une règle de libre-service spécifiée est absente de votre configuration IdM. L'exemple ci-dessous décrit comment s'assurer que la règle de libre-service Users can manage their own name details n'existe pas dans IdM. Cela garantit que les utilisateurs ne peuvent pas, par exemple, modifier leur propre nom d'affichage ou leurs initiales.
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
selfservice-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/selfservice/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/selfservice/selfservice-absent.yml selfservice-absent-copy.yml
-
Ouvrez le fichier
selfservice-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaselfservice
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom de la règle de libre-service. -
Fixer la variable
state
àabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Self-service absent hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure self-service rule "Users can manage their own name details" is absent ipaselfservice: ipaadmin_password: "{{ ipaadmin_password }}" name: "Users can manage their own name details" state: absent
-
Définissez 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 inventory selfservice-absent-copy.yml
Ressources supplémentaires
- Voir Contrôle d'accès en libre-service dans IdM.
-
Voir le fichier
README-selfservice.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/selfservice
.
18.4. Utiliser Ansible pour s'assurer qu'une règle de libre-service possède des attributs spécifiques
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une règle de libre-service existante possède des paramètres spécifiques. Dans l'exemple, vous vous assurez que la règle de libre-service Users can manage their own name details possède également l'attribut de membre surname
.
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
.
- La règle de libre-service Users can manage their own name details existe dans IdM.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
selfservice-member-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/selfservice/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/selfservice/selfservice-member-present.yml selfservice-member-present-copy.yml
-
Ouvrez le fichier
selfservice-member-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaselfservice
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom de la règle de libre-service à modifier. -
Fixer la variable
attribute
àsurname
. -
Fixer la variable
action
àmember
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Self-service member present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure selfservice "Users can manage their own name details" member attribute surname is present ipaselfservice: ipaadmin_password: "{{ ipaadmin_password }}" name: "Users can manage their own name details" attribute: - surname action: member
-
Définissez 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 inventory selfservice-member-present-copy.yml
Ressources supplémentaires
- Voir Contrôle d'accès en libre-service dans IdM.
-
Voir le fichier
README-selfservice.md
disponible dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/selfservice
.
18.5. Utiliser Ansible pour s'assurer qu'une règle de libre-service n'a pas d'attributs spécifiques
La procédure suivante décrit comment utiliser une séquence Ansible pour s'assurer qu'une règle de libre-service n'a pas de paramètres spécifiques. Vous pouvez utiliser ce livre de lecture pour vous assurer qu'une règle de libre-service n'accorde pas d'accès indésirable. Dans l'exemple, vous vous assurez que la règle de libre-service Users can manage their own name details n'a pas les attributs de membre givenname
et surname
.
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
.
- La règle de libre-service Users can manage their own name details existe dans IdM.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
selfservice-member-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/selfservice/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/selfservice/selfservice-member-absent.yml selfservice-member-absent-copy.yml
-
Ouvrez le fichier
selfservice-member-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaselfservice
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom de la règle de libre-service que vous souhaitez modifier. -
Fixez la variable
attribute
àgivenname
etsurname
. -
Fixer la variable
action
àmember
. -
Fixer la variable
state
àabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Self-service member absent hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure selfservice "Users can manage their own name details" member attributes givenname and surname are absent ipaselfservice: ipaadmin_password: "{{ ipaadmin_password }}" name: "Users can manage their own name details" attribute: - givenname - surname action: member state: absent
-
Définissez 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 inventory selfservice-member-absent-copy.yml
Ressources supplémentaires
- Voir Contrôle d'accès en libre-service dans IdM.
-
Voir le fichier
README-selfservice.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/selfservice
.
Chapitre 19. Gestion des groupes d'utilisateurs dans l'interface CLI de l'IdM
Ce chapitre présente la gestion des groupes d'utilisateurs à l'aide de la CLI IdM.
Un groupe d'utilisateurs est un ensemble d'utilisateurs ayant des privilèges, des politiques de mot de passe et d'autres caractéristiques communes.
Dans le cadre de la gestion des identités (IdM), un groupe d'utilisateurs peut inclure :
- Utilisateurs de l'IdM
- d'autres groupes d'utilisateurs de l'IdM
- les utilisateurs externes, c'est-à-dire les utilisateurs qui existent en dehors de l'IdM
19.1. Les différents types de groupes dans l'IdM
IdM prend en charge les types de groupes suivants :
- Groupes POSIX (par défaut)
Les groupes POSIX prennent en charge les attributs Linux POSIX pour leurs membres. Notez que les groupes qui interagissent avec Active Directory ne peuvent pas utiliser les attributs POSIX.
Les attributs POSIX identifient les utilisateurs en tant qu'entités distinctes. Parmi les exemples d'attributs POSIX concernant les utilisateurs, on peut citer
uidNumber
, un numéro d'utilisateur (UID), etgidNumber
, un numéro de groupe (GID).- Groupes non-POSIX
Les groupes non-POSIX ne prennent pas en charge les attributs POSIX. Par exemple, ces groupes n'ont pas de GID défini.
Tous les membres de ce type de groupe doivent appartenir au domaine IdM.
- Groupes externes
Utilisez les groupes externes pour ajouter des membres de groupes qui existent dans un magasin d'identité en dehors du domaine IdM, par exemple :
- Un système local
- Un domaine Active Directory
- Un service d'annuaire
Les groupes externes ne prennent pas en charge les attributs POSIX. Par exemple, ces groupes n'ont pas de GID défini.
Tableau 19.1. Groupes d'utilisateurs créés par défaut
Nom du groupe | Membres du groupe par défaut |
---|---|
| Tous les utilisateurs de l'IdM |
|
Utilisateurs disposant de privilèges administratifs, y compris l'utilisateur par défaut |
| Il s'agit d'un groupe ancien qui ne bénéficie plus de privilèges particuliers |
| Utilisateurs ayant des privilèges pour gérer les trusts Active Directory |
Lorsque vous ajoutez un utilisateur à un groupe d'utilisateurs, celui-ci bénéficie des privilèges et des règles associés au groupe. Par exemple, pour accorder des privilèges administratifs à un utilisateur, ajoutez-le au groupe admins
.
Ne pas supprimer le groupe admins
. Comme admins
est un groupe prédéfini requis par IdM, cette opération pose des problèmes avec certaines commandes.
En outre, IdM crée user private groups par défaut chaque fois qu'un nouvel utilisateur est créé dans IdM. Pour plus d'informations sur les groupes privés, voir Ajouter des utilisateurs sans groupe privé.
19.2. Membres directs et indirects du groupe
Les attributs des groupes d'utilisateurs dans l'IdM s'appliquent à la fois aux membres directs et indirects : lorsque le groupe B est membre du groupe A, tous les utilisateurs du groupe B sont considérés comme des membres indirects du groupe A.
Par exemple, dans le diagramme suivant :
- L'utilisateur 1 et l'utilisateur 2 sont direct members du groupe A.
- L'utilisateur 3, l'utilisateur 4 et l'utilisateur 5 sont indirect members du groupe A.
Figure 19.1. Appartenance directe et indirecte à un groupe
Si vous définissez une politique de mot de passe pour le groupe d'utilisateurs A, cette politique s'applique également à tous les utilisateurs du groupe d'utilisateurs B.
19.3. Ajout d'un groupe d'utilisateurs à l'aide de la CLI IdM
Cette section décrit comment ajouter un groupe d'utilisateurs à l'aide de la CLI IdM.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
Ajoutez un groupe d'utilisateurs à l'aide de la commande
ipa group-add group_name
pour ajouter un groupe d'utilisateurs. Par exemple, pour créer le groupe_a :$ ipa group-add group_a --------------------- Added group "group_a" --------------------- Group name: group_a GID: 1133400009
Par défaut,
ipa group-add
ajoute un groupe d'utilisateurs POSIX. Pour spécifier un autre type de groupe, ajoutez des options àipa group-add
:-
--nonposix
pour créer un groupe non-POSIX --external
pour créer un groupe externePour plus de détails sur les types de groupes, voir Les différents types de groupes dans IdM.
Vous pouvez spécifier un GID personnalisé lors de l'ajout d'un groupe d'utilisateurs en utilisant l'option
--gid=custom_GID
pour ajouter un groupe d'utilisateurs. Dans ce cas, veillez à éviter les conflits d'identifiants. Si vous ne spécifiez pas de GID personnalisé, IdM attribue automatiquement un GID à partir de la plage d'ID disponible.-
N'ajoutez pas de groupes locaux à IdM. Le commutateur de service de noms (NSS) résout toujours les utilisateurs et les groupes IdM avant de résoudre les utilisateurs et les groupes locaux. Cela signifie, par exemple, que l'appartenance à un groupe IdM ne fonctionne pas pour les utilisateurs locaux.
19.4. Recherche de groupes d'utilisateurs à l'aide de la CLI IdM
Cette section décrit comment rechercher des groupes d'utilisateurs existants à l'aide de l'interface CLI de l'IdM.
Procédure
Affichez tous les groupes d'utilisateurs à l'aide de la commande
ipa group-find
. Pour spécifier un type de groupe, ajoutez des options àipa group-find
:-
Affichez tous les groupes POSIX à l'aide de la commande
ipa group-find --posix
. -
Affichez tous les groupes non-POSIX à l'aide de la commande
ipa group-find --nonposix
. Affichez tous les groupes externes à l'aide de la commande
ipa group-find --external
.Pour plus d'informations sur les différents types de groupes, voir Les différents types de groupes dans IdM.
-
Affichez tous les groupes POSIX à l'aide de la commande
19.5. Suppression d'un groupe d'utilisateurs à l'aide de la CLI IdM
Cette section décrit comment supprimer un groupe d'utilisateurs à l'aide de l'interface CLI de l'IdM. Notez que la suppression d'un groupe ne supprime pas les membres du groupe de l'IdM.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
Supprimez un groupe d'utilisateurs à l'aide de la commande
ipa group-del group_name
pour supprimer un groupe d'utilisateurs. Par exemple, pour supprimer le groupe_a :$ ipa group-del group_a -------------------------- Deleted group "group_a" --------------------------
19.6. Ajout d'un membre à un groupe d'utilisateurs à l'aide de la CLI IdM
Cette section décrit comment ajouter un membre à un groupe d'utilisateurs à l'aide de la CLI IdM. Vous pouvez ajouter des utilisateurs et des groupes d'utilisateurs en tant que membres d'un groupe d'utilisateurs. Pour plus d'informations, voir Les différents types de groupes dans IdM et Les membres directs et indirects d'un groupe.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
Ajoutez un membre à un groupe d'utilisateurs à l'aide de la commande
ipa group-add-member
.Spécifiez le type de membre à l'aide de ces options :
-
--users
ajoute un utilisateur IdM -
--external
ajoute un utilisateur qui existe en dehors du domaine IdM, au formatDOMAIN\user_name
ouuser_name@domain
-
--groups
ajoute un groupe d'utilisateurs IdM
Par exemple, pour ajouter le groupe_b comme membre du groupe_a :
$ ipa group-add-member group_a --groups=group_b Group name: group_a GID: 1133400009 Member users: user_a Member groups: group_b Indirect Member users: user_b ------------------------- Number of members added 1 -------------------------
Les membres du groupe_b sont désormais des membres indirects du groupe_a.
-
Lorsque vous ajoutez un groupe en tant que membre d'un autre groupe, ne créez pas de groupes récursifs. Par exemple, si le groupe A est membre du groupe B, n'ajoutez pas le groupe B comme membre du groupe A. Les groupes récursifs peuvent avoir un comportement imprévisible.
Après avoir ajouté un membre à un groupe d'utilisateurs, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités. En effet, lorsqu'un hôte donné résout des utilisateurs, des groupes et des groupes nets, le site System Security Services Daemon
(SSSD) consulte d'abord son cache et n'effectue des recherches sur le serveur qu'en cas d'enregistrements manquants ou périmés.
19.7. Ajout d'utilisateurs sans groupe privé d'utilisateurs
Par défaut, l'IdM crée des groupes privés d'utilisateurs (UPG) chaque fois qu'un nouvel utilisateur est créé dans l'IdM. Les UPG sont un type de groupe spécifique :
- L'UPG porte le même nom que l'utilisateur nouvellement créé.
- L'utilisateur est le seul membre de l'UPG. L'UPG ne peut pas contenir d'autres membres.
- Le GID du groupe privé correspond à l'UID de l'utilisateur.
Il est toutefois possible d'ajouter des utilisateurs sans créer de GUP.
19.7.1. Utilisateurs sans groupe privé d'utilisateurs
Si un groupe NIS ou un autre groupe système utilise déjà le GID qui serait attribué à un groupe privé d'utilisateurs, il faut éviter de créer un UPG.
Vous pouvez le faire de deux manières :
- Ajouter un nouvel utilisateur sans UPG, sans désactiver globalement les groupes privés. Voir Ajouter un utilisateur sans groupe privé lorsque les groupes privés sont activés globalement.
- Désactivez globalement les groupes privés d'utilisateurs pour tous les utilisateurs, puis ajoutez un nouvel utilisateur. Voir Désactiver globalement les groupes privés d'utilisateurs pour tous les utilisateurs et Ajouter un utilisateur lorsque les groupes privés d'utilisateurs sont globalement désactivés.
Dans les deux cas, l'IdM exigera la spécification d'un GID lors de l'ajout de nouveaux utilisateurs, sinon l'opération échouera. En effet, l'IdM a besoin d'un GID pour le nouvel utilisateur, mais le groupe d'utilisateurs par défaut ipausers
est un groupe non-POSIX et n'a donc pas de GID associé. Le GID que vous spécifiez ne doit pas nécessairement correspondre à un groupe déjà existant.
La spécification du GID ne crée pas de nouveau groupe. Elle définit uniquement l'attribut GID pour le nouvel utilisateur, car cet attribut est requis par l'IdM.
19.7.2. Ajout d'un utilisateur sans groupe privé lorsque les groupes privés sont globalement activés
Vous pouvez ajouter un utilisateur sans créer de groupe privé d'utilisateurs (UPG), même si les UPG sont activés sur le système. Pour ce faire, vous devez définir manuellement un GID pour le nouvel utilisateur. Pour plus de détails sur les raisons de cette opération, voir Utilisateurs sans groupe privé d'utilisateurs.
Procédure
Pour empêcher l'IdM de créer un UPG, ajoutez l'option
--noprivate
à la commandeipa user-add
.Notez que pour que la commande aboutisse, vous devez spécifier un GID personnalisé. Par exemple, pour ajouter un nouvel utilisateur avec le GID 10000 :
$ ipa user-add jsmith --first=John --last=Smith --noprivate --gid 10000
19.7.3. Désactivation globale des groupes privés d'utilisateurs pour tous les utilisateurs
Vous pouvez désactiver globalement les groupes privés d'utilisateurs (UPG). Cela empêche la création de groupes privés d'utilisateurs pour tous les nouveaux utilisateurs. Les utilisateurs existants ne sont pas affectés par cette modification.
Procédure
Obtenir les privilèges d'administrateur :
kinit admin
IdM utilise le plug-in Directory Server Managed Entries pour gérer les UPG. Dressez la liste des instances du plug-in :
$ ipa-managed-entries --list
Pour s'assurer que IdM ne crée pas d'UPG, désactivez l'instance de plug-in responsable de la gestion des groupes privés d'utilisateurs :
$ ipa-managed-entries -e "UPG Definition" disable Disabling Plugin
NotePour réactiver l'instance
UPG Definition
ultérieurement, utilisez la commandeipa-managed-entries -e "UPG Definition" enable
.Redémarrez Directory Server pour charger la nouvelle configuration.
sudo systemctl restart dirsrv.target
Pour ajouter un utilisateur après la désactivation des UPG, vous devez spécifier un GID. Pour plus d'informations, voir Ajouter un utilisateur lorsque les groupes privés d'utilisateurs sont globalement désactivés
Verification steps
Pour vérifier si les UPG sont globalement désactivés, utilisez à nouveau la commande disable :
$ ipa-managed-entries -e "UPG Definition" disable Plugin already disabled
19.7.4. Ajout d'un utilisateur lorsque les groupes privés d'utilisateurs sont globalement désactivés
Lorsque les groupes privés d'utilisateurs (UPG) sont désactivés globalement, l'IdM n'attribue pas automatiquement un GID à un nouvel utilisateur. Pour ajouter un utilisateur avec succès, vous devez attribuer un GID manuellement ou à l'aide d'une règle automember. Pour plus d'informations, voir Utilisateurs sans groupe privé d'utilisateurs.
Conditions préalables
- Les groupes privés d'utilisateurs doivent être désactivés globalement pour tous les utilisateurs. Pour plus d'informations, voir Désactivation globale des groupes privés d'utilisateurs pour tous les utilisateurs
Procédure
Pour s'assurer que l'ajout d'un nouvel utilisateur réussit lorsque la création d'UPG est désactivée, choisissez l'une des options suivantes :
Spécifiez un GID personnalisé lors de l'ajout d'un nouvel utilisateur. Le GID ne doit pas nécessairement correspondre à un groupe d'utilisateurs existant.
Par exemple, lorsque vous ajoutez un utilisateur à partir de la ligne de commande, ajoutez l'option
--gid
à la commandeipa user-add
.- Utilisez une règle automember pour ajouter l'utilisateur à un groupe existant avec un GID.
19.8. Ajout d'utilisateurs ou de groupes en tant que gestionnaires membres d'un groupe d'utilisateurs IdM à l'aide de la CLI IdM
Cette section décrit comment ajouter des utilisateurs ou des groupes en tant que gestionnaires membres d'un groupe d'utilisateurs IdM à l'aide de la CLI IdM. Les gestionnaires membres peuvent ajouter des utilisateurs ou des groupes aux groupes d'utilisateurs IdM, mais ne peuvent pas modifier les attributs d'un groupe.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
- Vous devez disposer du nom de l'utilisateur ou du groupe que vous ajoutez en tant que membres gestionnaires et du nom du groupe que vous souhaitez qu'ils gèrent.
Procédure
Ajouter un utilisateur en tant que gestionnaire membre d'un groupe d'utilisateurs IdM à l'aide de la commande
ipa group-add-member-manager
.Par exemple, pour ajouter l'utilisateur
test
en tant que membre gestionnaire degroup_a
:$ ipa group-add-member-manager group_a --users=test Group name: group_a GID: 1133400009 Membership managed by users: test ------------------------- Number of members added 1 -------------------------
L'utilisateur
test
peut désormais gérer les membres degroup_a
.Ajouter un groupe en tant que gestionnaire membre d'un groupe d'utilisateurs IdM à l'aide de la commande
ipa group-add-member-manager
.Par exemple, pour ajouter le groupe
group_admins
en tant que gestionnaire membre degroup_a
:$ ipa group-add-member-manager group_a --groups=group_admins Group name: group_a GID: 1133400009 Membership managed by groups: group_admins Membership managed by users: test ------------------------- Number of members added 1 -------------------------
Le groupe
group_admins
peut désormais gérer les membres degroup_a
.
Après avoir ajouté un gestionnaire membre à un groupe d'utilisateurs, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités.
Verification steps
Utiliser la commande
ipa group-show
pour vérifier que l'utilisateur et le groupe ont été ajoutés en tant que gestionnaires membres.$ ipa group-show group_a Group name: group_a GID: 1133400009 Membership managed by groups: group_admins Membership managed by users: test
Ressources supplémentaires
-
Voir
ipa group-add-member-manager --help
pour plus de détails.
19.9. Visualisation des membres d'un groupe à l'aide de la CLI IdM
Cette section décrit comment visualiser les membres d'un groupe à l'aide de l'interface CLI de l'IdM. Vous pouvez visualiser les membres directs et indirects d'un groupe. Pour plus d'informations, voir Membres directs et indirects d'un groupe.
Procédure :
Pour dresser la liste des membres d'un groupe, utilisez la commande
ipa group-show group_name
pour obtenir la liste des membres d'un groupe. Par exemple :$ ipa group-show group_a ... Member users: user_a Member groups: group_b Indirect Member users: user_b
NoteLa liste des membres indirects ne comprend pas les utilisateurs externes des domaines Active Directory de confiance. Les objets utilisateurs de confiance Active Directory ne sont pas visibles dans l'interface de gestion des identités car ils n'existent pas en tant qu'objets LDAP dans la gestion des identités.
19.10. Suppression d'un membre d'un groupe d'utilisateurs à l'aide de la CLI IdM
Cette section décrit comment supprimer un membre d'un groupe d'utilisateurs à l'aide de l'interface CLI de l'IdM.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
-
Optional. Utilisez la commande
ipa group-show
pour confirmer que le groupe inclut le membre que vous souhaitez supprimer. Supprimer un membre d'un groupe d'utilisateurs à l'aide de la commande
ipa group-remove-member
.Spécifiez les membres à supprimer à l'aide de ces options :
-
--users
supprime un utilisateur IdM -
--external
supprime un utilisateur qui existe en dehors du domaine IdM, sous le formatDOMAIN\user_name
ouuser_name@domain
-
--groups
supprime un groupe d'utilisateurs IdM
Par exemple, pour supprimer user1, user2 et group1 d'un groupe appelé group_name:
$ ipa group-remove-member group_name --users=user1 --users=user2 --groups=group1
-
19.11. Suppression d'utilisateurs ou de groupes en tant que gestionnaires membres d'un groupe d'utilisateurs IdM à l'aide de la CLI IdM
Cette section décrit comment supprimer des utilisateurs ou des groupes en tant que gestionnaires membres d'un groupe d'utilisateurs IdM à l'aide de la CLI IdM. Les gestionnaires membres peuvent supprimer des utilisateurs ou des groupes de groupes d'utilisateurs IdM, mais ne peuvent pas modifier les attributs d'un groupe.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
- Vous devez disposer du nom de l'utilisateur ou du groupe existant que vous supprimez et du nom du groupe qu'il gère.
Procédure
Supprimer un utilisateur en tant que gestionnaire membre d'un groupe d'utilisateurs IdM à l'aide de la commande
ipa group-remove-member-manager
.Par exemple, pour supprimer l'utilisateur
test
en tant que gestionnaire membre degroup_a
:$ ipa group-remove-member-manager group_a --users=test Group name: group_a GID: 1133400009 Membership managed by groups: group_admins --------------------------- Number of members removed 1 ---------------------------
L'utilisateur
test
ne peut plus gérer les membres degroup_a
.Supprimer un groupe en tant que gestionnaire membre d'un groupe d'utilisateurs IdM à l'aide de la commande
ipa group-remove-member-manager
.Par exemple, pour supprimer le groupe
group_admins
en tant que gestionnaire membre degroup_a
:$ ipa group-remove-member-manager group_a --groups=group_admins Group name: group_a GID: 1133400009 --------------------------- Number of members removed 1 ---------------------------
Le groupe
group_admins
ne peut plus gérer les membres degroup_a
.
Après avoir supprimé un gestionnaire membre d'un groupe d'utilisateurs, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités.
Verification steps
Utiliser la commande
ipa group-show
pour vérifier que l'utilisateur et le groupe ont été supprimés en tant que gestionnaires membres.$ ipa group-show group_a Group name: group_a GID: 1133400009
Ressources supplémentaires
-
Voir
ipa group-remove-member-manager --help
pour plus de détails.
Chapitre 20. Gestion des groupes d'utilisateurs dans l'interface Web IdM
Ce chapitre présente la gestion des groupes d'utilisateurs à l'aide de l'interface web IdM.
Un groupe d'utilisateurs est un ensemble d'utilisateurs ayant des privilèges, des politiques de mot de passe et d'autres caractéristiques communes.
Dans le cadre de la gestion des identités (IdM), un groupe d'utilisateurs peut inclure :
- Utilisateurs de l'IdM
- d'autres groupes d'utilisateurs de l'IdM
- les utilisateurs externes, c'est-à-dire les utilisateurs qui existent en dehors de l'IdM
20.1. Les différents types de groupes dans l'IdM
IdM prend en charge les types de groupes suivants :
- Groupes POSIX (par défaut)
Les groupes POSIX prennent en charge les attributs Linux POSIX pour leurs membres. Notez que les groupes qui interagissent avec Active Directory ne peuvent pas utiliser les attributs POSIX.
Les attributs POSIX identifient les utilisateurs en tant qu'entités distinctes. Parmi les exemples d'attributs POSIX concernant les utilisateurs, on peut citer
uidNumber
, un numéro d'utilisateur (UID), etgidNumber
, un numéro de groupe (GID).- Groupes non-POSIX
Les groupes non-POSIX ne prennent pas en charge les attributs POSIX. Par exemple, ces groupes n'ont pas de GID défini.
Tous les membres de ce type de groupe doivent appartenir au domaine IdM.
- Groupes externes
Utilisez les groupes externes pour ajouter des membres de groupes qui existent dans un magasin d'identité en dehors du domaine IdM, par exemple :
- Un système local
- Un domaine Active Directory
- Un service d'annuaire
Les groupes externes ne prennent pas en charge les attributs POSIX. Par exemple, ces groupes n'ont pas de GID défini.
Tableau 20.1. Groupes d'utilisateurs créés par défaut
Nom du groupe | Membres du groupe par défaut |
---|---|
| Tous les utilisateurs de l'IdM |
|
Utilisateurs disposant de privilèges administratifs, y compris l'utilisateur par défaut |
| Il s'agit d'un groupe ancien qui ne bénéficie plus de privilèges particuliers |
| Utilisateurs ayant des privilèges pour gérer les trusts Active Directory |
Lorsque vous ajoutez un utilisateur à un groupe d'utilisateurs, celui-ci bénéficie des privilèges et des règles associés au groupe. Par exemple, pour accorder des privilèges administratifs à un utilisateur, ajoutez-le au groupe admins
.
Ne pas supprimer le groupe admins
. Comme admins
est un groupe prédéfini requis par IdM, cette opération pose des problèmes avec certaines commandes.
En outre, IdM crée user private groups par défaut chaque fois qu'un nouvel utilisateur est créé dans IdM. Pour plus d'informations sur les groupes privés, voir Ajouter des utilisateurs sans groupe privé.
20.2. Membres directs et indirects du groupe
Les attributs des groupes d'utilisateurs dans l'IdM s'appliquent à la fois aux membres directs et indirects : lorsque le groupe B est membre du groupe A, tous les utilisateurs du groupe B sont considérés comme des membres indirects du groupe A.
Par exemple, dans le diagramme suivant :
- L'utilisateur 1 et l'utilisateur 2 sont direct members du groupe A.
- L'utilisateur 3, l'utilisateur 4 et l'utilisateur 5 sont indirect members du groupe A.
Figure 20.1. Appartenance directe et indirecte à un groupe
Si vous définissez une politique de mot de passe pour le groupe d'utilisateurs A, cette politique s'applique également à tous les utilisateurs du groupe d'utilisateurs B.
20.3. Ajout d'un groupe d'utilisateurs à l'aide de l'interface Web IdM
Cette section décrit comment ajouter un groupe d'utilisateurs à l'aide de l'interface Web IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
Procédure
- Cliquez sur Identity → Groups, et sélectionnez User Groups dans la barre latérale gauche.
- Cliquez sur Add pour commencer à ajouter le groupe.
Complétez les informations sur le groupe. Pour plus d'informations sur les types de groupes d'utilisateurs, voir Les différents types de groupes dans IdM.
Vous pouvez spécifier un GID personnalisé pour le groupe. Dans ce cas, veillez à éviter les conflits d'identifiants. Si vous ne spécifiez pas de GID personnalisé, IdM attribue automatiquement un GID à partir de la plage d'ID disponible.
- Cliquez sur Add pour confirmer.
20.4. Suppression d'un groupe d'utilisateurs à l'aide de l'interface Web IdM
Cette section décrit comment supprimer un groupe d'utilisateurs à l'aide de l'interface Web de l'IdM. Notez que la suppression d'un groupe ne supprime pas les membres du groupe de l'IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
Procédure
- Cliquez sur Identity → Groups et sélectionnez User Groups.
- Sélectionnez le groupe à supprimer.
- Cliquez sur Delete.
- Cliquez sur Delete pour confirmer.
20.5. Ajouter un membre à un groupe d'utilisateurs à l'aide de l'interface Web IdM
Vous pouvez ajouter des utilisateurs et des groupes d'utilisateurs en tant que membres d'un groupe d'utilisateurs. Pour plus d'informations, voir Les différents types de groupes dans IdM et Les membres directs et indirects d'un groupe.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
Procédure
- Cliquez sur Identity → Groups et sélectionnez User Groups dans la barre latérale gauche.
- Cliquez sur le nom du groupe.
Sélectionnez le type de membre du groupe que vous souhaitez ajouter : Users, User Groups, ou External.
- Cliquez sur Add.
- Cochez la case à côté d'un ou plusieurs membres que vous souhaitez ajouter.
Cliquez sur la flèche vers la droite pour déplacer les membres sélectionnés vers le groupe.
- Cliquez sur Add pour confirmer.
20.6. Ajout d'utilisateurs ou de groupes en tant que gestionnaires membres d'un groupe d'utilisateurs IdM à l'aide de l'interface Web
Cette section décrit comment ajouter des utilisateurs ou des groupes en tant que gestionnaires membres d'un groupe d'utilisateurs IdM à l'aide de l'interface Web. Les gestionnaires membres peuvent ajouter des utilisateurs ou des groupes aux groupes d'utilisateurs IdM, mais ne peuvent pas modifier les attributs d'un groupe.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
- Vous devez disposer du nom de l'utilisateur ou du groupe que vous ajoutez en tant que membres gestionnaires et du nom du groupe que vous souhaitez qu'ils gèrent.
Procédure
- Cliquez sur Identity → Groups et sélectionnez User Groups dans la barre latérale gauche.
- Cliquez sur le nom du groupe.
Sélectionnez le type de gestionnaire de groupe que vous souhaitez ajouter : Users ou User Groups.
- Cliquez sur Add.
- Cochez la case à côté d'un ou plusieurs membres que vous souhaitez ajouter.
Cliquez sur la flèche vers la droite pour déplacer les membres sélectionnés vers le groupe.
- Cliquez sur Add pour confirmer.
Après avoir ajouté un gestionnaire membre à un groupe d'utilisateurs, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités.
Verification steps
Vérifiez que l'utilisateur ou le groupe d'utilisateurs nouvellement ajouté a été ajouté à la liste des utilisateurs ou des groupes d'utilisateurs du gestionnaire des membres :
Ressources supplémentaires
-
Voir
ipa group-add-member-manager --help
pour plus d'informations.
20.7. Visualisation des membres d'un groupe à l'aide de l'interface Web IdM
Cette section décrit comment visualiser les membres d'un groupe à l'aide de l'interface Web IdM. Vous pouvez afficher les membres directs et indirects d'un groupe. Pour plus d'informations, voir Membres directs et indirects d'un groupe.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
Procédure
- Sélectionnez Identity → Groups.
- Sélectionnez User Groups dans la barre latérale gauche.
- Cliquez sur le nom du groupe que vous souhaitez consulter.
Passer de Direct Membership à Indirect Membership.
20.8. Suppression d'un membre d'un groupe d'utilisateurs à l'aide de l'interface Web IdM
Cette section décrit comment supprimer un membre d'un groupe d'utilisateurs à l'aide de l'interface Web IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
Procédure
- Cliquez sur Identity → Groups et sélectionnez User Groups dans la barre latérale gauche.
- Cliquez sur le nom du groupe.
Sélectionnez le type de membre du groupe que vous souhaitez supprimer : Users, User Groups, ou External.
- Cochez la case en regard du membre que vous souhaitez supprimer.
- Cliquez sur Delete.
- Cliquez sur Delete pour confirmer.
20.9. Suppression d'utilisateurs ou de groupes en tant que gestionnaires membres d'un groupe d'utilisateurs IdM à l'aide de l'interface Web
Cette section décrit comment supprimer des utilisateurs ou des groupes en tant que gestionnaires membres d'un groupe d'utilisateurs IdM à l'aide de l'interface Web. Les gestionnaires membres peuvent supprimer des utilisateurs ou des groupes de groupes d'utilisateurs IdM, mais ne peuvent pas modifier les attributs d'un groupe.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
- Vous devez disposer du nom de l'utilisateur ou du groupe existant que vous supprimez et du nom du groupe qu'il gère.
Procédure
- Cliquez sur Identity → Groups et sélectionnez User Groups dans la barre latérale gauche.
- Cliquez sur le nom du groupe.
Sélectionnez le type de gestionnaire de membres que vous souhaitez supprimer : Users ou User Groups.
- Cochez la case en regard du gestionnaire de membres que vous souhaitez supprimer.
- Cliquez sur Delete.
- Cliquez sur Delete pour confirmer.
Après avoir supprimé un gestionnaire membre d'un groupe d'utilisateurs, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités.
Verification steps
Vérifiez que l'utilisateur ou le groupe d'utilisateurs a été supprimé de la liste des utilisateurs ou des groupes d'utilisateurs du gestionnaire des membres :
Ressources supplémentaires
-
Voir
ipa group-add-member-manager --help
pour plus de détails.
Chapitre 21. Gérer les groupes d'utilisateurs à l'aide de playbooks Ansible
Cette section présente la gestion des groupes d'utilisateurs à l'aide des playbooks Ansible.
Un groupe d'utilisateurs est un ensemble d'utilisateurs ayant des privilèges, des politiques de mot de passe et d'autres caractéristiques communes.
Dans le cadre de la gestion des identités (IdM), un groupe d'utilisateurs peut inclure :
- Utilisateurs de l'IdM
- d'autres groupes d'utilisateurs de l'IdM
- les utilisateurs externes, c'est-à-dire les utilisateurs qui existent en dehors de l'IdM
La section comprend les sujets suivants :
- Les différents types de groupes dans l'IdM
- Membres directs et indirects du groupe
- Assurer la présence de groupes IdM et de membres de groupes à l'aide de playbooks Ansible
- Utiliser Ansible pour permettre aux utilisateurs AD d'administrer IdM
- Assurer la présence de gestionnaires de membres dans les groupes d'utilisateurs IDM à l'aide de playbooks Ansible
- Garantir l'absence de gestionnaires de membres dans les groupes d'utilisateurs IDM à l'aide de playbooks Ansible
21.1. Les différents types de groupes dans l'IdM
IdM prend en charge les types de groupes suivants :
- Groupes POSIX (par défaut)
Les groupes POSIX prennent en charge les attributs Linux POSIX pour leurs membres. Notez que les groupes qui interagissent avec Active Directory ne peuvent pas utiliser les attributs POSIX.
Les attributs POSIX identifient les utilisateurs en tant qu'entités distinctes. Parmi les exemples d'attributs POSIX concernant les utilisateurs, on peut citer
uidNumber
, un numéro d'utilisateur (UID), etgidNumber
, un numéro de groupe (GID).- Groupes non-POSIX
Les groupes non-POSIX ne prennent pas en charge les attributs POSIX. Par exemple, ces groupes n'ont pas de GID défini.
Tous les membres de ce type de groupe doivent appartenir au domaine IdM.
- Groupes externes
Utilisez les groupes externes pour ajouter des membres de groupes qui existent dans un magasin d'identité en dehors du domaine IdM, par exemple :
- Un système local
- Un domaine Active Directory
- Un service d'annuaire
Les groupes externes ne prennent pas en charge les attributs POSIX. Par exemple, ces groupes n'ont pas de GID défini.
Tableau 21.1. Groupes d'utilisateurs créés par défaut
Nom du groupe | Membres du groupe par défaut |
---|---|
| Tous les utilisateurs de l'IdM |
|
Utilisateurs disposant de privilèges administratifs, y compris l'utilisateur par défaut |
| Il s'agit d'un groupe ancien qui ne bénéficie plus de privilèges particuliers |
| Utilisateurs ayant des privilèges pour gérer les trusts Active Directory |
Lorsque vous ajoutez un utilisateur à un groupe d'utilisateurs, celui-ci bénéficie des privilèges et des règles associés au groupe. Par exemple, pour accorder des privilèges administratifs à un utilisateur, ajoutez-le au groupe admins
.
Ne pas supprimer le groupe admins
. Comme admins
est un groupe prédéfini requis par IdM, cette opération pose des problèmes avec certaines commandes.
En outre, IdM crée user private groups par défaut chaque fois qu'un nouvel utilisateur est créé dans IdM. Pour plus d'informations sur les groupes privés, voir Ajouter des utilisateurs sans groupe privé.
21.2. Membres directs et indirects du groupe
Les attributs des groupes d'utilisateurs dans l'IdM s'appliquent à la fois aux membres directs et indirects : lorsque le groupe B est membre du groupe A, tous les utilisateurs du groupe B sont considérés comme des membres indirects du groupe A.
Par exemple, dans le diagramme suivant :
- L'utilisateur 1 et l'utilisateur 2 sont direct members du groupe A.
- L'utilisateur 3, l'utilisateur 4 et l'utilisateur 5 sont indirect members du groupe A.
Figure 21.1. Appartenance directe et indirecte à un groupe
Si vous définissez une politique de mot de passe pour le groupe d'utilisateurs A, cette politique s'applique également à tous les utilisateurs du groupe d'utilisateurs B.
21.3. Assurer la présence de groupes IdM et de membres de groupes à l'aide de playbooks Ansible
La procédure suivante décrit comment assurer la présence de groupes IdM et de membres de groupes - à la fois des utilisateurs et des groupes d'utilisateurs - à l'aide d'un playbook Ansible.
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
.
- Les utilisateurs que vous souhaitez référencer dans votre manuel de jeu Ansible existent dans IdM. Pour plus de détails sur la façon de garantir la présence des utilisateurs à l'aide d'Ansible, voir Gérer les comptes d'utilisateurs à l'aide de carnets de commande Ansible.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur l'utilisateur et le groupe :
--- - name: Playbook to handle groups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Create group ops with gid 1234 ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: ops gidnumber: 1234 - name: Create group sysops ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: sysops user: - idm_user - name: Create group appops ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: appops - name: Add group members sysops and appops to group ops ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: ops group: - sysops - appops
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-group-members.yml
Verification steps
Vous pouvez vérifier si le groupe ops contient sysops et appops en tant que membres directs et idm_user en tant que membre indirect en utilisant la commande ipa group-show
:
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Afficher des informations sur ops:
ipaserver]$ ipa group-show ops Group name: ops GID: 1234 Member groups: sysops, appops Indirect Member users: idm_user
Les groupes appops et sysops - ce dernier comprenant l'utilisateur idm_user - existent dans IdM.
Ressources supplémentaires
-
Voir le fichier Markdown de
/usr/share/doc/ansible-freeipa/README-group.md
.
21.4. Utiliser Ansible pour permettre aux utilisateurs AD d'administrer IdM
Cette section décrit comment utiliser un playbook Ansible pour s'assurer qu'un remplacement d'ID d'utilisateur est présent dans un groupe de gestion des identités (IdM). Le remplacement de l'ID utilisateur est le remplacement d'un utilisateur Active Directory (AD) que vous avez créé dans la vue de confiance par défaut après avoir établi une confiance avec AD. Suite à l'exécution du playbook, un utilisateur AD, par exemple un administrateur AD, est en mesure d'administrer entièrement l'IdM sans avoir deux comptes et mots de passe différents.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. - Vous avez installé un trust avec AD.
-
Le remplacement de l'ID de l'utilisateur AD existe déjà dans l'IdM. Si ce n'est pas le cas, créez-le avec la commande
ipa idoverrideuser-add 'default trust view' ad_user@ad.example.com
commande. - Le groupe auquel vous ajoutez le remplacement de l'ID utilisateur existe déjà dans IdM.
-
Vous utilisez la version 4.8.7 d'IdM ou une version ultérieure. Pour connaître la version d'IdM installée sur votre serveur, entrez
ipa --version
. 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
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Créez un playbook
add-useridoverride-to-group.yml
avec le contenu suivant :--- - name: Playbook to ensure presence of users in a group hosts: ipaserver - name: Ensure the ad_user@ad.example.com user ID override is a member of the admins group: ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: admins idoverrideuser: - ad_user@ad.example.com
Dans l'exemple :
-
Secret123 est le mot de passe de l'IdM
admin
. -
admins
est le nom du groupe POSIX IdM auquel vous ajoutez l'annulation de l'ID ad_user@ad.example.com. Les membres de ce groupe disposent de tous les privilèges d'administrateur. - ad_user@ad.example.com est le remplacement de l'ID utilisateur d'un administrateur AD. L'utilisateur est stocké dans le domaine AD avec lequel une confiance a été établie.
-
Secret123 est le mot de passe de l'IdM
- 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 inventory add-useridoverride-to-group.yml
Ressources supplémentaires
- Remplacement des ID pour les utilisateurs AD
- /usr/share/doc/ansible-freeipa/README-group.md
- /usr/share/doc/ansible-freeipa/playbooks/user
- Utilisation des vues d'identification dans les environnements Active Directory
- Permettre aux utilisateurs AD d'administrer l'IdM
21.5. Assurer la présence de gestionnaires membres dans les groupes d'utilisateurs IdM à l'aide de playbooks Ansible
La procédure suivante décrit comment assurer la présence des gestionnaires membres de l'IdM - à la fois les utilisateurs et les groupes d'utilisateurs - à l'aide d'un playbook Ansible.
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 devez disposer du nom de l'utilisateur ou du groupe que vous ajoutez en tant que membres gestionnaires et du nom du groupe que vous souhaitez qu'ils gèrent.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créer un fichier playbook Ansible avec les informations nécessaires à la gestion des utilisateurs et des membres du groupe :
--- - name: Playbook to handle membership management hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure user test is present for group_a ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: group_a membermanager_user: test - name: Ensure group_admins is present for group_a ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: group_a membermanager_group: group_admins
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-member-managers-user-groups.yml
Verification steps
Vous pouvez vérifier si le groupe group_a contient test en tant que gestionnaire membre et si group_admins est un gestionnaire membre de group_a en utilisant la commande ipa group-show
:
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Afficher des informations sur managergroup1:
ipaserver]$ ipa group-show group_a Group name: group_a GID: 1133400009 Membership managed by groups: group_admins Membership managed by users: test
Ressources supplémentaires
-
Voir
ipa host-add-member-manager --help
. -
Voir la page de manuel
ipa
.
21.6. Assurer l'absence de membres gestionnaires dans les groupes d'utilisateurs IdM à l'aide de playbooks Ansible
La procédure suivante décrit comment garantir l'absence de gestionnaires membres de l'IdM - à la fois des utilisateurs et des groupes d'utilisateurs - à l'aide d'un playbook Ansible.
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 devez disposer du nom de l'utilisateur ou du groupe existant que vous supprimez et du nom du groupe qu'il gère.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créer un fichier playbook Ansible avec les informations nécessaires à la gestion des utilisateurs et des membres du groupe :
--- - name: Playbook to handle membership management hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure member manager user and group members are absent for group_a ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: group_a membermanager_user: test membermanager_group: group_admins action: member state: absent
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-member-managers-are-absent.yml
Verification steps
Vous pouvez vérifier que le groupe group_a ne contient pas test en tant que gestionnaire membre et group_admins en tant que gestionnaire membre de group_a en utilisant la commande ipa group-show
:
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Afficher des informations sur le groupe_a :
ipaserver]$ ipa group-show group_a Group name: group_a GID: 1133400009
Ressources supplémentaires
-
Voir
ipa host-remove-member-manager --help
. -
Voir la page de manuel
ipa
.
Chapitre 22. Automatisation de l'appartenance à un groupe à l'aide de la CLI IdM
L'utilisation de l'appartenance automatique à un groupe vous permet d'affecter automatiquement des utilisateurs et des hôtes à des groupes en fonction de leurs attributs. Par exemple, vous pouvez
- Répartissez les entrées utilisateur des employés dans des groupes en fonction du responsable de l'employé, de son lieu de travail ou de tout autre attribut.
- Divisez les hôtes en fonction de leur classe, de leur lieu de résidence ou de tout autre attribut.
- Ajouter tous les utilisateurs ou tous les hôtes à un seul groupe global.
Ce chapitre couvre les sujets suivants :
- Avantages de l'adhésion automatique à un groupe
- Règles de l'Automember
- Ajout d'une règle d'appartenance automatique à l'aide de la CLI d'IdM
- Ajout d'une condition à une règle de membre automatique à l'aide de la CLI IdM
- Visualisation des règles existantes pour les membres automatiques à l'aide de la CLI IdM
- Suppression d'une règle automember à l'aide de la CLI IdM
- Suppression d'une condition d'une règle de membre automatique à l'aide de l'interface CLI de l'IdM
- Appliquer des règles d'appartenance automatique à des entrées existantes à l'aide de l'interface CLI de l'IdM
- Configuration d'un groupe de membres par défaut à l'aide de la CLI IdM
22.1. Avantages de l'adhésion automatique à un groupe
L'utilisation de l'adhésion automatique pour les utilisateurs vous permet de
Reduce the overhead of manually managing group memberships
Il n'est plus nécessaire d'affecter manuellement chaque utilisateur et chaque hôte à des groupes.
Improve consistency in user and host management
Les utilisateurs et les hôtes sont affectés à des groupes sur la base de critères strictement définis et évalués automatiquement.
Simplify the management of group-based settings
Divers paramètres sont définis pour les groupes, puis appliqués aux membres individuels du groupe, par exemple les règles
sudo
, l'automount ou le contrôle d'accès. L'ajout automatique d'utilisateurs et d'hôtes à des groupes facilite la gestion de ces paramètres.
22.2. Règles de l'Automember
Lors de la configuration de l'appartenance automatique à un groupe, l'administrateur définit des règles d'appartenance automatique. Une règle automember s'applique à un groupe cible d'utilisateurs ou d'hôtes spécifique. Elle ne peut pas s'appliquer à plusieurs groupes à la fois.
Après avoir créé une règle, l'administrateur y ajoute des conditions. Celles-ci précisent quels utilisateurs ou hôtes sont inclus ou exclus du groupe cible :
Inclusive conditions
Lorsqu'une entrée utilisateur ou hôte remplit une condition d'inclusion, elle est incluse dans le groupe cible.
Exclusive conditions
Lorsqu'une entrée utilisateur ou hôte remplit une condition d'exclusivité, elle n'est pas incluse dans le groupe cible.
Les conditions sont spécifiées sous forme d'expressions régulières au format PCRE (Perl-compatible regular expressions). Pour plus d'informations sur PCRE, voir la page de manuel pcresyntax(3)
.
L'IdM évalue les conditions exclusives avant les conditions inclusives. En cas de conflit, les conditions exclusives l'emportent sur les conditions inclusives.
Une règle automember s'applique à toutes les entrées créées à l'avenir. Ces entrées seront automatiquement ajoutées au groupe cible spécifié. Si une entrée remplit les conditions spécifiées dans plusieurs règles automember, elle sera ajoutée à tous les groupes correspondants.
Les entrées existantes sont not affectées par la nouvelle règle. Si vous souhaitez modifier des entrées existantes, reportez-vous à la section Application des règles automember aux entrées existantes à l'aide de l'interface CLI de l'IdM.
22.3. Ajout d'une règle d'appartenance automatique à l'aide de la CLI d'IdM
Cette section décrit l'ajout d'une règle de membre automatique à l'aide de l'interface CLI de l'IdM. Pour plus d'informations sur les règles d'appartenance à un groupe, voir Règles d'appartenance à un groupe.
Après avoir ajouté une règle automember, vous pouvez y ajouter des conditions en suivant la procédure décrite dans la section Ajout d'une condition à une règle automember.
Les entrées existantes sont not affectées par la nouvelle règle. Si vous souhaitez modifier des entrées existantes, reportez-vous à la section Application des règles automember aux entrées existantes à l'aide de l'interface CLI de l'IdM.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
- Le groupe cible de la nouvelle règle doit exister dans l'IdM.
Procédure
-
Entrez la commande
ipa automember-add
pour ajouter une règle automember. Lorsque vous y êtes invité, précisez :
- Automember rule. Il s'agit du nom du groupe cible.
- Grouping Type. Ceci indique si la règle cible un groupe d'utilisateurs ou un groupe d'hôtes. Pour cibler un groupe d'utilisateurs, entrez group. Pour cibler un groupe d'hôtes, entrez hostgroup.
Par exemple, pour ajouter une règle automember pour un groupe d'utilisateurs nommé user_group:
$ ipa automember-add Automember Rule: user_group Grouping Type: group -------------------------------- Added automember rule "user_group" -------------------------------- Automember Rule: user_group
Verification steps
- Vous pouvez afficher les règles et les conditions existantes dans IdM en utilisant Visualisation des règles existantes pour les membres automatiques à l'aide de la CLI d'IdM.
22.4. Ajout d'une condition à une règle de membre automatique à l'aide de la CLI IdM
Cette section décrit comment ajouter une condition à une règle automember à l'aide de l'interface CLI de l'IdM. Pour plus d'informations sur les règles d'appartenance à un groupe, voir Règles d'appartenance à un groupe.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
- La règle cible doit exister dans IdM. Pour plus de détails, voir Ajout d'une règle automember à l'aide de IdM CLI.
Procédure
-
Définissez une ou plusieurs conditions inclusives ou exclusives à l'aide de la commande
ipa automember-add-condition
. Lorsque vous y êtes invité, précisez :
- Automember rule. Il s'agit du nom de la règle cible. Voir Règles Automember pour plus de détails.
- Attribute Key. Ceci spécifie l'attribut d'entrée auquel le filtre s'appliquera. Par exemple, uid pour les utilisateurs.
- Grouping Type. Ceci indique si la règle cible un groupe d'utilisateurs ou un groupe d'hôtes. Pour cibler un groupe d'utilisateurs, entrez group. Pour cibler un groupe d'hôtes, entrez hostgroup.
- Inclusive regex et Exclusive regex. Elles spécifient une ou plusieurs conditions sous forme d'expressions régulières. Si vous ne souhaitez spécifier qu'une seule condition, appuyez sur Enter lorsque vous êtes invité à spécifier l'autre condition.
Par exemple, la condition suivante vise tous les utilisateurs ayant une valeur quelconque (.*) dans leur attribut de connexion (uid).
$ ipa automember-add-condition Automember Rule: user_group Attribute Key: uid Grouping Type: group [Inclusive Regex]: .* [Exclusive Regex]: ---------------------------------- Added condition(s) to "user_group" ---------------------------------- Automember Rule: user_group Inclusive Regex: uid=.* ---------------------------- Number of conditions added 1 ----------------------------
Autre exemple, vous pouvez utiliser une règle d'appartenance automatique pour cibler tous les utilisateurs Windows synchronisés à partir d'Active Directory (AD). objectClass Pour ce faire, créez une condition qui cible tous les utilisateurs dont l'attribut ntUser est partagé par tous les utilisateurs AD :
$ ipa automember-add-condition Automember Rule: ad_users Attribute Key: objectclass Grouping Type: group [Inclusive Regex]: ntUser [Exclusive Regex]: ------------------------------------- Added condition(s) to "ad_users" ------------------------------------- Automember Rule: ad_users Inclusive Regex: objectclass=ntUser ---------------------------- Number of conditions added 1 ----------------------------
Verification steps
- Vous pouvez afficher les règles et les conditions existantes dans IdM en utilisant Visualisation des règles existantes pour les membres automatiques à l'aide de la CLI d'IdM.
22.5. Visualisation des règles existantes pour les membres automatiques à l'aide de la CLI IdM
Cette section décrit comment visualiser les règles automember existantes à l'aide de la CLI IdM.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
-
Entrez la commande
ipa automember-find
. Lorsque vous y êtes invité, indiquez l'adresse Grouping type:
- Pour cibler un groupe d'utilisateurs, entrez group.
Pour cibler un groupe d'hôtes, entrez hostgroup.
Par exemple :
$ ipa automember-find Grouping Type: group --------------- 1 rules matched --------------- Automember Rule: user_group Inclusive Regex: uid=.* ---------------------------- Number of entries returned 1 ----------------------------
22.6. Suppression d'une règle automember à l'aide de la CLI IdM
Cette section décrit comment supprimer une règle automember à l'aide de l'interface CLI de l'IdM.
La suppression d'une règle membre automatique supprime également toutes les conditions associées à la règle. Pour supprimer uniquement des conditions spécifiques d'une règle, voir Suppression d'une condition d'une règle automember à l'aide de l'interface CLI d'IdM.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
-
Entrez la commande
ipa automember-del
. Lorsque vous y êtes invité, précisez :
- Automember rule. Il s'agit de la règle que vous souhaitez supprimer.
- Grouping rule. Indique si la règle à supprimer concerne un groupe d'utilisateurs ou un groupe d'hôtes. Saisissez group ou hostgroup.
22.7. Suppression d'une condition d'une règle de membre automatique à l'aide de l'interface CLI de l'IdM
Cette section explique comment supprimer une condition spécifique d'une règle automember.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
Procédure
-
Entrez la commande
ipa automember-remove-condition
. Lorsque vous y êtes invité, précisez :
- Automember rule. Il s'agit du nom de la règle dont vous souhaitez supprimer une condition.
- Attribute Key. Il s'agit de l'attribut de l'entrée cible. Par exemple, uid pour les utilisateurs.
- Grouping Type. Indique si la condition à supprimer concerne un groupe d'utilisateurs ou un groupe d'hôtes. Saisissez group ou hostgroup.
Inclusive regex et Exclusive regex. Ils indiquent les conditions que vous souhaitez supprimer. Si vous ne souhaitez spécifier qu'une seule condition, appuyez sur Enter lorsque l'on vous demande l'autre condition.
Par exemple :
$ ipa automember-remove-condition Automember Rule: user_group Attribute Key: uid Grouping Type: group [Inclusive Regex]: .* [Exclusive Regex]: ----------------------------------- Removed condition(s) from "user_group" ----------------------------------- Automember Rule: user_group ------------------------------ Number of conditions removed 1 ------------------------------
22.8. Appliquer des règles d'appartenance automatique à des entrées existantes à l'aide de l'interface CLI de l'IdM
Les règles Automember s'appliquent automatiquement aux entrées utilisateur et hôte créées après l'ajout des règles. Elles ne s'appliquent pas rétroactivement aux entrées qui existaient avant l'ajout des règles.
Pour appliquer les règles d'automember aux entrées ajoutées précédemment, vous devez reconstruire manuellement l'adhésion automatique. La reconstruction de l'adhésion automatique réévalue toutes les règles automember existantes et les applique soit à toutes les entrées d'utilisateurs ou d'hôtes, soit à des entrées spécifiques.
Reconstruction de l'adhésion automatique does not supprimer les entrées utilisateur ou hôte des groupes, même si les entrées ne correspondent plus aux conditions d'inclusion du groupe. Pour les supprimer manuellement, voir Supprimer un membre d'un groupe d'utilisateurs à l'aide du CLI Id M ou Supprimer les membres d'un groupe d'hôtes IdM à l'aide du CLI.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir le lien : Utiliser kinit pour se connecter manuellement à l'IdM.
Procédure
Pour rétablir l'adhésion automatique, entrez la commande
ipa automember-rebuild
. Utilisez les options suivantes pour spécifier les entrées à cibler :Pour rétablir l'adhésion automatique de tous les utilisateurs, utilisez l'option
--type=group
:$ ipa automember-rebuild --type=group -------------------------------------------------------- Automember rebuild task finished. Processed (9) entries. --------------------------------------------------------
-
Pour rétablir l'adhésion automatique pour tous les hôtes, utilisez l'option
--type=hostgroup
. Pour rétablir l'affiliation automatique pour un ou plusieurs utilisateurs spécifiés, utilisez l'option
--users=target_user
pour reconstruire l'adhésion automatique pour l'utilisateur ou les utilisateurs spécifiés :$ ipa automember-rebuild --users=target_user1 --users=target_user2 -------------------------------------------------------- Automember rebuild task finished. Processed (2) entries. --------------------------------------------------------
-
Pour reconstruire l'adhésion automatique pour un ou plusieurs hôtes spécifiés, utilisez l'option
--hosts=client.idm.example.com
pour reconstruire l'adhésion automatique d'un ou plusieurs hôtes.
22.9. Configuration d'un groupe de membres par défaut à l'aide de la CLI IdM
Lorsque vous configurez un groupe de membres automatiques par défaut, les nouvelles entrées d'utilisateurs ou d'hôtes qui ne correspondent à aucune règle de membres automatiques sont automatiquement ajoutées à ce groupe par défaut.
Conditions préalables
- Vous devez être connecté en tant qu'administrateur. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à l'IdM.
- Le groupe cible que vous souhaitez définir par défaut existe dans IdM.
Procédure
-
Entrez la commande
ipa automember-default-group-set
pour configurer un groupe de membres automatiques par défaut. Lorsque vous y êtes invité, précisez :
- Default (fallback) Groupqui spécifie le nom du groupe cible.
Grouping Typequi précise si la cible est un groupe d'utilisateurs ou un groupe d'hôtes. Pour cibler un groupe d'utilisateurs, entrez group. Pour cibler un groupe d'hôtes, entrez hostgroup.
Par exemple :
$ ipa automember-default-group-set Default (fallback) Group: default_user_group Grouping Type: group --------------------------------------------------- Set default (fallback) group for automember "default_user_group" --------------------------------------------------- Default (fallback) Group: cn=default_user_group,cn=groups,cn=accounts,dc=example,dc=com
NotePour supprimer le groupe automember par défaut actuel, entrez la commande
ipa automember-default-group-remove
.
Verification steps
Pour vérifier que le groupe est correctement défini, entrez la commande
ipa automember-default-group-show
. La commande affiche le groupe automember par défaut actuel. Par exemple :$ ipa automember-default-group-show Grouping Type: group Default (fallback) Group: cn=default_user_group,cn=groups,cn=accounts,dc=example,dc=com
Chapitre 23. Automatisation de l'appartenance à un groupe à l'aide de l'interface Web IdM
L'utilisation de l'appartenance automatique à un groupe vous permet d'affecter automatiquement des utilisateurs et des hôtes à des groupes en fonction de leurs attributs. Par exemple, vous pouvez
- Répartissez les entrées utilisateur des employés dans des groupes en fonction du responsable de l'employé, de son lieu de travail ou de tout autre attribut.
- Divisez les hôtes en fonction de leur classe, de leur lieu de résidence ou de tout autre attribut.
- Ajouter tous les utilisateurs ou tous les hôtes à un seul groupe global.
Ce chapitre couvre les sujets suivants :
- Avantages de l'adhésion automatique à un groupe
- Règles de l'Automember
- Ajout d'une règle de membre automatique à l'aide de l'interface Web IdM
- Ajout d'une condition à une règle de membre automatique à l'aide de l'interface Web IdM
- Visualisation des règles et conditions existantes pour les membres automatiques à l'aide de l'interface Web IdM
- Suppression d'une règle de membre automatique à l'aide de l'interface Web IdM
- Suppression d'une condition d'une règle de membre automatique à l'aide de l'interface Web IdM
- Application de règles d'appartenance à un membre automatique à des entrées existantes à l'aide de l'interface Web de l'IdM
- Configuration d'un groupe d'utilisateurs par défaut à l'aide de l'interface Web IdM
- Configuration d'un groupe d'hôtes par défaut à l'aide de l'interface Web IdM
23.1. Avantages de l'adhésion automatique à un groupe
L'utilisation de l'adhésion automatique pour les utilisateurs vous permet de
Reduce the overhead of manually managing group memberships
Il n'est plus nécessaire d'affecter manuellement chaque utilisateur et chaque hôte à des groupes.
Improve consistency in user and host management
Les utilisateurs et les hôtes sont affectés à des groupes sur la base de critères strictement définis et évalués automatiquement.
Simplify the management of group-based settings
Divers paramètres sont définis pour les groupes, puis appliqués aux membres individuels du groupe, par exemple les règles
sudo
, l'automount ou le contrôle d'accès. L'ajout automatique d'utilisateurs et d'hôtes à des groupes facilite la gestion de ces paramètres.
23.2. Règles de l'Automember
Lors de la configuration de l'appartenance automatique à un groupe, l'administrateur définit des règles d'appartenance automatique. Une règle automember s'applique à un groupe cible d'utilisateurs ou d'hôtes spécifique. Elle ne peut pas s'appliquer à plusieurs groupes à la fois.
Après avoir créé une règle, l'administrateur y ajoute des conditions. Celles-ci précisent quels utilisateurs ou hôtes sont inclus ou exclus du groupe cible :
Inclusive conditions
Lorsqu'une entrée utilisateur ou hôte remplit une condition d'inclusion, elle est incluse dans le groupe cible.
Exclusive conditions
Lorsqu'une entrée utilisateur ou hôte remplit une condition d'exclusivité, elle n'est pas incluse dans le groupe cible.
Les conditions sont spécifiées sous forme d'expressions régulières au format PCRE (Perl-compatible regular expressions). Pour plus d'informations sur PCRE, voir la page de manuel pcresyntax(3)
.
L'IdM évalue les conditions exclusives avant les conditions inclusives. En cas de conflit, les conditions exclusives l'emportent sur les conditions inclusives.
Une règle automember s'applique à toutes les entrées créées à l'avenir. Ces entrées seront automatiquement ajoutées au groupe cible spécifié. Si une entrée remplit les conditions spécifiées dans plusieurs règles automember, elle sera ajoutée à tous les groupes correspondants.
Les entrées existantes sont not affectées par la nouvelle règle. Si vous souhaitez modifier des entrées existantes, reportez-vous à la section Application des règles automember aux entrées existantes à l'aide de l'interface Web IdM.
23.3. Ajout d'une règle de membre automatique à l'aide de l'interface Web IdM
Cette section décrit l'ajout d'une règle de membre automatique à l'aide de l'interface Web IdM. Pour plus d'informations sur les règles de membre automatique, voir Règles de membre automatique.
Les entrées existantes sont not affectées par la nouvelle règle. Si vous souhaitez modifier des entrées existantes, reportez-vous à la section Application des règles automember aux entrées existantes à l'aide de l'interface Web IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
. - Le groupe cible de la nouvelle règle existe dans IdM.
Procédure
- Cliquez sur Identity → Automember, puis sélectionnez User group rules ou Host group rules.
- Cliquez sur Add.
Dans le champ Automember rule, sélectionnez le groupe auquel la règle s'appliquera. Il s'agit du nom du groupe cible.
- Cliquez sur Add pour confirmer.
- Facultatif : vous pouvez ajouter des conditions à la nouvelle règle en suivant la procédure décrite dans la section Ajout d'une condition à une règle automember à l'aide de l'interface Web IdM.
23.4. Ajout d'une condition à une règle de membre automatique à l'aide de l'interface Web IdM
Cette section explique comment ajouter une condition à une règle d'appartenance à un groupe à l'aide de l'interface Web de l'IdM. Pour plus d'informations sur les règles de membre automatique, voir Règles de membre automatique.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
. - La règle cible existe dans l'IdM.
Procédure
- Cliquez sur Identity → Automember, puis sélectionnez User group rules ou Host group rules.
- Cliquez sur la règle à laquelle vous souhaitez ajouter une condition.
Dans les sections Inclusive ou Exclusive, cliquez sur Ajouter.
- Dans le champ Attribute, sélectionnez l'attribut requis, par exemple uid.
- Dans le champ Expression, définissez une expression régulière.
Cliquez sur Add.
Par exemple, la condition suivante vise tous les utilisateurs dont l'attribut d'identification de l'utilisateur (uid) contient une valeur quelconque (.*).
23.5. Visualisation des règles et conditions existantes pour les membres automatiques à l'aide de l'interface Web IdM
Cette section décrit comment visualiser les règles et conditions existantes pour les membres de l'association à l'aide de l'interface Web IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
.
Procédure
- Cliquez sur Identity → Automember, et sélectionnez User group rules ou Host group rules pour afficher les règles respectives des membres automatiques.
Facultatif : Cliquez sur une règle pour afficher les conditions de cette règle dans les sections Inclusive ou Exclusive.
23.6. Suppression d'une règle de membre automatique à l'aide de l'interface Web IdM
Cette section décrit comment supprimer une règle automember à l'aide de l'interface Web IdM.
La suppression d'une règle automember supprime également toutes les conditions associées à la règle. Pour supprimer uniquement des conditions spécifiques d'une règle, voir Suppression d'une condition d'une règle automember à l'aide de l'interface Web IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
.
Procédure
- Cliquez sur Identity → Automember, et sélectionnez User group rules ou Host group rules pour afficher les règles respectives des membres automatiques.
- Cochez la case en regard de la règle que vous souhaitez supprimer.
Cliquez sur Delete.
- Cliquez sur Delete pour confirmer.
23.7. Suppression d'une condition d'une règle de membre automatique à l'aide de l'interface Web IdM
Cette section décrit comment supprimer une condition spécifique d'une règle automember à l'aide de l'interface Web IdM.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
.
Procédure
- Cliquez sur Identity → Automember, et sélectionnez User group rules ou Host group rules pour afficher les règles respectives des membres automatiques.
- Cliquez sur une règle pour voir les conditions de cette règle dans les sections Inclusive ou Exclusive.
- Cochez la case en regard des conditions que vous souhaitez supprimer.
Cliquez sur Delete.
- Cliquez sur Delete pour confirmer.
23.8. Application de règles d'appartenance à un membre automatique à des entrées existantes à l'aide de l'interface Web de l'IdM
Les règles Automember s'appliquent automatiquement aux entrées utilisateur et hôte créées après l'ajout des règles. Elles ne s'appliquent pas rétroactivement aux entrées qui existaient avant l'ajout des règles.
Pour appliquer les règles d'automember aux entrées ajoutées précédemment, vous devez reconstruire manuellement l'adhésion automatique. La reconstruction de l'adhésion automatique réévalue toutes les règles automember existantes et les applique soit à toutes les entrées d'utilisateurs ou d'hôtes, soit à des entrées spécifiques.
Reconstruction de l'adhésion automatique does not supprimer les entrées d'utilisateurs ou d'hôtes des groupes, même si les entrées ne correspondent plus aux conditions d'inclusion du groupe. Pour les supprimer manuellement, voir Supprimer un membre d'un groupe d'utilisateurs à l'aide de l'interface Web d'IdM ou Supprimer les membres d'un groupe d'hôtes dans l'interface Web d'IdM.
23.8.1. Reconstruction de l'adhésion automatique pour tous les utilisateurs ou hôtes
Cette section décrit comment rétablir l'affiliation automatique pour toutes les entrées d'utilisateurs ou d'hôtes.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
.
Procédure
- Sélectionnez Identity → Users ou Hosts.
Cliquez sur Actions → Rebuild auto membership.
23.8.2. Reconstruction de l'adhésion automatique pour un seul utilisateur ou hôte
Cette section décrit comment reconstruire l'adhésion automatique pour une entrée utilisateur ou hôte spécifique.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
.
Procédure
- Sélectionnez Identity → Users ou Hosts.
- Cliquez sur le nom d'utilisateur ou d'hôte requis.
Cliquez sur Actions → Rebuild auto membership.
23.9. Configuration d'un groupe d'utilisateurs par défaut à l'aide de l'interface Web IdM
Lorsque vous configurez un groupe d'utilisateurs par défaut, les nouvelles entrées d'utilisateurs qui ne correspondent à aucune règle automember sont automatiquement ajoutées à ce groupe par défaut.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
. - Le groupe d'utilisateurs cible que vous souhaitez définir par défaut existe dans l'IdM.
Procédure
- Cliquez sur Identity → Automember, puis sélectionnez User group rules.
Dans le champ Default user group, sélectionnez le groupe que vous souhaitez définir comme groupe d'utilisateurs par défaut.
23.10. Configuration d'un groupe d'hôtes par défaut à l'aide de l'interface Web IdM
Lorsque vous configurez un groupe d'hôtes par défaut, les nouvelles entrées d'hôtes qui ne correspondent à aucune règle automember sont automatiquement ajoutées à ce groupe par défaut.
Conditions préalables
- Vous êtes connecté à l'interface Web IdM.
-
Vous devez être membre du groupe
admins
. - Le groupe d'hôtes cible que vous souhaitez définir par défaut existe dans IdM.
Procédure
- Cliquez sur Identity → Automember, puis sélectionnez Host group rules.
Dans le champ Default host group, sélectionnez le groupe que vous souhaitez définir comme groupe d'hôtes par défaut.
Chapitre 24. Utiliser Ansible pour automatiser l'appartenance à un groupe dans IdM
L'appartenance automatique à un groupe vous permet d'affecter aux utilisateurs et aux hôtes des groupes d'utilisateurs et des groupes d'hôtes automatiquement, en fonction de leurs attributs. Par exemple, vous pouvez
-
Répartissez les entrées utilisateur des employés dans des groupes en fonction du responsable, de la localisation, du poste ou de tout autre attribut de l'employé. Vous pouvez dresser la liste de tous les attributs en saisissant
ipa user-add --help
sur la ligne de commande. -
Divisez les hôtes en groupes en fonction de leur classe, de leur emplacement ou de tout autre attribut. Vous pouvez dresser la liste de tous les attributs en entrant
ipa host-add --help
dans la ligne de commande. - Ajouter tous les utilisateurs ou tous les hôtes à un seul groupe global.
Vous pouvez utiliser Red Hat Ansible Engine pour automatiser la gestion de l'appartenance automatique à un groupe dans Identity Management (IdM).
Cette section couvre les sujets suivants :
- Préparation du nœud de contrôle Ansible pour la gestion de l'IdM
- Utiliser Ansible pour s'assurer qu'une règle automember pour un groupe d'utilisateurs IdM est présente
- Utiliser Ansible pour s'assurer qu'une condition est présente dans une règle de membre automatique d'un groupe d'utilisateurs IdM
- Utiliser Ansible pour s'assurer qu'une condition est absente dans une règle de membre automatique d'un groupe d'utilisateurs IdM
- Utiliser Ansible pour s'assurer qu'une règle automember pour un groupe IdM est absente
- Utiliser Ansible pour s'assurer qu'une condition est présente dans une règle de membre automatique d'un groupe d'hôtes IdM
24.1. Préparation du nœud de contrôle Ansible pour la gestion de l'IdM
En tant qu'administrateur système gérant la gestion des identités (IdM), lorsque vous travaillez avec Red Hat Ansible Engine, il est recommandé de procéder comme suit :
- Créez un sous-répertoire dédié aux playbooks Ansible dans votre répertoire personnel, par exemple ~/MyPlaybooks.
-
Copiez et adaptez les exemples de playbooks Ansible des répertoires et sous-répertoires
/usr/share/doc/ansible-freeipa/*
et/usr/share/doc/rhel-system-roles/*
dans votre répertoire ~/MyPlaybooks. - Incluez votre fichier d'inventaire dans votre répertoire ~/MyPlaybooks.
En suivant cette pratique, vous pouvez trouver tous vos playbooks en un seul endroit et vous pouvez exécuter vos playbooks sans invoquer les privilèges root.
Vous n'avez besoin que des privilèges root
sur les nœuds gérés pour exécuter les rôles ipaserver
, ipareplica
, ipaclient
, ipabackup
, ipasmartcard_server
et ipasmartcard_client
ansible-freeipa
. Ces rôles nécessitent un accès privilégié aux répertoires et au gestionnaire de paquets logiciels dnf
.
Cette section décrit comment créer le répertoire ~/MyPlaybooks et le configurer de manière à ce que vous puissiez l'utiliser pour stocker et exécuter des playbooks Ansible.
Conditions préalables
- Vous avez installé un serveur IdM sur vos nœuds gérés, server.idm.example.com et replica.idm.example.com.
- Vous avez configuré le DNS et le réseau pour pouvoir vous connecter aux nœuds gérés, server.idm.example.com et replica.idm.example.comdirectement à partir du nœud de contrôle.
-
Vous connaissez le mot de passe de l'IdM
admin
.
Procédure
Créez un répertoire pour votre configuration Ansible et vos playbooks dans votre répertoire personnel :
$ mkdir ~/MyPlaybooks/
Allez dans le répertoire ~/MyPlaybooks/:
$ cd ~/MyPlaybooks
Créez le fichier ~/MyPlaybooks/ansible.cfg avec le contenu suivant :
[defaults] inventory = /home/your_username/MyPlaybooks/inventory [privilege_escalation] become=True
Créez le fichier ~/MyPlaybooks/inventory avec le contenu suivant :
[ipaserver] server.idm.example.com [ipareplicas] replica1.idm.example.com replica2.idm.example.com [ipacluster:children] ipaserver ipareplicas [ipacluster:vars] ipaadmin_password=SomeADMINpassword [ipaclients] ipaclient1.example.com ipaclient2.example.com [ipaclients:vars] ipaadmin_password=SomeADMINpassword
Cette configuration définit deux groupes d'hôtes, eu et us, pour les hôtes de ces sites. En outre, cette configuration définit le groupe d'hôtes ipaserver, qui contient tous les hôtes des groupes eu et us.
[Facultatif] Créez une clé publique et une clé privée SSH. Pour simplifier l'accès dans votre environnement de test, ne définissez pas de mot de passe pour la clé privée :
$ ssh-keygen
Copiez la clé publique SSH dans le compte IdM
admin
sur chaque nœud géré :$ ssh-copy-id admin@server.idm.example.com $ ssh-copy-id admin@replica.idm.example.com
Vous devez saisir le mot de passe IdM
admin
lorsque vous entrez dans ces commandes.
Ressources supplémentaires
24.2. Utiliser Ansible pour s'assurer qu'une règle automember pour un groupe d'utilisateurs IdM est présente
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer de l'existence d'une règle automember
pour un groupe de gestion des identités (IdM). Dans l'exemple, la présence d'une règle automember
est assurée pour le groupe d'utilisateurs testing_group.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. - Le groupe d'utilisateurs testing_group existe dans 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
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Copiez le fichier
automember-group-present.yml
Ansible playbook situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/automember/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-group-present.yml automember-group-present-copy.yml
-
Ouvrez le fichier
automember-group-present-copy.yml
pour le modifier. Adaptez le fichier en définissant les variables suivantes dans la section
ipaautomember
task :-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. -
Fixer la variable
name
à testing_group. -
Fixer la variable
automember_type
à group. -
Assurez-vous que la variable
state
est définie surpresent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Automember group present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure group automember rule admins is present ipaautomember: ipaadmin_password: "{{ ipaadmin_password }}" name: testing_group automember_type: group state: present
-
Fixer 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 inventory automember-group-present-copy.yml
Ressources supplémentaires
- Voir Avantages de l'adhésion automatique à un groupe et Règles Automember.
- Voir Utiliser Ansible pour s'assurer qu'une condition est présente dans une règle de membre automatique d'un groupe d'utilisateurs IdM.
-
Voir le fichier
README-automember.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir le répertoire
/usr/share/doc/ansible-freeipa/playbooks/automember
.
24.3. Utiliser Ansible pour s'assurer qu'une condition spécifiée est présente dans une règle de membre automatique d'un groupe d'utilisateurs IdM
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une condition spécifiée existe dans une règle automember
pour un groupe de gestion des identités (IdM). Dans l'exemple, la présence d'une condition liée à l'UID dans la règle automember
est assurée pour le groupe testing_group. En spécifiant la condition .*, vous vous assurez que tous les futurs utilisateurs IdM deviennent automatiquement membres du groupe testing_group.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. - Le groupe d'utilisateurs testing_group et la règle du groupe d'utilisateurs automember existent dans 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
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Copiez le fichier
automember-hostgroup-rule-present.yml
Ansible playbook situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/automember/
et nommez-le, par exemple, automember-usergroup-rule-present.yml:$ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-hostgroup-rule-present.yml automember-usergroup-rule-present.yml
-
Ouvrez le fichier
automember-usergroup-rule-present.yml
pour le modifier. Adapter le fichier en modifiant les paramètres suivants :
- Renommez le playbook pour qu'il corresponde à votre cas d'utilisation, par exemple : Automember user group rule member present.
- Renommez la tâche pour qu'elle corresponde à votre cas d'utilisation, par exemple : Ensure an automember condition for a user group is present.
Définissez les variables suivantes dans la section
ipaautomember
task :-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. -
Fixer la variable
name
à testing_group. -
Fixer la variable
automember_type
àgroup
. -
Assurez-vous que la variable
state
est définie surpresent
. -
Assurez-vous que la variable
action
est définie surmember
. -
Fixez la variable
inclusive
key
àUID
. -
Fixer la variable
inclusive
expression
à .*
-
Fixer la variable
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Automember user group rule member present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure an automember condition for a user group is present ipaautomember: ipaadmin_password: "{{ ipaadmin_password }}" name: testing_group automember_type: group state: present action: member inclusive: - key: UID expression: .*
- 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 inventory automember-usergroup-rule-present.yml
Verification steps
Se connecter en tant qu'administrateur IdM.
$ kinit admin
Ajouter un utilisateur, par exemple :
$ ipa user-add user101 --first user --last 101 ----------------------- Added user "user101" ----------------------- User login: user101 First name: user Last name: 101 ... Member of groups: ipausers, testing_group ...
Ressources supplémentaires
- Voir Application des règles automember aux entrées existantes à l'aide de l'interface CLI de l'IdM.
- Voir Avantages de l'adhésion automatique à un groupe et Règles Automember.
-
Voir le fichier
README-automember.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir le répertoire
/usr/share/doc/ansible-freeipa/playbooks/automember
.
24.4. Utiliser Ansible pour s'assurer qu'une condition est absente d'une règle de membre automatique d'un groupe d'utilisateurs IdM
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une condition est absente d'une règle automember
pour un groupe de gestion des identités (IdM). Dans l'exemple, l'absence d'une condition dans la règle automember
est garantie et spécifie que les utilisateurs dont initials
est dp doivent être inclus. La règle automember est appliquée au groupe testing_group. En appliquant la condition, vous vous assurez qu'aucun futur utilisateur IdM dont les initiales sont dp ne devienne membre du groupe testing_group.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. - Le groupe d'utilisateurs testing_group et la règle du groupe d'utilisateurs automember existent dans 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
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Copiez le fichier
automember-hostgroup-rule-absent.yml
Ansible playbook situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/automember/
et nommez-le, par exemple, automember-usergroup-rule-absent.yml:$ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-hostgroup-rule-absent.yml automember-usergroup-rule-absent.yml
-
Ouvrez le fichier
automember-usergroup-rule-absent.yml
pour le modifier. Adapter le fichier en modifiant les paramètres suivants :
- Renommez le playbook pour qu'il corresponde à votre cas d'utilisation, par exemple : Automember user group rule member absent.
- Renommez la tâche pour qu'elle corresponde à votre cas d'utilisation, par exemple : Ensure an automember condition for a user group is absent.
Définissez les variables suivantes dans la section
ipaautomember
task :-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. -
Fixer la variable
name
à testing_group. -
Fixer la variable
automember_type
à group. -
Assurez-vous que la variable
state
est définie surabsent
. -
Assurez-vous que la variable
action
est définie surmember
. -
Fixez la variable
inclusive
key
àinitials
. -
Fixez la variable
inclusive
expression
à dp.
-
Fixer la variable
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Automember user group rule member absent hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure an automember condition for a user group is absent ipaautomember: ipaadmin_password: "{{ ipaadmin_password }}" name: testing_group automember_type: group state: absent action: member inclusive: - key: initials expression: dp
- 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 inventory automember-usergroup-rule-absent.yml
Verification steps
Se connecter en tant qu'administrateur IdM.
$ kinit admin
Affichez le groupe automember :
$ ipa automember-show --type=group testing_group Automember Rule: testing_group
L'absence d'une entrée Inclusive Regex: initials=dp
dans la sortie confirme que la règle de membre automatique testing_group ne contient pas la condition spécifiée.
Ressources supplémentaires
- Voir Application des règles automember aux entrées existantes à l'aide de l'interface CLI de l'IdM.
- Voir Avantages de l'adhésion automatique à un groupe et Règles Automember.
-
Voir le fichier
README-automember.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir le répertoire
/usr/share/doc/ansible-freeipa/playbooks/automember
.
24.5. Utiliser Ansible pour s'assurer qu'une règle automember pour un groupe d'utilisateurs IdM est absente
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une règle automember
est absente pour un groupe de gestion d'identité (IdM). Dans l'exemple, l'absence d'une règle automember
est garantie pour le groupe testing_group.
La suppression d'une règle de membre automatique supprime également toutes les conditions associées à la règle. Pour ne supprimer que des conditions spécifiques d'une règle, voir Utiliser Ansible pour s'assurer qu'une condition est absente d'une règle de membre automatique d'un groupe d'utilisateurs IdM.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. 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
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Copiez le fichier
automember-group-absent.yml
Ansible playbook situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/automember/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-group-absent.yml automember-group-absent-copy.yml
-
Ouvrez le fichier
automember-group-absent-copy.yml
pour le modifier. Adaptez le fichier en définissant les variables suivantes dans la section
ipaautomember
task :-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. -
Fixer la variable
name
à testing_group. -
Fixer la variable
automember_type
à group. -
Assurez-vous que la variable
state
est définie surabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Automember group absent example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure group automember rule admins is absent ipaautomember: ipaadmin_password: "{{ ipaadmin_password }}" name: testing_group automember_type: group state: absent
-
Fixer 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 inventory automember-group-absent.yml
Ressources supplémentaires
- Voir Avantages de l'adhésion automatique à un groupe et Règles Automember.
-
Voir le fichier
README-automember.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir le répertoire
/usr/share/doc/ansible-freeipa/playbooks/automember
.
24.6. Utiliser Ansible pour s'assurer qu'une condition est présente dans une règle de membre automatique d'un groupe d'hôtes IdM
Cette section décrit comment utiliser Ansible pour s'assurer qu'une condition est présente dans une règle de membre automatique de groupe d'hôtes IdM. L'exemple décrit comment s'assurer que les hôtes dont le FQDN
est .*.idm.example.com sont membres du groupe d'hôtes primary_dns_domain_hosts et que les hôtes dont le FQDN
est .*.example.org ne sont pas membres du groupe d'hôtes primary_dns_domain_hosts.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. - Le groupe d'hôtes primary_dns_domain_hosts et la règle du groupe d'hôtes automember existent dans 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
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Copiez le fichier
automember-hostgroup-rule-present.yml
Ansible playbook situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/automember/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-hostgroup-rule-present.yml automember-hostgroup-rule-present-copy.yml
-
Ouvrez le fichier
automember-hostgroup-rule-present-copy.yml
pour le modifier. Adaptez le fichier en définissant les variables suivantes dans la section
ipaautomember
task :-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. -
Fixer la variable
name
à primary_dns_domain_hosts. -
Fixer la variable
automember_type
à hostgroup. -
Assurez-vous que la variable
state
est définie surpresent
. -
Assurez-vous que la variable
action
est définie surmember
. -
Assurez-vous que la variable
inclusive
key
est fixée àfqdn
. -
Définissez la variable
inclusive
expression
correspondante à .*.idm.example.com. -
Fixez la variable
exclusive
key
àfqdn
. -
Définissez la variable
exclusive
expression
correspondante à .*.example.org.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Automember user group rule member present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure an automember condition for a user group is present ipaautomember: ipaadmin_password: "{{ ipaadmin_password }}" name: primary_dns_domain_hosts automember_type: hostgroup state: present action: member inclusive: - key: fqdn expression: .*.idm.example.com exclusive: - key: fqdn expression: .*.example.org
-
Fixer 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 inventory automember-hostgroup-rule-present-copy.yml
Ressources supplémentaires
- Voir Application des règles automember aux entrées existantes à l'aide de l'interface CLI de l'IdM.
- Voir Avantages de l'adhésion automatique à un groupe et Règles Automember.
-
Voir le fichier
README-automember.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir le répertoire
/usr/share/doc/ansible-freeipa/playbooks/automember
.
24.7. Ressources supplémentaires
Chapitre 25. Délégation de permissions à des groupes d'utilisateurs pour gérer les utilisateurs à l'aide de la CLI IdM
La délégation est l'une des méthodes de contrôle d'accès dans IdM, avec les règles en libre-service et le contrôle d'accès basé sur les rôles (RBAC). Vous pouvez utiliser la délégation pour attribuer des autorisations à un groupe d'utilisateurs afin de gérer des entrées pour un autre groupe d'utilisateurs.
Cette section couvre les sujets suivants :
25.1. Règles de délégation
Vous pouvez déléguer des autorisations à des groupes d'utilisateurs pour gérer les utilisateurs en créant delegation rules.
Les règles de délégation permettent à un groupe d'utilisateurs spécifique d'effectuer des opérations d'écriture (modification) sur des attributs spécifiques pour les utilisateurs d'un autre groupe d'utilisateurs. Cette forme de règle de contrôle d'accès se limite à la modification des valeurs d'un sous-ensemble d'attributs que vous spécifiez dans une règle de délégation ; elle ne permet pas d'ajouter ou de supprimer des entrées entières ni de contrôler des attributs non spécifiés.
Les règles de délégation accordent des autorisations aux groupes d'utilisateurs existants dans IdM. Vous pouvez utiliser la délégation pour, par exemple, permettre au groupe d'utilisateurs managers
de gérer certains attributs des utilisateurs du groupe d'utilisateurs employees
.
25.2. Création d'une règle de délégation à l'aide de l'interface CLI de l'IdM
Cette section décrit comment créer une règle de délégation à l'aide de la CLI IdM.
Conditions préalables
-
Vous êtes connecté en tant que membre du groupe
admins
.
Procédure
Entrez la commande
ipa delegation-add
. Spécifiez les options suivantes :-
--group
: le groupe qui is being granted permissions aux entrées des utilisateurs dans le groupe d'utilisateurs. -
--membergroup
: le groupe whose entries can be edited par les membres du groupe de délégation. -
--permissions
: si les utilisateurs auront le droit de voir les attributs donnés (read) et d'ajouter ou de modifier les attributs donnés (write). Si vous ne spécifiez pas de permissions, seule la permission write sera ajoutée. -
--attrs
: les attributs que les utilisateurs du groupe de membres sont autorisés à voir ou à modifier.
Par exemple :
-
$ ipa delegation-add "basic manager attributes" --permissions=read --permissions=write --attrs=businesscategory --attrs=departmentnumber --attrs=employeetype --attrs=employeenumber --group=managers --membergroup=employees
-------------------------------------------
Added delegation "basic manager attributes"
-------------------------------------------
Delegation name: basic manager attributes
Permissions: read, write
Attributes: businesscategory, departmentnumber, employeetype, employeenumber
Member user group: employees
User group: managers
25.3. Visualisation des règles de délégation existantes à l'aide de la CLI IdM
Cette section décrit comment visualiser les règles de délégation existantes à l'aide de la CLI IdM.
Conditions préalables
-
Vous êtes connecté en tant que membre du groupe
admins
.
Procédure
-
Entrez la commande
ipa delegation-find
:
$ ipa delegation-find
--------------------
1 delegation matched
--------------------
Delegation name: basic manager attributes
Permissions: read, write
Attributes: businesscategory, departmentnumber, employeenumber, employeetype
Member user group: employees
User group: managers
----------------------------
Number of entries returned 1
----------------------------
25.4. Modification d'une règle de délégation à l'aide de la CLI IdM
Cette section décrit comment modifier une règle de délégation existante à l'aide de l'interface CLI de l'IdM.
L'option --attrs
écrase la liste précédente des attributs pris en charge. Il faut donc toujours inclure la liste complète des attributs ainsi que les nouveaux attributs. Ceci s'applique également à l'option --permissions
.
Conditions préalables
-
Vous êtes connecté en tant que membre du groupe
admins
.
Procédure
Entrez la commande
ipa delegation-mod
avec les modifications souhaitées. Par exemple, pour ajouter l'attributdisplayname
à la règle d'exemplebasic manager attributes
:$ ipa delegation-mod "basic manager attributes" --attrs=businesscategory --attrs=departmentnumber --attrs=employeetype --attrs=employeenumber --attrs=displayname ---------------------------------------------- Modified delegation "basic manager attributes" ---------------------------------------------- Delegation name: basic manager attributes Permissions: read, write Attributes: businesscategory, departmentnumber, employeetype, employeenumber, displayname Member user group: employees User group: managers
25.5. Suppression d'une règle de délégation à l'aide de la CLI IdM
Cette section décrit comment supprimer une règle de délégation existante à l'aide de l'interface CLI de l'IdM.
Conditions préalables
-
Vous êtes connecté en tant que membre du groupe
admins
.
Procédure
-
Entrez la commande
ipa delegation-del
. Lorsque vous y êtes invité, saisissez le nom de la règle de délégation que vous souhaitez supprimer :
$ ipa delegation-del Delegation name: basic manager attributes --------------------------------------------- Deleted delegation "basic manager attributes" ---------------------------------------------
Chapitre 26. Délégation de permissions à des groupes d'utilisateurs pour gérer les utilisateurs à l'aide de l'interface Web IdM
La délégation est l'une des méthodes de contrôle d'accès dans IdM, avec les règles en libre-service et le contrôle d'accès basé sur les rôles (RBAC). Vous pouvez utiliser la délégation pour attribuer des autorisations à un groupe d'utilisateurs afin de gérer des entrées pour un autre groupe d'utilisateurs.
Cette section couvre les sujets suivants :
- Règles de délégation
- Création d'une règle de délégation à l'aide de l'interface Web IdM
- Visualisation des règles de délégation existantes à l'aide de l'interface Web IdM
- Modifier une règle de délégation à l'aide de l'interface Web IdM
- Suppression d'une règle de délégation à l'aide de l'interface Web IdM
26.1. Règles de délégation
Vous pouvez déléguer des autorisations à des groupes d'utilisateurs pour gérer les utilisateurs en créant delegation rules.
Les règles de délégation permettent à un groupe d'utilisateurs spécifique d'effectuer des opérations d'écriture (modification) sur des attributs spécifiques pour les utilisateurs d'un autre groupe d'utilisateurs. Cette forme de règle de contrôle d'accès se limite à la modification des valeurs d'un sous-ensemble d'attributs que vous spécifiez dans une règle de délégation ; elle ne permet pas d'ajouter ou de supprimer des entrées entières ni de contrôler des attributs non spécifiés.
Les règles de délégation accordent des autorisations aux groupes d'utilisateurs existants dans IdM. Vous pouvez utiliser la délégation pour, par exemple, permettre au groupe d'utilisateurs managers
de gérer certains attributs des utilisateurs du groupe d'utilisateurs employees
.
26.2. Création d'une règle de délégation à l'aide de l'interface Web IdM
Cette section décrit comment créer une règle de délégation à l'aide de l'interface Web IdM.
Conditions préalables
-
Vous êtes connecté à l'interface Web IdM en tant que membre du groupe
admins
.
Procédure
- Dans le menu IPA Server, cliquez sur Role-Based Access Control → Delegations.
Cliquez sur Add.
Dans la fenêtre Add delegation, procédez comme suit :
- Nommez la nouvelle règle de délégation.
- Définissez les autorisations en cochant les cases qui indiquent si les utilisateurs auront le droit de voir les attributs donnés (read) et d'ajouter ou de modifier les attributs donnés (write).
- Dans le menu déroulant Groupe d'utilisateurs, sélectionnez le groupe who is being granted permissions pour afficher ou modifier les entrées des utilisateurs du groupe membre.
- Dans le menu déroulant Member user group, sélectionnez le groupe whose entries can be edited par les membres du groupe de délégation.
Dans la case attributs, cochez les cases des attributs auxquels vous souhaitez accorder des autorisations.
- Cliquez sur le bouton Add pour enregistrer la nouvelle règle de délégation.
26.3. Visualisation des règles de délégation existantes à l'aide de l'interface Web IdM
Cette section décrit comment visualiser les règles de délégation existantes à l'aide de l'interface Web IdM.
Conditions préalables
-
Vous êtes connecté à l'interface Web IdM en tant que membre du groupe
admins
.
Procédure
Dans le menu IPA Server, cliquez sur Role-Based Access Control → Delegations.
26.4. Modifier une règle de délégation à l'aide de l'interface Web IdM
Cette section décrit comment modifier une règle de délégation existante à l'aide de l'interface Web IdM.
Conditions préalables
-
Vous êtes connecté à l'interface Web IdM en tant que membre du groupe
admins
.
Procédure
Dans le menu IPA Server, cliquez sur Role-Based Access Control → Delegations.
- Cliquez sur la règle que vous souhaitez modifier.
Effectuez les modifications souhaitées :
- Modifier le nom de la règle.
- Modifiez les autorisations accordées en cochant les cases qui indiquent si les utilisateurs auront le droit de voir les attributs donnés (read) et d'ajouter ou de modifier les attributs donnés (write).
- Dans le menu déroulant Groupe d'utilisateurs, sélectionnez le groupe who is being granted permissions pour afficher ou modifier les entrées des utilisateurs du groupe membre.
- Dans le menu déroulant Member user group, sélectionnez le groupe whose entries can be edited par les membres du groupe de délégation.
Dans la case attributs, cochez les cases des attributs auxquels vous souhaitez accorder des autorisations. Pour supprimer les autorisations d'un attribut, décochez la case correspondante.
- Cliquez sur le bouton Save pour enregistrer les modifications.
26.5. Suppression d'une règle de délégation à l'aide de l'interface Web IdM
Cette section décrit comment supprimer une règle de délégation existante à l'aide de l'interface Web IdM.
Conditions préalables
-
Vous êtes connecté à l'interface Web IdM en tant que membre du groupe
admins
.
Procédure
- Dans le menu IPA Server, cliquez sur Role-Based Access Control → Delegations.
- Cochez la case en regard de la règle que vous souhaitez supprimer.
Cliquez sur Delete.
- Cliquez sur Delete pour confirmer.
Chapitre 27. Déléguer des permissions à des groupes d'utilisateurs pour gérer les utilisateurs à l'aide de playbooks Ansible
La délégation est l'une des méthodes de contrôle d'accès dans IdM, avec les règles en libre-service et le contrôle d'accès basé sur les rôles (RBAC). Vous pouvez utiliser la délégation pour attribuer des autorisations à un groupe d'utilisateurs afin de gérer des entrées pour un autre groupe d'utilisateurs.
Cette section couvre les sujets suivants :
- Règles de délégation
- Création du fichier d'inventaire Ansible pour IdM
- Utiliser Ansible pour s'assurer qu'une règle de délégation est présente
- Utiliser Ansible pour s'assurer qu'une règle de délégation est absente
- Utiliser Ansible pour s'assurer qu'une règle de délégation possède des attributs spécifiques
- Utiliser Ansible pour s'assurer qu'une règle de délégation n'a pas d'attributs spécifiques
27.1. Règles de délégation
Vous pouvez déléguer des autorisations à des groupes d'utilisateurs pour gérer les utilisateurs en créant delegation rules.
Les règles de délégation permettent à un groupe d'utilisateurs spécifique d'effectuer des opérations d'écriture (modification) sur des attributs spécifiques pour les utilisateurs d'un autre groupe d'utilisateurs. Cette forme de règle de contrôle d'accès se limite à la modification des valeurs d'un sous-ensemble d'attributs que vous spécifiez dans une règle de délégation ; elle ne permet pas d'ajouter ou de supprimer des entrées entières ni de contrôler des attributs non spécifiés.
Les règles de délégation accordent des autorisations aux groupes d'utilisateurs existants dans IdM. Vous pouvez utiliser la délégation pour, par exemple, permettre au groupe d'utilisateurs managers
de gérer certains attributs des utilisateurs du groupe d'utilisateurs employees
.
27.2. Création d'un fichier d'inventaire Ansible pour IdM
Lorsque vous travaillez avec Ansible, il est bon de créer, dans votre répertoire personnel, un sous-répertoire dédié aux playbooks Ansible que vous copiez et adaptez à partir des sous-répertoires /usr/share/doc/ansible-freeipa/*
et /usr/share/doc/rhel-system-roles/*
. Cette pratique présente les avantages suivants :
- Vous pouvez retrouver tous vos playbooks en un seul endroit.
-
Vous pouvez exécuter vos playbooks sans invoquer les privilèges de
root
.
Procédure
Créez un répertoire pour votre configuration Ansible et vos playbooks dans votre répertoire personnel :
$ mkdir ~/MyPlaybooks/
Allez dans le répertoire ~/MyPlaybooks/:
$ cd ~/MyPlaybooks
Créez le fichier ~/MyPlaybooks/ansible.cfg avec le contenu suivant :
[defaults] inventory = /home/<username>/MyPlaybooks/inventory [privilege_escalation] become=True
Créez le fichier ~/MyPlaybooks/inventory avec le contenu suivant :
[eu] server.idm.example.com [us] replica.idm.example.com [ipaserver:children] eu us
Cette configuration définit deux groupes d'hôtes, eu et us, pour les hôtes de ces sites. En outre, cette configuration définit le groupe d'hôtes ipaserver, qui contient tous les hôtes des groupes eu et us.
27.3. Utiliser Ansible pour s'assurer qu'une règle de délégation est présente
La procédure suivante décrit comment utiliser un playbook Ansible pour définir les privilèges d'une nouvelle règle de délégation IdM et assurer sa présence. Dans l'exemple, la nouvelle règle de délégation basic manager attributes accorde au groupe managers
la possibilité de lire et d'écrire les attributs suivants pour les membres du groupe employees
:
-
businesscategory
-
departmentnumber
-
employeenumber
-
employeetype
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
delegation-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/delegation/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/delegation/delegation-present.yml delegation-present-copy.yml
-
Ouvrez le fichier
delegation-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipadelegation
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de la nouvelle règle de délégation. -
Attribuez à la variable
permission
une liste de permissions à accorder, séparées par des virgules :read
etwrite
. -
Définissez la variable
attribute
avec une liste d'attributs que le groupe d'utilisateurs délégué peut gérer :businesscategory
,departmentnumber
,employeenumber
, etemployeetype
. -
Définissez la variable
group
avec le nom du groupe auquel on donne accès à la visualisation ou à la modification des attributs. -
Définissez la variable
membergroup
avec le nom du groupe dont les attributs peuvent être visualisés ou modifiés.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage a delegation rule hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure delegation "basic manager attributes" is present ipadelegation: ipaadmin_password: "{{ ipaadmin_password }}" name: "basic manager attributes" permission: read, write attribute: - businesscategory - departmentnumber - employeenumber - employeetype group: managers membergroup: employees
-
Définissez 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 ~/MyPlaybooks/inventory delegation-present-copy.yml
Ressources supplémentaires
- Voir règles de délégation.
-
Voir le fichier
README-delegation.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/ipadelegation
.
27.4. Utiliser Ansible pour s'assurer qu'une règle de délégation est absente
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une règle de délégation spécifiée est absente de votre configuration IdM. L'exemple ci-dessous décrit comment s'assurer que la règle de délégation personnalisée basic manager attributes n'existe pas dans IdM.
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks>/
Faites une copie du fichier
delegation-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/delegation/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/delegation/delegation-present.yml delegation-absent-copy.yml
-
Ouvrez le fichier
delegation-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipadelegation
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de la règle de délégation. -
Fixer la variable
state
àabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Delegation absent hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure delegation "basic manager attributes" is absent ipadelegation: ipaadmin_password: "{{ ipaadmin_password }}" name: "basic manager attributes" state: absent
-
Définissez 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 ~/MyPlaybooks/inventory delegation-absent-copy.yml
Ressources supplémentaires
- Voir règles de délégation.
-
Voir le fichier
README-delegation.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/ipadelegation
.
27.5. Utiliser Ansible pour s'assurer qu'une règle de délégation possède des attributs spécifiques
La procédure suivante décrit comment utiliser une séquence Ansible pour s'assurer qu'une règle de délégation dispose de paramètres spécifiques. Vous pouvez utiliser ce livre de jeu pour modifier un rôle de délégation que vous avez précédemment créé. Dans l'exemple, vous vous assurez que la règle de délégation basic manager attributes possède uniquement l'attribut membre departmentnumber
.
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
.
- La règle de délégation basic manager attributes existe dans IdM.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
delegation-member-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/delegation/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/delegation/delegation-member-present.yml delegation-member-present-copy.yml
-
Ouvrez le fichier
delegation-member-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipadelegation
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de la règle de délégation à modifier. -
Fixer la variable
attribute
àdepartmentnumber
. -
Fixer la variable
action
àmember
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Delegation member present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure delegation "basic manager attributes" member attribute departmentnumber is present ipadelegation: ipaadmin_password: "{{ ipaadmin_password }}" name: "basic manager attributes" attribute: - departmentnumber action: member
-
Définissez 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 ~/MyPlaybooks/inventory delegation-member-present-copy.yml
Ressources supplémentaires
- Voir règles de délégation.
-
Voir le fichier
README-delegation.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/ipadelegation
.
27.6. Utiliser Ansible pour s'assurer qu'une règle de délégation n'a pas d'attributs spécifiques
La procédure suivante décrit comment utiliser une séquence Ansible pour s'assurer qu'une règle de délégation n'a pas de paramètres spécifiques. Vous pouvez utiliser ce livre de lecture pour vous assurer qu'un rôle de délégation n'accorde pas d'accès indésirable. Dans l'exemple, vous vous assurez que la règle de délégation basic manager attributes n'a pas les attributs de membre employeenumber
et employeetype
.
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
.
- La règle de délégation basic manager attributes existe dans IdM.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
delegation-member-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/delegation/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/delegation/delegation-member-absent.yml delegation-member-absent-copy.yml
-
Ouvrez le fichier
delegation-member-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipadelegation
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de la règle de délégation à modifier. -
Fixez la variable
attribute
àemployeenumber
etemployeetype
. -
Fixer la variable
action
àmember
. -
Fixer la variable
state
àabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Delegation member absent hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure delegation "basic manager attributes" member attributes employeenumber and employeetype are absent ipadelegation: ipaadmin_password: "{{ ipaadmin_password }}" name: "basic manager attributes" attribute: - employeenumber - employeetype action: member state: absent
-
Définissez 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 ~/MyPlaybooks/inventory delegation-member-absent-copy.yml
Ressources supplémentaires
- Voir règles de délégation.
-
Voir le fichier
README-delegation.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/ipadelegation
.
Chapitre 28. Gestion des contrôles d'accès basés sur les rôles dans l'IdM à l'aide de la CLI
Ce chapitre présente le contrôle d'accès basé sur les rôles dans la gestion des identités (IdM) et décrit les opérations suivantes dans l'interface de ligne de commande (CLI) :
28.1. Contrôle d'accès basé sur les rôles dans l'IdM
Le contrôle d'accès basé sur les rôles (RBAC) dans l'IdM accorde un type d'autorité très différent aux utilisateurs par rapport aux contrôles d'accès en libre-service et par délégation.
Le contrôle d'accès basé sur les rôles se compose de trois parties :
- Permissions accorder le droit d'effectuer une tâche spécifique telle que l'ajout ou la suppression d'utilisateurs, la modification d'un groupe, l'activation de l'accès en lecture, etc.
- Privileges combiner les autorisations, par exemple toutes les autorisations nécessaires pour ajouter un nouvel utilisateur.
- Roles accorder un ensemble de privilèges à des utilisateurs, des groupes d'utilisateurs, des hôtes ou des groupes d'hôtes.
28.1.1. Permissions dans l'IdM
Les autorisations sont l'unité de niveau le plus bas du contrôle d'accès basé sur les rôles. Elles définissent les opérations ainsi que les entrées LDAP auxquelles ces opérations s'appliquent. Comparables à des blocs de construction, les autorisations peuvent être attribuées à autant de privilèges que nécessaire.
Une ou plusieurs adresses rights définissent les opérations autorisées :
-
write
-
read
-
search
-
compare
-
add
-
delete
-
all
Ces opérations s'appliquent à trois sites de base targets:
-
subtree
: un nom de domaine (DN) ; la sous-arborescence sous ce DN -
target filter
un filtre LDAP -
target
: DN avec des caractères génériques possibles pour spécifier les entrées
En outre, les options de commodité suivantes définissent le(s) attribut(s) correspondant(s) :
-
type
: un type d'objet (utilisateur, groupe, etc.) ; définitsubtree
ettarget filter
-
memberof
: membres d'un groupe ; fixe untarget filter
-
targetgroup
: accorde l'accès à la modification d'un groupe spécifique (par exemple en accordant les droits de gérer l'appartenance à un groupe) ; définit une valeur detarget
Grâce aux autorisations IdM, vous pouvez contrôler quels utilisateurs ont accès à quels objets et même à quels attributs de ces objets. L'IdM vous permet d'autoriser ou de bloquer des attributs individuels ou de modifier la visibilité totale d'une fonction IdM spécifique, telle que les utilisateurs, les groupes ou sudo, pour tous les utilisateurs anonymes, tous les utilisateurs authentifiés ou seulement un certain groupe d'utilisateurs privilégiés.
Par exemple, la flexibilité de cette approche des autorisations est utile pour un administrateur qui souhaite limiter l'accès des utilisateurs ou des groupes uniquement aux sections spécifiques auxquelles ces utilisateurs ou groupes ont besoin d'accéder et rendre les autres sections complètement cachées pour eux.
Une autorisation ne peut pas contenir d'autres autorisations.
28.1.2. Permissions gérées par défaut
Les autorisations gérées sont des autorisations fournies par défaut avec l'IdM. Elles se comportent comme les autres autorisations créées par l'utilisateur, avec les différences suivantes :
- Vous ne pouvez pas les supprimer ni modifier leur nom, leur emplacement et leurs attributs cibles.
Ils ont trois séries d'attributs :
- Default l'utilisateur ne peut pas les modifier, car ils sont gérés par IdM
- Included les attributs, qui sont des attributs supplémentaires ajoutés par l'utilisateur
- Excluded les attributs, qui sont des attributs supprimés par l'utilisateur
Une autorisation gérée s'applique à tous les attributs qui figurent dans les ensembles d'attributs par défaut et inclus, mais pas dans l'ensemble exclu.
Bien que vous ne puissiez pas supprimer une autorisation gérée, le fait de définir son type de liaison sur autorisation et de supprimer l'autorisation gérée de tous les privilèges la désactive effectivement.
Les noms de toutes les autorisations gérées commencent par System:
, par exemple System: Add Sudo rule
ou System: Modify Services
. Les versions antérieures de l'IdM utilisaient un schéma différent pour les autorisations par défaut. Par exemple, l'utilisateur ne pouvait pas les supprimer et ne pouvait les attribuer qu'à des privilèges. La plupart de ces autorisations par défaut ont été transformées en autorisations gérées, mais les autorisations suivantes utilisent toujours le schéma précédent :
- Ajouter une tâche de reconstruction de l'adhésion automatique
- Ajouter des sous-enregistrements de configuration
- Ajouter des accords de réplication
- Certificat Supprimer la retenue
- Obtenir l'état des certificats de l'autorité de certification
- Plage de lecture de l'ADN
- Modifier la portée de l'ADN
- Lire la configuration des gestionnaires PassSync
- Modifier la configuration des gestionnaires PassSync
- Lire les accords de réplication
- Modifier les accords de réplication
- Supprimer les accords de réplication
- Lire la configuration de la base de données LDBM
- Demande de certificat
- Demande de certificat ignorant les listes de contrôle de l'autorité de certification
- Demander des certificats à un autre hôte
- Récupérer des certificats auprès de l'autorité de certification
- Révoquer le certificat
- Écriture de la configuration de l'IPA
Si vous tentez de modifier une autorisation gérée à partir de la ligne de commande, le système ne vous permet pas de changer les attributs que vous ne pouvez pas modifier, la commande échoue. Si vous tentez de modifier une autorisation gérée à partir de l'interface Web, les attributs que vous ne pouvez pas modifier sont désactivés.
28.1.3. Privilèges dans l'IdM
Un privilège est un groupe de permissions applicables à un rôle.
Alors qu'une autorisation donne le droit d'effectuer une seule opération, certaines tâches de l'IdM nécessitent plusieurs autorisations pour être menées à bien. Par conséquent, un privilège combine les différentes autorisations requises pour effectuer une tâche spécifique.
Par exemple, la création d'un compte pour un nouvel utilisateur IdM nécessite les autorisations suivantes :
- Création d'une nouvelle entrée utilisateur
- Réinitialisation du mot de passe d'un utilisateur
- Ajout du nouvel utilisateur au groupe d'utilisateurs IPA par défaut
La combinaison de ces trois tâches de bas niveau en une tâche de plus haut niveau sous la forme d'un privilège personnalisé nommé, par exemple, Add User facilite la gestion des rôles par l'administrateur du système. L'IdM contient déjà plusieurs privilèges par défaut. Outre les utilisateurs et les groupes d'utilisateurs, des privilèges sont également attribués aux hôtes et aux groupes d'hôtes, ainsi qu'aux services de réseau. Cette pratique permet un contrôle fin des opérations effectuées par un ensemble d'utilisateurs sur un ensemble d'hôtes utilisant des services de réseau spécifiques.
Un privilège ne peut pas contenir d'autres privilèges.
28.1.4. Rôles dans l'IdM
Un rôle est une liste de privilèges que les utilisateurs spécifiés pour ce rôle possèdent.
En effet, les autorisations permettent d'effectuer certaines tâches de bas niveau (créer une entrée utilisateur, ajouter une entrée à un groupe, etc.), tandis que les privilèges combinent une ou plusieurs de ces autorisations nécessaires à une tâche de plus haut niveau (comme la création d'un nouvel utilisateur dans un groupe donné). Les rôles regroupent les privilèges selon les besoins : par exemple, un administrateur d'utilisateurs peut ajouter, modifier et supprimer des utilisateurs.
Les rôles sont utilisés pour classer les actions autorisées. Ils ne sont pas utilisés comme outil pour mettre en œuvre la séparation des privilèges ou pour se protéger contre l'escalade des privilèges.
Les rôles ne peuvent pas contenir d'autres rôles.
28.1.5. Rôles prédéfinis dans la gestion de l'identité
Red Hat Identity Management fournit la gamme suivante de rôles prédéfinis :
Tableau 28.1. Rôles prédéfinis dans la gestion des identités
Rôle | Privilège | Description |
---|---|---|
Administrateur des inscriptions | Inscription au programme d'accueil | Responsable de l'inscription du client ou de l'hôte |
helpdesk | Modifier les utilisateurs et réinitialiser les mots de passe, Modifier l'appartenance à un groupe | Effectuer des tâches simples d'administration des utilisateurs |
Spécialiste de la sécurité informatique | Administrateurs Netgroups, Administrateur HBAC, Administrateur Sudo | Responsable de la gestion de la politique de sécurité telle que les contrôles d'accès basés sur l'hôte, les règles sudo |
Spécialiste des technologies de l'information | Administrateurs d'hôtes, administrateurs de groupes d'hôtes, administrateurs de services, administrateurs de montages automatiques | Responsable de la gestion des hôtes |
Architecte de sécurité | Administrateur de la délégation, Administrateurs de la réplication, Configuration de l'IPA en écriture, Administrateur de la politique des mots de passe | Responsable de la gestion de l'environnement de gestion des identités, de la création de trusts et d'accords de réplication |
Administrateur des utilisateurs | Administrateurs d'utilisateurs, administrateurs de groupes, administrateurs d'utilisateurs de scène | Responsable de la création des utilisateurs et des groupes |
28.2. Gestion des autorisations IdM dans l'interface de programmation
Cette section explique comment gérer les autorisations de gestion des identités (IdM) à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
Procédure
Créez de nouvelles entrées d'autorisation à l'aide de la commande
ipa permission-add
.
Par exemple, pour ajouter une autorisation nommée dns admin:$ ipa permission-add "dns admin"
Spécifiez les propriétés de l'autorisation à l'aide des options suivantes :
--bindtype
spécifie le type de règle de liaison. Cette option accepte les argumentsall
,anonymous
, etpermission
. Le type de règle de liaisonpermission
signifie que seuls les utilisateurs auxquels cette autorisation a été accordée par l'intermédiaire d'un rôle peuvent l'exercer.
Par exemple :$ ipa permission-add "dns admin" --bindtype=all
Si vous n'indiquez pas
--bindtype
, la valeur par défaut estpermission
.NoteIl n'est pas possible d'ajouter aux privilèges des autorisations dont le type de règle de liaison n'est pas par défaut. Il n'est pas non plus possible de définir une autorisation déjà présente dans un privilège avec un type de règle de liaison autre que celui par défaut.
--right
énumère les droits accordés par la permission, elle remplace l'option--permissions
qui est obsolète. Les valeurs disponibles sontadd
,delete
,read
,search
,compare
,write
,all
.Vous pouvez définir plusieurs attributs en utilisant plusieurs options
--right
ou une liste séparée par des virgules à l'intérieur d'accolades. Par exemple :$ ipa permission-add "dns admin" --right=read --right=write
$ ipa permission-add "dns admin" --right={read,write}
Noteadd
etdelete
sont des opérations d'entrée de gamme (par exemple, supprimer un utilisateur, ajouter un groupe, etc.) tandis queread
,search
,compare
etwrite
sont davantage des opérations de niveau attributaire : vous pouvez écrire suruserCertificate
mais pas lireuserPassword
.--attrs
donne la liste des attributs sur lesquels l'autorisation est accordée.
Vous pouvez définir plusieurs attributs en utilisant plusieurs options--attrs
ou en énumérant les options dans une liste séparée par des virgules à l'intérieur d'accolades. Par exemple :$ ipa permission-add "dns admin" --attrs=description --attrs=automountKey
$ ipa permission-add "dns admin" --attrs={description,automountKey}
Les attributs fournis avec
--attrs
doivent exister et être des attributs autorisés pour le type d'objet donné, sinon la commande échoue avec des erreurs de syntaxe de schéma.--type
définit le type d'objet d'entrée auquel l'autorisation s'applique, tel que l'utilisateur, l'hôte ou le service. Chaque type possède son propre ensemble d'attributs autorisés.
Par exemple :$ ipa permission-add "manage service" --right=all --type=service --attrs=krbprincipalkey --attrs=krbprincipalname --attrs=managedby
--subtree
donne une entrée de sous-arbre ; le filtre cible alors toutes les entrées situées sous cette entrée de sous-arbre. Fournir une entrée de sous-arbre existante ;--subtree
n'accepte pas les caractères génériques ou les noms de domaine (DN) inexistants. Inclure un DN dans le répertoire.
Comme IdM utilise une arborescence simplifiée et plate,--subtree
peut être utilisé pour cibler certains types d'entrées, comme les emplacements de montage automatique, qui sont des conteneurs ou des entrées parentes pour d'autres configurations. Par exemple :$ ipa permission-add "manage automount locations" --subtree="ldap://ldap.example.com:389/cn=automount,dc=example,dc=com" --right=write --attrs=automountmapname --attrs=automountkey --attrs=automountInformation
NoteLes options
--type
et--subtree
s'excluent mutuellement : vous pouvez considérer l'inclusion de filtres pour--type
comme une simplification de--subtree
, destinée à faciliter la vie de l'administrateur.--filter
utilise un filtre LDAP pour identifier les entrées auxquelles l'autorisation s'applique.
L'IdM vérifie automatiquement la validité du filtre donné. Le filtre peut être n'importe quel filtre LDAP valide, par exemple :$ ipa permission-add \N "Gérer les groupes Windows" --filtre="( !(objectclass=posixgroup))\N" -droit=écriture --attrs=description --right=write --attrs=description
--memberof
définit le filtre cible pour les membres du groupe donné après avoir vérifié que le groupe existe. Par exemple, pour permettre aux utilisateurs disposant de cette autorisation de modifier le shell de connexion des membres du groupe des ingénieurs :$ ipa permission-add ManageShell --right="write" --type=user --attr=loginshell --memberof=engineers
--targetgroup
attribue la cible au groupe d'utilisateurs spécifié après avoir vérifié que le groupe existe. Par exemple, pour permettre à ceux qui ont l'autorisation d'écrire l'attribut membre dans le groupe d'ingénieurs (afin qu'ils puissent ajouter ou supprimer des membres) :$ ipa permission-add ManageMembers --right="write" --subtree=cn=groups,cn=accounts,dc=example,dc=test --attr=member --targetgroup=engineers
En option, vous pouvez spécifier un nom de domaine cible (DN) :
-
--target
spécifie le DN auquel appliquer l'autorisation. Les caractères génériques sont acceptés. -
--targetto
spécifie le sous-arbre DN dans lequel une entrée peut être déplacée. -
--targetfrom
spécifie le sous-arbre DN à partir duquel une entrée peut être déplacée.
-
28.3. Options de commande pour les autorisations existantes
Les variantes suivantes permettent de modifier les autorisations existantes en fonction des besoins :
-
Pour modifier les autorisations existantes, utilisez la commande
ipa permission-mod
. Vous pouvez utiliser les mêmes options de commande que pour l'ajout de permissions. -
Pour trouver les autorisations existantes, utilisez la commande
ipa permission-find
. Vous pouvez utiliser les mêmes options de commande que pour l'ajout de permissions. Pour visualiser une autorisation spécifique, utilisez la commande
ipa permission-show
.
L'argument--raw
indique l'ACI 389-ds brut qui est généré. Par exemple :$ ipa permission-show <permission> --raw
-
La commande
ipa permission-del
supprime complètement une autorisation.
Ressources supplémentaires
-
Voir la page de manuel
ipa
. -
Voir la commande
ipa help
.
28.4. Gestion des privilèges IdM dans l'interface de programmation
Cette section explique comment gérer les privilèges de la gestion des identités (IdM) à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Un ticket Kerberos actif. Pour plus de détails, voir le lien : Utiliser kinit pour se connecter manuellement à IdM.
- Les autorisations existantes. Pour plus d'informations sur les autorisations, voir Gestion des autorisations IdM dans l'interface de programmation.
Procédure
Ajoutez des entrées de privilèges à l'aide de la commande
ipa privilege-add
Par exemple, pour ajouter un privilège nommé managing filesystems avec une description :$ ipa privilege-add "gestion des systèmes de fichiers" --desc="pour les systèmes de fichiers" $ ipa privilege-add "gestion des systèmes de fichiers" --desc="pour les systèmes de fichiers"
Attribuez les autorisations requises au groupe de privilèges à l'aide de la commande
privilege-add-permission
Par exemple, pour ajouter les autorisations nommées managing automount et managing ftp services au privilège managing filesystems:$ ipa privilege-add-permission "gérer les systèmes de fichiers" --permissions="gérer les montages automatiques" --permissions="gérer les services ftp"
28.5. Options de commande pour les privilèges existants
Les variantes suivantes permettent de modifier les privilèges existants en fonction des besoins :
-
Pour modifier les privilèges existants, utilisez la commande
ipa privilege-mod
. -
Pour trouver les privilèges existants, utilisez la commande
ipa privilege-find
. -
Pour afficher un privilège spécifique, utilisez la commande
ipa privilege-show
. -
La commande
ipa privilege-remove-permission
supprime une ou plusieurs autorisations d'un privilège. -
La commande
ipa privilege-del
supprime complètement un privilège.
Ressources supplémentaires
-
Voir la page de manuel
ipa
. -
Voir la commande
ipa help
.
28.6. Gestion des rôles IdM dans l'interface de ligne de commande
Cette section décrit comment gérer les rôles de gestion des identités (IdM) à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
- Privilèges existants. Pour plus d'informations sur les privilèges, voir Gestion des privilèges IdM dans l'interface de programmation.
Procédure
Ajoutez de nouvelles entrées de rôle à l'aide de la commande
ipa role-add
:$ ipa role-add --desc="User Administrator" useradmin ------------------------ Added role "useradmin" ------------------------ Role name: useradmin Description: User Administrator
Ajoutez les privilèges requis au rôle à l'aide de la commande
ipa role-add-privilege
:$ ipa role-add-privilege --privileges="user administrators" useradmin Role name: useradmin Description: User Administrator Privileges: user administrators ---------------------------- Number of privileges added 1 ----------------------------
Ajoutez les membres requis au rôle à l'aide de la commande
ipa role-add-member
. Les types de membres autorisés sont les suivants : utilisateurs, groupes, hôtes et groupes d'hôtes.
Par exemple, pour ajouter le groupe nommé useradmins au rôle useradmin précédemment créé :$ ipa role-add-member --groups=useradmins useradmin Role name: useradmin Description: User Administrator Member groups: useradmins Privileges: user administrators ------------------------- Number of members added 1 -------------------------
28.7. Options de commande pour les rôles existants
Les variantes suivantes permettent de modifier les rôles existants en fonction des besoins :
-
Pour modifier les rôles existants, utilisez la commande
ipa role-mod
. -
Pour trouver les rôles existants, utilisez la commande
ipa role-find
. -
Pour afficher un rôle spécifique, utilisez la commande
ipa role-show
. -
Pour retirer un membre du rôle, utilisez la commande
ipa role-remove-member
. -
La commande
ipa role-remove-privilege
supprime un ou plusieurs privilèges d'un rôle. -
La commande
ipa role-del
supprime complètement un rôle.
Ressources supplémentaires
-
Voir la page de manuel
ipa
-
Voir la commande
ipa help
.
Chapitre 29. Gestion des contrôles d'accès basés sur les rôles à l'aide de l'interface Web IdM
Ce chapitre présente le contrôle d'accès basé sur les rôles dans la gestion des identités (IdM) et décrit les opérations suivantes dans l'interface web (Web UI) :
29.1. Contrôle d'accès basé sur les rôles dans l'IdM
Le contrôle d'accès basé sur les rôles (RBAC) dans l'IdM accorde un type d'autorité très différent aux utilisateurs par rapport aux contrôles d'accès en libre-service et par délégation.
Le contrôle d'accès basé sur les rôles se compose de trois parties :
- Permissions accorder le droit d'effectuer une tâche spécifique telle que l'ajout ou la suppression d'utilisateurs, la modification d'un groupe, l'activation de l'accès en lecture, etc.
- Privileges combiner les autorisations, par exemple toutes les autorisations nécessaires pour ajouter un nouvel utilisateur.
- Roles accorder un ensemble de privilèges à des utilisateurs, des groupes d'utilisateurs, des hôtes ou des groupes d'hôtes.
29.1.1. Permissions dans l'IdM
Les autorisations sont l'unité de niveau le plus bas du contrôle d'accès basé sur les rôles. Elles définissent les opérations ainsi que les entrées LDAP auxquelles ces opérations s'appliquent. Comparables à des blocs de construction, les autorisations peuvent être attribuées à autant de privilèges que nécessaire.
Une ou plusieurs adresses rights définissent les opérations autorisées :
-
write
-
read
-
search
-
compare
-
add
-
delete
-
all
Ces opérations s'appliquent à trois sites de base targets:
-
subtree
: un nom de domaine (DN) ; la sous-arborescence sous ce DN -
target filter
un filtre LDAP -
target
: DN avec des caractères génériques possibles pour spécifier les entrées
En outre, les options de commodité suivantes définissent le(s) attribut(s) correspondant(s) :
-
type
: un type d'objet (utilisateur, groupe, etc.) ; définitsubtree
ettarget filter
-
memberof
: membres d'un groupe ; fixe untarget filter
-
targetgroup
: accorde l'accès à la modification d'un groupe spécifique (par exemple en accordant les droits de gérer l'appartenance à un groupe) ; définit une valeur detarget
Grâce aux autorisations IdM, vous pouvez contrôler quels utilisateurs ont accès à quels objets et même à quels attributs de ces objets. L'IdM vous permet d'autoriser ou de bloquer des attributs individuels ou de modifier la visibilité totale d'une fonction IdM spécifique, telle que les utilisateurs, les groupes ou sudo, pour tous les utilisateurs anonymes, tous les utilisateurs authentifiés ou seulement un certain groupe d'utilisateurs privilégiés.
Par exemple, la flexibilité de cette approche des autorisations est utile pour un administrateur qui souhaite limiter l'accès des utilisateurs ou des groupes uniquement aux sections spécifiques auxquelles ces utilisateurs ou groupes ont besoin d'accéder et rendre les autres sections complètement cachées pour eux.
Une autorisation ne peut pas contenir d'autres autorisations.
29.1.2. Permissions gérées par défaut
Les autorisations gérées sont des autorisations fournies par défaut avec l'IdM. Elles se comportent comme les autres autorisations créées par l'utilisateur, avec les différences suivantes :
- Vous ne pouvez pas les supprimer ni modifier leur nom, leur emplacement et leurs attributs cibles.
Ils ont trois séries d'attributs :
- Default l'utilisateur ne peut pas les modifier, car ils sont gérés par IdM
- Included les attributs, qui sont des attributs supplémentaires ajoutés par l'utilisateur
- Excluded les attributs, qui sont des attributs supprimés par l'utilisateur
Une autorisation gérée s'applique à tous les attributs qui figurent dans les ensembles d'attributs par défaut et inclus, mais pas dans l'ensemble exclu.
Bien que vous ne puissiez pas supprimer une autorisation gérée, le fait de définir son type de liaison sur autorisation et de supprimer l'autorisation gérée de tous les privilèges la désactive effectivement.
Les noms de toutes les autorisations gérées commencent par System:
, par exemple System: Add Sudo rule
ou System: Modify Services
. Les versions antérieures de l'IdM utilisaient un schéma différent pour les autorisations par défaut. Par exemple, l'utilisateur ne pouvait pas les supprimer et ne pouvait les attribuer qu'à des privilèges. La plupart de ces autorisations par défaut ont été transformées en autorisations gérées, mais les autorisations suivantes utilisent toujours le schéma précédent :
- Ajouter une tâche de reconstruction de l'adhésion automatique
- Ajouter des sous-enregistrements de configuration
- Ajouter des accords de réplication
- Certificat Supprimer la retenue
- Obtenir l'état des certificats de l'autorité de certification
- Plage de lecture de l'ADN
- Modifier la portée de l'ADN
- Lire la configuration des gestionnaires PassSync
- Modifier la configuration des gestionnaires PassSync
- Lire les accords de réplication
- Modifier les accords de réplication
- Supprimer les accords de réplication
- Lire la configuration de la base de données LDBM
- Demande de certificat
- Demande de certificat ignorant les listes de contrôle de l'autorité de certification
- Demander des certificats à un autre hôte
- Récupérer des certificats auprès de l'autorité de certification
- Révoquer le certificat
- Écriture de la configuration de l'IPA
Si vous tentez de modifier une autorisation gérée à partir de la ligne de commande, le système ne vous permet pas de changer les attributs que vous ne pouvez pas modifier, la commande échoue. Si vous tentez de modifier une autorisation gérée à partir de l'interface Web, les attributs que vous ne pouvez pas modifier sont désactivés.
29.1.3. Privilèges dans l'IdM
Un privilège est un groupe de permissions applicables à un rôle.
Alors qu'une autorisation donne le droit d'effectuer une seule opération, certaines tâches de l'IdM nécessitent plusieurs autorisations pour être menées à bien. Par conséquent, un privilège combine les différentes autorisations requises pour effectuer une tâche spécifique.
Par exemple, la création d'un compte pour un nouvel utilisateur IdM nécessite les autorisations suivantes :
- Création d'une nouvelle entrée utilisateur
- Réinitialisation du mot de passe d'un utilisateur
- Ajout du nouvel utilisateur au groupe d'utilisateurs IPA par défaut
La combinaison de ces trois tâches de bas niveau en une tâche de plus haut niveau sous la forme d'un privilège personnalisé nommé, par exemple, Add User facilite la gestion des rôles par l'administrateur du système. L'IdM contient déjà plusieurs privilèges par défaut. Outre les utilisateurs et les groupes d'utilisateurs, des privilèges sont également attribués aux hôtes et aux groupes d'hôtes, ainsi qu'aux services de réseau. Cette pratique permet un contrôle fin des opérations effectuées par un ensemble d'utilisateurs sur un ensemble d'hôtes utilisant des services de réseau spécifiques.
Un privilège ne peut pas contenir d'autres privilèges.
29.1.4. Rôles dans l'IdM
Un rôle est une liste de privilèges que les utilisateurs spécifiés pour ce rôle possèdent.
En effet, les autorisations permettent d'effectuer certaines tâches de bas niveau (créer une entrée utilisateur, ajouter une entrée à un groupe, etc.), tandis que les privilèges combinent une ou plusieurs de ces autorisations nécessaires à une tâche de plus haut niveau (comme la création d'un nouvel utilisateur dans un groupe donné). Les rôles regroupent les privilèges selon les besoins : par exemple, un administrateur d'utilisateurs peut ajouter, modifier et supprimer des utilisateurs.
Les rôles sont utilisés pour classer les actions autorisées. Ils ne sont pas utilisés comme outil pour mettre en œuvre la séparation des privilèges ou pour se protéger contre l'escalade des privilèges.
Les rôles ne peuvent pas contenir d'autres rôles.
29.1.5. Rôles prédéfinis dans la gestion de l'identité
Red Hat Identity Management fournit la gamme suivante de rôles prédéfinis :
Tableau 29.1. Rôles prédéfinis dans la gestion des identités
Rôle | Privilège | Description |
---|---|---|
Administrateur des inscriptions | Inscription au programme d'accueil | Responsable de l'inscription du client ou de l'hôte |
helpdesk | Modifier les utilisateurs et réinitialiser les mots de passe, Modifier l'appartenance à un groupe | Effectuer des tâches simples d'administration des utilisateurs |
Spécialiste de la sécurité informatique | Administrateurs Netgroups, Administrateur HBAC, Administrateur Sudo | Responsable de la gestion de la politique de sécurité telle que les contrôles d'accès basés sur l'hôte, les règles sudo |
Spécialiste des technologies de l'information | Administrateurs d'hôtes, administrateurs de groupes d'hôtes, administrateurs de services, administrateurs de montages automatiques | Responsable de la gestion des hôtes |
Architecte de sécurité | Administrateur de la délégation, Administrateurs de la réplication, Configuration de l'IPA en écriture, Administrateur de la politique des mots de passe | Responsable de la gestion de l'environnement de gestion des identités, de la création de trusts et d'accords de réplication |
Administrateur des utilisateurs | Administrateurs d'utilisateurs, administrateurs de groupes, administrateurs d'utilisateurs de scène | Responsable de la création des utilisateurs et des groupes |
29.2. Gestion des autorisations dans l'interface Web IdM
Cette section décrit comment gérer les autorisations dans la gestion des identités (IdM) à l'aide de l'interface web (IdM Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
Pour ajouter une nouvelle autorisation, ouvrez le sous-menu Role-Based Access Control dans l'onglet IPA Server et sélectionnez Permissions:
La liste des autorisations s'ouvre : Cliquez sur le bouton Add en haut de la liste des autorisations :
Le formulaire Add Permission s'ouvre. Spécifiez le nom de la nouvelle autorisation et définissez ses propriétés en conséquence :
Sélectionnez le type de règle de liaison approprié :
- permission est le type d'autorisation par défaut, accordant l'accès par le biais de privilèges et de rôles
- all spécifie que l'autorisation s'applique à tous les utilisateurs authentifiés
anonymous spécifie que l'autorisation s'applique à tous les utilisateurs, y compris les utilisateurs non authentifiés
NoteIl n'est pas possible d'ajouter aux privilèges des autorisations dont le type de règle de liaison n'est pas par défaut. Il n'est pas non plus possible de définir une autorisation déjà présente dans un privilège avec un type de règle de liaison autre que celui par défaut.
- Choisissez les droits à accorder avec cette permission dans Granted rights.
Définir la méthode d'identification des entrées cibles pour l'autorisation :
- Type spécifie un type d'entrée, tel que l'utilisateur, l'hôte ou le service. Si vous choisissez une valeur pour le paramètre Type, une liste de tous les attributs possibles qui seront accessibles via cet ACI pour ce type d'entrée apparaît sous Effective Attributes. La définition de Type attribue à Subtree et Target DN l'une des valeurs prédéfinies.
-
Subtree (obligatoire) spécifie une entrée de sous-arbre ; chaque entrée située sous cette entrée de sous-arbre est alors ciblée. Fournissez une entrée de sous-arbre existante, car Subtree n'accepte pas les caractères génériques ou les noms de domaine (DN) inexistants. Par exemple :
cn=automount,dc=example,dc=com
-
Extra target filter utilise un filtre LDAP pour identifier les entrées auxquelles l'autorisation s'applique. Le filtre peut être n'importe quel filtre LDAP valide, par exemple :
(!(objectclass=posixgroup))
L'IdM vérifie automatiquement la validité du filtre donné. Si vous saisissez un filtre non valide, l'IdM vous en avertit lorsque vous tentez d'enregistrer l'autorisation. -
Target DN spécifie le nom de domaine (DN) et accepte les caractères génériques. Par exemple :
uid=*,cn=users,cn=accounts,dc=com
- Member of group définit le filtre cible pour les membres du groupe donné. Après avoir spécifié les paramètres du filtre et cliqué sur Add, l'IdM valide le filtre. Si tous les paramètres de permission sont corrects, l'IdM effectuera la recherche. Si certains des paramètres de permission sont incorrects, l'IdM affichera un message vous informant des paramètres incorrects.
Ajouter des attributs à l'autorisation :
- Si vous avez défini Type, choisissez Effective attributes dans la liste des attributs ACI disponibles.
Si vous n'avez pas utilisé Type, ajoutez les attributs manuellement en les écrivant dans le champ Effective attributes. Ajoutez un seul attribut à la fois ; pour ajouter plusieurs attributs, cliquez sur Add pour ajouter un autre champ de saisie.
ImportantSi vous ne définissez aucun attribut pour la permission, celle-ci inclut tous les attributs par défaut.
Terminez l'ajout des autorisations à l'aide des boutons Add au bas du formulaire :
- Cliquez sur le bouton Add pour enregistrer l'autorisation et revenir à la liste des autorisations.
- Vous pouvez également enregistrer l'autorisation et continuer à ajouter des autorisations supplémentaires dans le même formulaire en cliquant sur le bouton Add and Add another
- Le bouton Add and Edit vous permet d'enregistrer et de continuer à modifier l'autorisation nouvellement créée.
- Optional. Vous pouvez également modifier les propriétés d'une autorisation existante en cliquant sur son nom dans la liste des autorisations pour afficher la page Permission settings.
Optional. Si vous devez supprimer une autorisation existante, cliquez sur le bouton Delete après avoir coché la case située à côté de son nom dans la liste, pour afficher la boîte de dialogue Remove permissions.
NoteLes opérations sur les autorisations gérées par défaut sont limitées : les attributs que vous ne pouvez pas modifier sont désactivés dans l'interface Web IdM et vous ne pouvez pas supprimer complètement les autorisations gérées.
Toutefois, vous pouvez désactiver efficacement une autorisation gérée dont le type de liaison est défini comme une autorisation, en supprimant l'autorisation gérée de tous les privilèges.
Par exemple, pour permettre à ceux qui ont la permission d'écrire l'attribut membre dans le groupe des ingénieurs (afin qu'ils puissent ajouter ou supprimer des membres)
29.3. Gestion des privilèges dans l'interface Web de l'IdM
Cette section décrit comment gérer les privilèges dans IdM à l'aide de l'interface web (IdM Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
- Les autorisations existantes. Pour plus de détails sur les autorisations, voir Gérer les autorisations dans l'interface Web IdM.
Procédure
Pour ajouter un nouveau privilège, ouvrez le sous-menu Role-Based Access Control dans l'onglet IPA Server et sélectionnez Privileges:
La liste des privilèges s'ouvre. Cliquez sur le bouton Add en haut de la liste des privilèges :
Le formulaire Add Privilege s'ouvre. Saisissez le nom et une description du privilège :
- Cliquez sur le bouton Add and Edit pour enregistrer le nouveau privilège et passer à la page de configuration des privilèges pour ajouter des autorisations.
- Modifiez les propriétés des privilèges en cliquant sur le nom du privilège dans la liste des privilèges. La page de configuration des privilèges s'ouvre.
L'onglet Permissions affiche une liste des autorisations incluses dans le privilège sélectionné. Cliquez sur le bouton Add en haut de la liste pour ajouter des autorisations au privilège :
Cochez la case en regard du nom de chaque autorisation à ajouter et utilisez le bouton > pour déplacer les autorisations dans la colonne Prospective:
- Confirmez en cliquant sur le bouton Add.
- Optional. Si vous devez supprimer des autorisations, cliquez sur le bouton Delete après avoir coché la case située à côté de l'autorisation concernée : la boîte de dialogue Remove privileges from permissions s'ouvre.
- Optional. Si vous devez supprimer un privilège existant, cliquez sur le bouton Delete après avoir coché la case située à côté de son nom dans la liste : la boîte de dialogue Remove privileges s'ouvre.
29.4. Gestion des rôles dans l'interface Web IdM
Cette section décrit comment gérer les rôles dans la gestion des identités (IdM) à l'aide de l'interface web (IdM Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou le rôle User Administrator.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
- Privilèges existants. Pour plus d'informations sur les privilèges, voir Gestion des privilèges dans l'interface Web IdM.
Procédure
Pour ajouter un nouveau rôle, ouvrez le sous-menu Role-Based Access Control dans l'onglet IPA Server et sélectionnez Roles:
La liste des rôles s'ouvre. Cliquez sur le bouton Add en haut de la liste des instructions de contrôle d'accès basées sur les rôles.
Le formulaire Add Role s'ouvre. Saisissez le nom du rôle et une description :
- Cliquez sur le bouton Add and Edit pour enregistrer le nouveau rôle et accéder à la page de configuration des rôles pour ajouter des privilèges et des utilisateurs.
- Modifiez les propriétés des rôles en cliquant sur le nom du rôle dans la liste des rôles. La page de configuration des rôles s'ouvre.
Ajoutez des membres en utilisant les onglets Users, Users Groups, Hosts, Host Groups ou Services, en cliquant sur le bouton Add en haut de la ou des listes concernées.
Dans la fenêtre qui s'ouvre, sélectionnez les membres de gauche et utilisez le bouton > pour les déplacer dans la colonne Prospective.
En haut de l'onglet Privileges, cliquez sur Add.
Sélectionnez les privilèges sur la gauche et utilisez le bouton > pour les déplacer dans la colonne Prospective.
- Cliquez sur le bouton Add pour enregistrer.
- Optional. Si vous devez supprimer des privilèges ou des membres d'un rôle, cliquez sur le bouton Delete après avoir coché la case située à côté du nom de l'entité à supprimer. Une boîte de dialogue s'ouvre.
- Optional. Si vous devez supprimer un rôle existant, cliquez sur le bouton Delete après avoir coché la case située à côté de son nom dans la liste, pour afficher la boîte de dialogue Remove roles.
Chapitre 30. Préparation de l'environnement pour la gestion de l'IdM à l'aide des playbooks Ansible
En tant qu'administrateur système gérant la gestion des identités (IdM), lorsque vous travaillez avec Red Hat Ansible Engine, il est recommandé de procéder comme suit :
- Créez un sous-répertoire dédié aux playbooks Ansible dans votre répertoire personnel, par exemple ~/MyPlaybooks.
-
Copiez et adaptez les exemples de playbooks Ansible des répertoires et sous-répertoires
/usr/share/doc/ansible-freeipa/*
et/usr/share/doc/rhel-system-roles/*
dans votre répertoire ~/MyPlaybooks. - Incluez votre fichier d'inventaire dans votre répertoire ~/MyPlaybooks.
Grâce à cette pratique, vous pouvez retrouver tous vos playbooks en un seul endroit et vous pouvez exécuter vos playbooks sans invoquer les privilèges de l'administrateur.
Vous n'avez besoin que des privilèges root
sur les nœuds gérés pour exécuter les rôles ipaserver
, ipareplica
, ipaclient
et ipabackup
ansible-freeipa
. Ces rôles nécessitent un accès privilégié aux répertoires et au gestionnaire de paquets logiciels dnf
.
Cette section décrit comment créer le répertoire ~/MyPlaybooks et le configurer de manière à ce que vous puissiez l'utiliser pour stocker et exécuter des playbooks Ansible.
Conditions préalables
- Vous avez installé un serveur IdM sur vos nœuds gérés, server.idm.example.com et replica.idm.example.com.
- Vous avez configuré le DNS et le réseau pour pouvoir vous connecter aux nœuds gérés, server.idm.example.com et replica.idm.example.comdirectement à partir du nœud de contrôle.
-
Vous connaissez le mot de passe de l'IdM
admin
.
Procédure
Créez un répertoire pour votre configuration Ansible et vos playbooks dans votre répertoire personnel :
$ mkdir ~/MyPlaybooks/
Allez dans le répertoire ~/MyPlaybooks/:
$ cd ~/MyPlaybooks
Créez le fichier ~/MyPlaybooks/ansible.cfg avec le contenu suivant :
[defaults] inventory = /home/your_username/MyPlaybooks/inventory [privilege_escalation] become=True
Créez le fichier ~/MyPlaybooks/inventory avec le contenu suivant :
[eu] server.idm.example.com [us] replica.idm.example.com [ipaserver:children] eu us
Cette configuration définit deux groupes d'hôtes, eu et us, pour les hôtes de ces sites. En outre, cette configuration définit le groupe d'hôtes ipaserver, qui contient tous les hôtes des groupes eu et us.
[Facultatif] Créez une clé publique et une clé privée SSH. Pour simplifier l'accès dans votre environnement de test, ne définissez pas de mot de passe pour la clé privée :
$ ssh-keygen
Copiez la clé publique SSH dans le compte IdM
admin
sur chaque nœud géré :$ ssh-copy-id admin@server.idm.example.com $ ssh-copy-id admin@replica.idm.example.com
Ces commandes nécessitent la saisie du mot de passe IdM
admin
.
Ressources supplémentaires
Chapitre 31. Utiliser les playbooks Ansible pour gérer le contrôle d'accès basé sur les rôles dans IdM
Le contrôle d'accès basé sur les rôles (RBAC) est un mécanisme de contrôle d'accès neutre défini autour des rôles et des privilèges. Les composants du contrôle d'accès basé sur les rôles dans la gestion de l'identité (IdM) sont les rôles, les privilèges et les permissions :
- Permissions accorder le droit d'effectuer une tâche spécifique telle que l'ajout ou la suppression d'utilisateurs, la modification d'un groupe, l'activation de l'accès en lecture, etc.
- Privileges combiner les autorisations, par exemple toutes les autorisations nécessaires pour ajouter un nouvel utilisateur.
- Roles accorder un ensemble de privilèges à des utilisateurs, des groupes d'utilisateurs, des hôtes ou des groupes d'hôtes.
Dans les grandes entreprises en particulier, l'utilisation de RBAC peut aider à créer un système hiérarchique d'administrateurs avec leurs domaines de responsabilité individuels.
Ce chapitre décrit les opérations suivantes effectuées lors de la gestion de RBAC à l'aide des playbooks Ansible :
- Utiliser Ansible pour s'assurer qu'un rôle IdM RBAC avec des privilèges est présent
- Utiliser Ansible pour s'assurer qu'un rôle IdM RBAC est absent
- Utiliser Ansible pour s'assurer qu'un groupe d'utilisateurs est assigné à un rôle IdM RBAC
- Utiliser Ansible pour s'assurer que des utilisateurs spécifiques ne sont pas affectés à un rôle IdM RBAC
- Utiliser Ansible pour s'assurer qu'un service est membre d'un rôle IdM RBAC
- Utiliser Ansible pour s'assurer qu'un hôte est membre d'un rôle IdM RBAC
- Utiliser Ansible pour s'assurer qu'un groupe d'hôtes est membre d'un rôle IdM RBAC
31.1. Permissions dans l'IdM
Les autorisations sont l'unité de niveau le plus bas du contrôle d'accès basé sur les rôles. Elles définissent les opérations ainsi que les entrées LDAP auxquelles ces opérations s'appliquent. Comparables à des blocs de construction, les autorisations peuvent être attribuées à autant de privilèges que nécessaire.
Une ou plusieurs adresses rights définissent les opérations autorisées :
-
write
-
read
-
search
-
compare
-
add
-
delete
-
all
Ces opérations s'appliquent à trois sites de base targets:
-
subtree
: un nom de domaine (DN) ; la sous-arborescence sous ce DN -
target filter
un filtre LDAP -
target
: DN avec des caractères génériques possibles pour spécifier les entrées
En outre, les options de commodité suivantes définissent le(s) attribut(s) correspondant(s) :
-
type
: un type d'objet (utilisateur, groupe, etc.) ; définitsubtree
ettarget filter
-
memberof
: membres d'un groupe ; fixe untarget filter
-
targetgroup
: accorde l'accès à la modification d'un groupe spécifique (par exemple en accordant les droits de gérer l'appartenance à un groupe) ; définit une valeur detarget
Grâce aux autorisations IdM, vous pouvez contrôler quels utilisateurs ont accès à quels objets et même à quels attributs de ces objets. L'IdM vous permet d'autoriser ou de bloquer des attributs individuels ou de modifier la visibilité totale d'une fonction IdM spécifique, telle que les utilisateurs, les groupes ou sudo, pour tous les utilisateurs anonymes, tous les utilisateurs authentifiés ou seulement un certain groupe d'utilisateurs privilégiés.
Par exemple, la flexibilité de cette approche des autorisations est utile pour un administrateur qui souhaite limiter l'accès des utilisateurs ou des groupes uniquement aux sections spécifiques auxquelles ces utilisateurs ou groupes ont besoin d'accéder et rendre les autres sections complètement cachées pour eux.
Une autorisation ne peut pas contenir d'autres autorisations.
31.2. Permissions gérées par défaut
Les autorisations gérées sont des autorisations fournies par défaut avec l'IdM. Elles se comportent comme les autres autorisations créées par l'utilisateur, avec les différences suivantes :
- Vous ne pouvez pas les supprimer ni modifier leur nom, leur emplacement et leurs attributs cibles.
Ils ont trois séries d'attributs :
- Default l'utilisateur ne peut pas les modifier, car ils sont gérés par IdM
- Included les attributs, qui sont des attributs supplémentaires ajoutés par l'utilisateur
- Excluded les attributs, qui sont des attributs supprimés par l'utilisateur
Une autorisation gérée s'applique à tous les attributs qui figurent dans les ensembles d'attributs par défaut et inclus, mais pas dans l'ensemble exclu.
Bien que vous ne puissiez pas supprimer une autorisation gérée, le fait de définir son type de liaison sur autorisation et de supprimer l'autorisation gérée de tous les privilèges la désactive effectivement.
Les noms de toutes les autorisations gérées commencent par System:
, par exemple System: Add Sudo rule
ou System: Modify Services
. Les versions antérieures de l'IdM utilisaient un schéma différent pour les autorisations par défaut. Par exemple, l'utilisateur ne pouvait pas les supprimer et ne pouvait les attribuer qu'à des privilèges. La plupart de ces autorisations par défaut ont été transformées en autorisations gérées, mais les autorisations suivantes utilisent toujours le schéma précédent :
- Ajouter une tâche de reconstruction de l'adhésion automatique
- Ajouter des sous-enregistrements de configuration
- Ajouter des accords de réplication
- Certificat Supprimer la retenue
- Obtenir l'état des certificats de l'autorité de certification
- Plage de lecture de l'ADN
- Modifier la portée de l'ADN
- Lire la configuration des gestionnaires PassSync
- Modifier la configuration des gestionnaires PassSync
- Lire les accords de réplication
- Modifier les accords de réplication
- Supprimer les accords de réplication
- Lire la configuration de la base de données LDBM
- Demande de certificat
- Demande de certificat ignorant les listes de contrôle de l'autorité de certification
- Demander des certificats à un autre hôte
- Récupérer des certificats auprès de l'autorité de certification
- Révoquer le certificat
- Écriture de la configuration de l'IPA
Si vous tentez de modifier une autorisation gérée à partir de la ligne de commande, le système ne vous permet pas de changer les attributs que vous ne pouvez pas modifier, la commande échoue. Si vous tentez de modifier une autorisation gérée à partir de l'interface Web, les attributs que vous ne pouvez pas modifier sont désactivés.
31.3. Privilèges dans l'IdM
Un privilège est un groupe de permissions applicables à un rôle.
Alors qu'une autorisation donne le droit d'effectuer une seule opération, certaines tâches de l'IdM nécessitent plusieurs autorisations pour être menées à bien. Par conséquent, un privilège combine les différentes autorisations requises pour effectuer une tâche spécifique.
Par exemple, la création d'un compte pour un nouvel utilisateur IdM nécessite les autorisations suivantes :
- Création d'une nouvelle entrée utilisateur
- Réinitialisation du mot de passe d'un utilisateur
- Ajout du nouvel utilisateur au groupe d'utilisateurs IPA par défaut
La combinaison de ces trois tâches de bas niveau en une tâche de plus haut niveau sous la forme d'un privilège personnalisé nommé, par exemple, Add User facilite la gestion des rôles par l'administrateur du système. L'IdM contient déjà plusieurs privilèges par défaut. Outre les utilisateurs et les groupes d'utilisateurs, des privilèges sont également attribués aux hôtes et aux groupes d'hôtes, ainsi qu'aux services de réseau. Cette pratique permet un contrôle fin des opérations effectuées par un ensemble d'utilisateurs sur un ensemble d'hôtes utilisant des services de réseau spécifiques.
Un privilège ne peut pas contenir d'autres privilèges.
31.4. Rôles dans l'IdM
Un rôle est une liste de privilèges que les utilisateurs spécifiés pour ce rôle possèdent.
En effet, les autorisations permettent d'effectuer certaines tâches de bas niveau (créer une entrée utilisateur, ajouter une entrée à un groupe, etc.), tandis que les privilèges combinent une ou plusieurs de ces autorisations nécessaires à une tâche de plus haut niveau (comme la création d'un nouvel utilisateur dans un groupe donné). Les rôles regroupent les privilèges selon les besoins : par exemple, un administrateur d'utilisateurs peut ajouter, modifier et supprimer des utilisateurs.
Les rôles sont utilisés pour classer les actions autorisées. Ils ne sont pas utilisés comme outil pour mettre en œuvre la séparation des privilèges ou pour se protéger contre l'escalade des privilèges.
Les rôles ne peuvent pas contenir d'autres rôles.
31.5. Rôles prédéfinis dans la gestion de l'identité
Red Hat Identity Management fournit la gamme suivante de rôles prédéfinis :
Tableau 31.1. Rôles prédéfinis dans la gestion des identités
Rôle | Privilège | Description |
---|---|---|
Administrateur des inscriptions | Inscription au programme d'accueil | Responsable de l'inscription du client ou de l'hôte |
helpdesk | Modifier les utilisateurs et réinitialiser les mots de passe, Modifier l'appartenance à un groupe | Effectuer des tâches simples d'administration des utilisateurs |
Spécialiste de la sécurité informatique | Administrateurs Netgroups, Administrateur HBAC, Administrateur Sudo | Responsable de la gestion de la politique de sécurité telle que les contrôles d'accès basés sur l'hôte, les règles sudo |
Spécialiste des technologies de l'information | Administrateurs d'hôtes, administrateurs de groupes d'hôtes, administrateurs de services, administrateurs de montages automatiques | Responsable de la gestion des hôtes |
Architecte de sécurité | Administrateur de la délégation, Administrateurs de la réplication, Configuration de l'IPA en écriture, Administrateur de la politique des mots de passe | Responsable de la gestion de l'environnement de gestion des identités, de la création de trusts et d'accords de réplication |
Administrateur des utilisateurs | Administrateurs d'utilisateurs, administrateurs de groupes, administrateurs d'utilisateurs de scène | Responsable de la création des utilisateurs et des groupes |
31.6. Utiliser Ansible pour s'assurer qu'un rôle IdM RBAC avec des privilèges est présent
Pour exercer un contrôle plus granulaire sur l'accès basé sur les rôles (RBAC) aux ressources dans la gestion des identités (IdM) que les rôles par défaut, créez un rôle personnalisé.
La procédure suivante décrit comment utiliser un playbook Ansible pour définir les privilèges d'un nouveau rôle personnalisé IdM et assurer sa présence. Dans l'exemple, le nouveau rôle user_and_host_administrator contient une combinaison unique des privilèges suivants qui sont présents dans IdM par défaut :
-
Group Administrators
-
User Administrators
-
Stage User Administrators
-
Group Administrators
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
.
Procédure
Naviguez jusqu'au répertoire ~/<MyPlaybooks>/ répertoire :
$ cd ~/<MyPlaybooks>/
Faites une copie du fichier
role-member-user-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/role/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/role/role-member-user-present.yml role-member-user-present-copy.yml
-
Ouvrez le fichier
role-member-user-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
iparole
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom du nouveau rôle. -
Définissez la liste
privilege
avec les noms des privilèges IdM que vous souhaitez inclure dans le nouveau rôle. -
Si vous le souhaitez, définissez la variable
user
avec le nom de l'utilisateur auquel vous souhaitez attribuer le nouveau rôle. -
Si vous le souhaitez, attribuez à la variable
group
le nom du groupe auquel vous souhaitez attribuer le nouveau rôle.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage IPA role with members. hosts: ipaserver become: yes gather_facts: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - iparole: ipaadmin_password: "{{ ipaadmin_password }}" name: user_and_host_administrator user: idm_user01 group: idm_group01 privilege: - Group Administrators - User Administrators - Stage User Administrators - Group Administrators
-
Définissez 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 ~/<MyPlaybooks>/inventory role-member-user-present-copy.yml
Ressources supplémentaires
- Voir Chiffrer du contenu avec Ansible Vault.
- Voir Rôles dans IdM.
-
Voir le fichier
README-role
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/iparole
.
31.7. Utiliser Ansible pour s'assurer qu'un rôle IdM RBAC est absent
En tant qu'administrateur système gérant le contrôle d'accès basé sur les rôles (RBAC) dans la gestion des identités (IdM), vous pouvez vouloir garantir l'absence d'un rôle obsolète afin qu'aucun administrateur ne l'attribue accidentellement à un utilisateur.
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer de l'absence d'un rôle. L'exemple ci-dessous décrit comment s'assurer que le rôle personnalisé user_and_host_administrator n'existe pas dans IdM.
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
.
Procédure
Naviguez jusqu'au répertoire ~/<MyPlaybooks>/ répertoire :
$ cd ~/<MyPlaybooks>/
Faites une copie du fichier
role-is-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/role/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/role/role-is-absent.yml role-is-absent-copy.yml
-
Ouvrez le fichier
role-is-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
iparole
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom du rôle. -
Assurez-vous que la variable
state
est définie surabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage IPA role with members. hosts: ipaserver become: yes gather_facts: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - iparole: ipaadmin_password: "{{ ipaadmin_password }}" name: user_and_host_administrator state: absent
-
Définissez 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 ~/<MyPlaybooks>/inventory role-is-absent-copy.yml
Ressources supplémentaires
- Voir Chiffrer du contenu avec Ansible Vault.
- Voir Rôles dans IdM.
-
Voir le fichier Markdown de
README-role
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/iparole
.
31.8. Utiliser Ansible pour s'assurer qu'un groupe d'utilisateurs est assigné à un rôle IdM RBAC
En tant qu'administrateur système gérant le contrôle d'accès basé sur les rôles (RBAC) dans la gestion des identités (IdM), vous pouvez vouloir attribuer un rôle à un groupe spécifique d'utilisateurs, par exemple les administrateurs juniors.
L'exemple suivant décrit comment utiliser un playbook Ansible pour s'assurer que le rôle IdM RBAC helpdesk est attribué à junior_sysadmins.
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
.
Procédure
Naviguez jusqu'au répertoire ~/<MyPlaybooks>/ répertoire :
$ cd ~/<MyPlaybooks>/
Faites une copie du fichier
role-member-group-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/role/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/role/role-member-group-present.yml role-member-group-present-copy.yml
-
Ouvrez le fichier
role-member-group-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
iparole
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom du rôle que vous souhaitez attribuer. -
Attribuez à la variable
group
le nom du groupe. -
Fixer la variable
action
àmember
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage IPA role with members. hosts: ipaserver become: yes gather_facts: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - iparole: ipaadmin_password: "{{ ipaadmin_password }}" name: helpdesk group: junior_sysadmins action: member
-
Définissez 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 ~/<MyPlaybooks>/inventory role-member-group-present-copy.yml
Ressources supplémentaires
- Voir Chiffrer du contenu avec Ansible Vault.
- Voir Rôles dans IdM.
-
Voir le fichier Markdown de
README-role
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/iparole
.
31.9. Utiliser Ansible pour s'assurer que des utilisateurs spécifiques ne sont pas affectés à un rôle IdM RBAC
En tant qu'administrateur système gérant le contrôle d'accès basé sur les rôles (RBAC) dans la gestion des identités (IdM), vous voudrez peut-être vous assurer qu'un rôle RBAC n'est pas attribué à des utilisateurs spécifiques après qu'ils ont, par exemple, changé de poste au sein de l'entreprise.
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer que les utilisateurs nommés user_01 et user_02 ne sont pas affectés au rôle helpdesk.
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
.
Procédure
Naviguez jusqu'au répertoire ~/<MyPlaybooks>/ répertoire :
$ cd ~/<MyPlaybooks>/
Faites une copie du fichier
role-member-user-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/role/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/role/role-member-user-absent.yml role-member-user-absent-copy.yml
-
Ouvrez le fichier
role-member-user-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
iparole
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom du rôle que vous souhaitez attribuer. -
Définissez la liste
user
avec les noms des utilisateurs. -
Fixer la variable
action
àmember
. -
Fixer la variable
state
àabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage IPA role with members. hosts: ipaserver become: yes gather_facts: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - iparole: ipaadmin_password: "{{ ipaadmin_password }}" name: helpdesk user - user_01 - user_02 action: member state: absent
-
Définissez 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 ~/<MyPlaybooks>/inventory role-member-user-absent-copy.yml
Ressources supplémentaires
- Voir Chiffrer du contenu avec Ansible Vault.
- Voir Rôles dans IdM.
-
Voir le fichier Markdown de
README-role
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/iparole
.
31.10. Utiliser Ansible pour s'assurer qu'un service est membre d'un rôle IdM RBAC
En tant qu'administrateur système gérant le contrôle d'accès basé sur les rôles (RBAC) dans la gestion des identités (IdM), vous pouvez vouloir vous assurer qu'un service spécifique inscrit dans l'IdM est membre d'un rôle particulier. L'exemple suivant décrit comment s'assurer que le rôle personnalisé web_administrator peut gérer le service HTTP
qui s'exécute sur le serveur client01.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
.
- Le rôle web_administrator existe dans IdM.
- Le service HTTP/client01.idm.example.com@IDM.EXAMPLE.COM existe dans IdM.
Procédure
Naviguez jusqu'au répertoire ~/<MyPlaybooks>/ répertoire :
$ cd ~/<MyPlaybooks>/
Faites une copie du fichier
role-member-service-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/role/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/role/role-member-service-present-absent.yml role-member-service-present-copy.yml
-
Ouvrez le fichier
role-member-service-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
iparole
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom du rôle que vous souhaitez attribuer. -
Définissez la liste
service
avec le nom du service. -
Fixer la variable
action
àmember
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage IPA role with members. hosts: ipaserver become: yes gather_facts: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - iparole: ipaadmin_password: "{{ ipaadmin_password }}" name: web_administrator service: - HTTP/client01.idm.example.com action: member
-
Définissez 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 ~/<MyPlaybooks>/inventory role-member-service-present-copy.yml
Ressources supplémentaires
- Voir Chiffrer du contenu avec Ansible Vault.
- Voir Rôles dans IdM.
-
Voir le fichier Markdown de
README-role
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/iparole
.
31.11. Utiliser Ansible pour s'assurer qu'un hôte est membre d'un rôle IdM RBAC
En tant qu'administrateur système gérant le contrôle d'accès basé sur les rôles dans la gestion des identités (IdM), vous pouvez vouloir vous assurer qu'un hôte ou un groupe d'hôtes spécifique est associé à un rôle spécifique. L'exemple suivant décrit comment s'assurer que le rôle personnalisé web_administrator peut gérer l'hôte IdM client01.idm.example.com sur lequel le service HTTP
est exécuté.
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
.
- Le rôle web_administrator existe dans IdM.
- L'hôte client01.idm.example.com existe dans IdM.
Procédure
Naviguez jusqu'au répertoire ~/<MyPlaybooks>/ répertoire :
$ cd ~/<MyPlaybooks>/
Faites une copie du fichier
role-member-host-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/role/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/role/role-member-host-present.yml role-member-host-present-copy.yml
-
Ouvrez le fichier
role-member-host-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
iparole
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom du rôle que vous souhaitez attribuer. -
Définissez la liste
host
avec le nom de l'hôte.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage IPA role with members. hosts: ipaserver become: yes gather_facts: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - iparole: ipaadmin_password: "{{ ipaadmin_password }}" name: web_administrator host: - client01.idm.example.com action: member
-
Définissez 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 ~/<MyPlaybooks>/inventory role-member-host-present-copy.yml
Ressources supplémentaires
- Voir Chiffrer du contenu avec Ansible Vault.
- Voir Rôles dans IdM.
-
Voir le fichier Markdown de
README-role
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/iparole
.
31.12. Utiliser Ansible pour s'assurer qu'un groupe d'hôtes est membre d'un rôle IdM RBAC
En tant qu'administrateur système gérant le contrôle d'accès basé sur les rôles dans la gestion des identités (IdM), vous pouvez vouloir vous assurer qu'un hôte ou un groupe d'hôtes spécifique est associé à un rôle spécifique. L'exemple suivant décrit comment s'assurer que le rôle personnalisé web_administrator peut gérer le groupe d'hôtes IdM web_servers sur lequel le service HTTP
est exécuté.
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
.
- Le rôle web_administrator existe dans IdM.
- Le groupe d'hôtes web_servers existe dans IdM.
Procédure
Naviguez jusqu'au répertoire ~/<MyPlaybooks>/ répertoire :
$ cd ~/<MyPlaybooks>/
Faites une copie du fichier
role-member-hostgroup-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/role/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/role/role-member-hostgroup-present.yml role-member-hostgroup-present-copy.yml
-
Ouvrez le fichier
role-member-hostgroup-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
iparole
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définissez la variable
name
avec le nom du rôle que vous souhaitez attribuer. -
Définissez la liste
hostgroup
avec le nom du groupe d'hôtes.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage IPA role with members. hosts: ipaserver become: yes gather_facts: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - iparole: ipaadmin_password: "{{ ipaadmin_password }}" name: web_administrator hostgroup: - web_servers action: member
-
Définissez 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 ~/<MyPlaybooks>/inventory role-member-hostgroup-present-copy.yml
Ressources supplémentaires
- Voir Chiffrer du contenu avec Ansible Vault.
- Voir Rôles dans IdM.
-
Voir le fichier Markdown de
README-role
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/iparole
.
Chapitre 32. Utiliser les playbooks Ansible pour gérer les privilèges RBAC
Le contrôle d'accès basé sur les rôles (RBAC) est un mécanisme de contrôle d'accès neutre défini autour de rôles, de privilèges et de permissions. Dans les grandes entreprises en particulier, l'utilisation du RBAC peut aider à créer un système hiérarchique d'administrateurs avec leurs domaines de responsabilité individuels.
Ce chapitre décrit les opérations suivantes pour utiliser les playbooks Ansible afin de gérer les privilèges RBAC dans la gestion des identités (IdM) :
- Utiliser Ansible pour s'assurer qu'un privilège RBAC personnalisé est présent
- Utiliser Ansible pour s'assurer que les permissions des membres sont présentes dans un privilège IdM RBAC personnalisé
- Utiliser Ansible pour s'assurer qu'un privilège IdM RBAC n'inclut pas une permission
- Utiliser Ansible pour renommer un privilège IdM RBAC personnalisé
- Utiliser Ansible pour s'assurer qu'un privilège IdM RBAC est absent
Conditions préalables
- Vous comprenez les concepts et les principes de RBAC.
32.1. Utiliser Ansible pour s'assurer qu'un privilège IdM RBAC personnalisé est présent
Pour disposer d'un privilège personnalisé pleinement fonctionnel dans le contrôle d'accès basé sur les rôles (RBAC) de la gestion des identités (IdM), vous devez procéder par étapes :
- Créer un privilège sans aucune autorisation.
- Ajoutez les autorisations de votre choix au privilège.
La procédure suivante décrit comment créer un privilège vide à l'aide d'une séquence Ansible afin de pouvoir y ajouter ultérieurement des autorisations. L'exemple décrit comment créer un privilège nommé full_host_administration destiné à combiner toutes les autorisations IdM liées à l'administration des hôtes.
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
privilege-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/privilege/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/privilege/privilege-present.yml privilege-present-copy.yml
-
Ouvrez le fichier
privilege-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaprivilege
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom du nouveau privilège, full_host_administration. -
En option, décrivez le privilège à l'aide de la variable
description
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Privilege present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure privilege full_host_administration is present ipaprivilege: ipaadmin_password: "{{ ipaadmin_password }}" name: full_host_administration description: This privilege combines all IdM permissions related to host administration
-
Définissez 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 inventory privilege-present-copy.yml
32.2. Utiliser Ansible pour s'assurer que les permissions des membres sont présentes dans un privilège IdM RBAC personnalisé
Pour disposer d'un privilège personnalisé pleinement fonctionnel dans le contrôle d'accès basé sur les rôles (RBAC) de la gestion des identités (IdM), vous devez procéder par étapes :
- Créer un privilège sans aucune autorisation.
- Ajoutez les autorisations de votre choix au privilège.
La procédure suivante explique comment utiliser un cahier de jeu Ansible pour ajouter des autorisations à un privilège créé à l'étape précédente. L'exemple décrit comment ajouter toutes les autorisations IdM liées à l'administration des hôtes à un privilège nommé full_host_administration. Par défaut, les autorisations sont réparties entre les privilèges Host Enrollment
, Host Administrators
et Host Group Administrator
.
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
.
- Le privilège full_host_administration existe. Pour plus d'informations sur la création d'un privilège à l'aide d'Ansible, voir Utilisation d'Ansible pour garantir la présence d'un privilège IdM RBAC personnalisé.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
privilege-member-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/privilege/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/privilege/privilege-member-present.yml privilege-member-present-copy.yml
-
Ouvrez le fichier
privilege-member-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaprivilege
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom du privilège. -
Définissez la liste
permission
avec les noms des autorisations que vous souhaitez inclure dans le privilège. -
Assurez-vous que la variable
action
est fixée àmember
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Privilege member present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that permissions are present for the "full_host_administration" privilege ipaprivilege: ipaadmin_password: "{{ ipaadmin_password }}" name: full_host_administration permission: - "System: Add krbPrincipalName to a Host" - "System: Enroll a Host" - "System: Manage Host Certificates" - "System: Manage Host Enrollment Password" - "System: Manage Host Keytab" - "System: Manage Host Principals" - "Retrieve Certificates from the CA" - "Revoke Certificate" - "System: Add Hosts" - "System: Add krbPrincipalName to a Host" - "System: Enroll a Host" - "System: Manage Host Certificates" - "System: Manage Host Enrollment Password" - "System: Manage Host Keytab" - "System: Manage Host Keytab Permissions" - "System: Manage Host Principals" - "System: Manage Host SSH Public Keys" - "System: Manage Service Keytab" - "System: Manage Service Keytab Permissions" - "System: Modify Hosts" - "System: Remove Hosts" - "System: Add Hostgroups" - "System: Modify Hostgroup Membership" - "System: Modify Hostgroups" - "System: Remove Hostgroups"
-
Adaptez le site
- 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 inventory privilege-member-present-copy.yml
32.3. Utiliser Ansible pour s'assurer qu'un privilège IdM RBAC n'inclut pas une permission
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles de l'IdM.
La procédure suivante décrit comment utiliser un livre de jeu Ansible pour supprimer une autorisation d'un privilège. L'exemple décrit comment supprimer l'autorisation Request Certificates ignoring CA ACLs
du privilège par défaut Certificate Administrators
parce que, par exemple, l'administrateur considère qu'il s'agit d'un risque de sécurité.
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
privilege-member-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/privilege/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/privilege/privilege-member-absent.yml privilege-member-absent-copy.yml
-
Ouvrez le fichier
privilege-member-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaprivilege
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom du privilège. -
Définissez la liste
permission
sur les noms des autorisations que vous souhaitez supprimer du privilège. -
Assurez-vous que la variable
action
est fixée àmember
. -
Assurez-vous que la variable
state
est fixée àabsent
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Privilege absent example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "Request Certificate ignoring CA ACLs" permission is absent from the "Certificate Administrators" privilege ipaprivilege: ipaadmin_password: "{{ ipaadmin_password }}" name: Certificate Administrators permission: - "Request Certificate ignoring CA ACLs" action: member state: absent
-
Adaptez le site
- 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 inventory privilege-member-absent-copy.yml
32.4. Utiliser Ansible pour renommer un privilège IdM RBAC personnalisé
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles de l'IdM.
La procédure suivante décrit comment renommer un privilège parce que, par exemple, vous lui avez retiré quelques autorisations. Par conséquent, le nom du privilège n'est plus exact. Dans l'exemple, l'administrateur renomme un privilège full_host_administration en limited_host_administration.
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
.
- Le privilège full_host_administration existe. Pour plus d'informations sur l'ajout d'un privilège, voir Utilisation d'Ansible pour s'assurer qu'un privilège IdM RBAC personnalisé est présent.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
privilege-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/privilege/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/privilege/privilege-present.yml rename-privilege.yml
-
Ouvrez le fichier
rename-privilege.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaprivilege
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définir la variable
name
avec le nom actuel du privilège. -
Ajoutez la variable
rename
et attribuez-lui le nouveau nom du privilège. -
Ajoutez la variable
state
et fixez-la àrenamed
.
-
Définissez la variable
Renommer le playbook lui-même, par exemple :
--- - name: Rename a privilege hosts: ipaserver
Renommez la tâche dans le playbook, par exemple :
[...] tasks: - name: Ensure the full_host_administration privilege is renamed to limited_host_administration ipaprivilege: [...]
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Rename a privilege hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure the full_host_administration privilege is renamed to limited_host_administration ipaprivilege: ipaadmin_password: "{{ ipaadmin_password }}" name: full_host_administration rename: limited_host_administration state: renamed
- 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 inventory rename-privilege.yml
32.5. Utiliser Ansible pour s'assurer qu'un privilège IdM RBAC est absent
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles de l'IdM. La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'un privilège RBAC est absent. L'exemple décrit comment s'assurer que le privilège CA administrator
est absent. Grâce à cette procédure, l'administrateur de admin
devient le seul utilisateur capable de gérer les autorités de certification dans IdM.
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
privilege-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/privilege/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/privilege/privilege-absent.yml privilege-absent-copy.yml
-
Ouvrez le fichier
privilege-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaprivilege
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom du privilège que vous souhaitez supprimer. -
Assurez-vous que la variable
state
est fixée àabsent
.
-
Définissez la variable
Renommez la tâche dans le playbook, par exemple :
[...] tasks: - name: Ensure privilege "CA administrator" is absent ipaprivilege: [...]
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Privilege absent example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure privilege "CA administrator" is absent ipaprivilege: ipaadmin_password: "{{ ipaadmin_password }}" name: CA administrator state: absent
- 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 inventory privilege-absent-copy.yml
32.6. Ressources supplémentaires
- Voir les privilèges dans l'IdM.
- Voir les autorisations dans IdM.
-
Voir le fichier
README-privilege
disponible dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/ipaprivilege
.
Chapitre 33. Utiliser les playbooks Ansible pour gérer les permissions RBAC dans IdM
Le contrôle d'accès basé sur les rôles (RBAC) est un mécanisme de contrôle d'accès neutre défini autour de rôles, de privilèges et de permissions. Dans les grandes entreprises en particulier, l'utilisation du RBAC peut aider à créer un système hiérarchique d'administrateurs avec leurs domaines de responsabilité individuels.
Ce chapitre décrit les opérations suivantes effectuées lors de la gestion des autorisations RBAC dans la gestion des identités (IdM) à l'aide des playbooks Ansible :
- Utiliser Ansible pour s'assurer qu'une permission RBAC est présente
- Utiliser Ansible pour s'assurer qu'une permission RBAC avec un attribut est présente
- Utiliser Ansible pour s'assurer qu'une permission RBAC est absente
- Utiliser Ansible pour s'assurer qu'un attribut est membre d'une permission IdM RBAC
- Utiliser Ansible pour s'assurer qu'un attribut n'est pas membre d'une permission RBAC IdM
- Utiliser Ansible pour renommer une permission IdM RBAC
Conditions préalables
- Vous comprenez les concepts et les principes de RBAC.
33.1. Utiliser Ansible pour s'assurer qu'une permission RBAC est présente
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles (RBAC) de l'IdM.
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une permission est présente dans IdM afin qu'elle puisse être ajoutée à un privilège. L'exemple décrit comment garantir l'état cible suivant :
-
L'autorisation
MyPermission
existe. -
L'autorisation
MyPermission
ne peut être appliquée qu'aux hôtes. Un utilisateur bénéficiant d'un privilège contenant l'autorisation peut effectuer toutes les opérations suivantes sur une entrée :
- Écrire
- Lire
- Recherche
- Comparer
- Ajouter
- Supprimer
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
permission-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/permission/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/permission/permission-present.yml permission-present-copy.yml
-
Ouvrez le fichier
permission-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipapermission
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de l'autorisation. -
Fixer la variable
object_type
àhost
. -
Fixer la variable
right
àall
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Permission present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "MyPermission" permission is present ipapermission: ipaadmin_password: "{{ ipaadmin_password }}" name: MyPermission object_type: host right: all
-
Adaptez le site
- 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 inventory permission-present-copy.yml
33.2. Utiliser Ansible pour s'assurer qu'une permission RBAC avec un attribut est présente
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles (RBAC) de l'IdM.
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une permission est présente dans IdM afin qu'elle puisse être ajoutée à un privilège. L'exemple décrit comment garantir l'état cible suivant :
- L'autorisation MyPermission existe.
- L'autorisation MyPermission ne peut être utilisée que pour ajouter des hôtes.
Un utilisateur bénéficiant d'un privilège contenant l'autorisation peut effectuer toutes les opérations suivantes sur une entrée d'hôte :
- Écrire
- Lire
- Recherche
- Comparer
- Ajouter
- Supprimer
-
Les entrées d'hôte créées par un utilisateur bénéficiant d'un privilège contenant l'autorisation MyPermission peuvent avoir une valeur
description
.
Le type d'attribut que vous pouvez spécifier lors de la création ou de la modification d'une autorisation n'est pas limité par le schéma LDAP de l'IdM. Toutefois, le fait de spécifier, par exemple, attrs: car_licence
si object_type
est host
plus tard entraîne le message d'erreur ipa: ERROR: attribute "car-license" not allowed
lorsque vous essayez d'exercer l'autorisation et d'ajouter une valeur de permis de conduire spécifique à un hôte.
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
permission-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/permission/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/permission/permission-present.yml permission-present-with-attribute.yml
-
Ouvrez le fichier
permission-present-with-attribute.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipapermission
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de l'autorisation. -
Fixer la variable
object_type
àhost
. -
Fixer la variable
right
àall
. -
Fixer la variable
attrs
àdescription
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Permission present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "MyPermission" permission is present with an attribute ipapermission: ipaadmin_password: "{{ ipaadmin_password }}" name: MyPermission object_type: host right: all attrs: description
-
Adaptez le site
- 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 inventory permission-present-with-attribute.yml
Ressources supplémentaires
- Voir Schéma des utilisateurs et des groupes dans Linux Domain Identity, Authentication and Policy Guide dans RHEL 7.
33.3. Utiliser Ansible pour s'assurer qu'une permission RBAC est absente
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles (RBAC) de l'IdM.
La procédure suivante décrit comment utiliser un manuel de jeu Ansible pour s'assurer qu'une permission est absente dans IdM et qu'elle ne peut pas être ajoutée à un privilège.
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
.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
permission-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/permission/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/permission/permission-absent.yml permission-absent-copy.yml
-
Ouvrez le fichier
permission-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipapermission
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de l'autorisation.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Permission absent example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "MyPermission" permission is absent ipapermission: ipaadmin_password: "{{ ipaadmin_password }}" name: MyPermission state: absent
-
Adaptez le site
- 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 inventory permission-absent-copy.yml
33.4. Utiliser Ansible pour s'assurer qu'un attribut est membre d'une permission IdM RBAC
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles (RBAC) de l'IdM.
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'un attribut est membre d'une permission RBAC dans IdM. Par conséquent, un utilisateur disposant de la permission peut créer des entrées dotées de l'attribut.
L'exemple décrit comment garantir que les entrées d'hôte créées par un utilisateur disposant d'un privilège contenant l'autorisation MyPermission peuvent avoir les valeurs gecos
et description
.
Le type d'attribut que vous pouvez spécifier lors de la création ou de la modification d'une autorisation n'est pas limité par le schéma LDAP de l'IdM. Toutefois, le fait de spécifier, par exemple, attrs: car_licence
si object_type
est host
plus tard entraîne le message d'erreur ipa: ERROR: attribute "car-license" not allowed
lorsque vous essayez d'exercer l'autorisation et d'ajouter une valeur de permis de conduire spécifique à un hôte.
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
.
- L'autorisation MyPermission existe.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
permission-member-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/permission/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/permission/permission-member-present.yml permission-member-present-copy.yml
-
Ouvrez le fichier
permission-member-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipapermission
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de l'autorisation. -
Attribuer la liste
attrs
aux variablesdescription
etgecos
. -
Assurez-vous que la variable
action
est définie surmember
.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Permission member present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "gecos" and "description" attributes are present in "MyPermission" ipapermission: ipaadmin_password: "{{ ipaadmin_password }}" name: MyPermission attrs: - description - gecos action: member
-
Adaptez le site
- 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 inventory permission-member-present-copy.yml
33.5. Utiliser Ansible pour s'assurer qu'un attribut n'est pas membre d'une permission RBAC IdM
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles (RBAC) de l'IdM.
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'un attribut n'est pas membre d'une permission RBAC dans IdM. Par conséquent, lorsqu'un utilisateur disposant de cette permission crée une entrée dans IdM LDAP, cette entrée ne peut pas avoir de valeur associée à l'attribut.
L'exemple décrit comment assurer l'état suivant de la cible :
- L'autorisation MyPermission existe.
-
Les entrées d'hôte créées par un utilisateur disposant d'un privilège contenant l'autorisation MyPermission ne peuvent pas avoir l'attribut
description
.
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
.
- L'autorisation MyPermission existe.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
permission-member-absent.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/permission/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/permission/permission-member-absent.yml permission-member-absent-copy.yml
-
Ouvrez le fichier
permission-member-absent-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipapermission
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de l'autorisation. -
Fixer la variable
attrs
àdescription
. -
Fixer la variable
action
àmember
. -
Assurez-vous que la variable
state
est définie comme suitabsent
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Permission absent example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that an attribute is not a member of "MyPermission" ipapermission: ipaadmin_password: "{{ ipaadmin_password }}" name: MyPermission attrs: description action: member state: absent
-
Adaptez le site
- 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 inventory permission-member-absent-copy.yml
33.6. Utiliser Ansible pour renommer une permission IdM RBAC
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles de l'IdM.
La procédure suivante décrit comment utiliser un playbook Ansible pour renommer une autorisation. L'exemple décrit comment renommer MyPermission en MyNewPermission.
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
.
- Le site MyPermission existe dans l'IdM.
- Le site MyNewPermission n'existe pas dans l'IdM.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
permission-renamed.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/permission/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/permission/permission-renamed.yml permission-renamed-copy.yml
-
Ouvrez le fichier
permission-renamed-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipapermission
task :-
Adaptez le site
name
de la tâche pour qu'il corresponde à votre cas d'utilisation. -
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de l'autorisation.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Permission present example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Rename the "MyPermission" permission ipapermission: ipaadmin_password: "{{ ipaadmin_password }}" name: MyPermission rename: MyNewPermission state: renamed
-
Adaptez le site
- 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 inventory permission-renamed-copy.yml
33.7. Ressources supplémentaires
- Voir les autorisations dans IdM.
- Voir les privilèges dans l'IdM.
-
Voir le fichier
README-permission
disponible dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/ipapermission
.
Chapitre 34. Utilisation d'une vue ID pour remplacer une valeur d'attribut utilisateur sur un client IdM
Si un utilisateur de Identity Management (IdM) souhaite remplacer certains de ses attributs d'utilisateur ou de groupe stockés dans le serveur LDAP IdM, par exemple le nom de connexion, le répertoire personnel, le certificat utilisé pour l'authentification ou les clés SSH
, vous pouvez, en tant qu'administrateur IdM, redéfinir ces valeurs pour un client IdM spécifique, en utilisant les vues IdM ID. Par exemple, vous pouvez spécifier un répertoire personnel différent pour un utilisateur sur le client IdM que l'utilisateur utilise le plus souvent pour se connecter à IdM.
Ce chapitre explique comment redéfinir une valeur d'attribut POSIX associée à un utilisateur IdM sur un hôte inscrit à IdM en tant que client. Plus précisément, ce chapitre explique comment redéfinir le nom de connexion et le répertoire personnel de l'utilisateur.
Ce chapitre comprend les sections suivantes :
- Vues de l'ID
- Impact négatif potentiel des opinions de l'ID sur les performances du SSSD
- Attributs qu'une vue d'identification peut remplacer
- Obtenir de l'aide pour les commandes de la vue ID
- Utilisation d'une vue ID pour remplacer le nom de connexion d'un utilisateur IdM sur un hôte spécifique
- Modification d'une vue IdM ID
- Ajout d'une vue ID pour remplacer le répertoire personnel d'un utilisateur IdM sur un client IdM
- Application d'une vue ID à un groupe d'hôtes IdM
34.1. Vues de l'ID
Dans le cadre de la gestion des identités (IdM), une vue ID est une vue côté client IdM qui spécifie les informations suivantes :
- Nouvelles valeurs pour les attributs d'utilisateur ou de groupe POSIX définis de manière centralisée
- L'hôte ou les hôtes du client sur lesquels les nouvelles valeurs s'appliquent.
Une vue ID contient une ou plusieurs dérogations. Une dérogation est un remplacement spécifique d'une valeur d'attribut POSIX définie de manière centralisée.
Vous ne pouvez définir une vue ID pour un client IdM que de manière centralisée sur les serveurs IdM. Vous ne pouvez pas configurer localement des dérogations côté client pour un client IdM.
Par exemple, vous pouvez utiliser les vues d'identification pour atteindre les objectifs suivants :
-
Définir des valeurs d'attribut différentes pour des environnements différents. Par exemple, vous pouvez permettre à l'administrateur IdM ou à un autre utilisateur IdM d'avoir différents répertoires personnels sur différents clients IdM : vous pouvez configurer
/home/encrypted/username
comme répertoire personnel de cet utilisateur sur un client IdM et/dropbox/username
sur un autre client. L'utilisation des vues ID dans cette situation est pratique, car sinon, par exemple, la modification defallback_homedir
,override_homedir
ou d'autres variables de répertoire personnel dans le fichier/etc/sssd/sssd.conf
du client affecterait tous les utilisateurs. Voir Ajouter une vue ID pour remplacer le répertoire personnel d'un utilisateur IdM sur un client IdM pour un exemple de procédure. - Remplacer une valeur d'attribut générée précédemment par une valeur différente, par exemple remplacer l'UID d'un utilisateur. Cette possibilité peut s'avérer utile lorsque vous souhaitez effectuer une modification à l'échelle du système qui serait autrement difficile à réaliser du côté de LDAP, par exemple faire de 1009 l'UID d'un utilisateur IdM. Les plages d'ID IdM, qui sont utilisées pour générer l'UID d'un utilisateur IdM, ne commencent jamais aussi bas que 1000 ou même 10000. S'il existe une raison pour qu'un utilisateur IdM se fasse passer pour un utilisateur local avec l'UID 1009 sur tous les clients IdM, vous pouvez utiliser les vues ID pour remplacer l'UID de cet utilisateur IdM qui a été généré lorsque l'utilisateur a été créé dans l'IdM.
Vous ne pouvez appliquer les vues ID qu'aux clients IdM, et non aux serveurs IdM.
Ressources supplémentaires
34.2. Impact négatif potentiel des opinions de l'ID sur les performances du SSSD
Lorsque vous définissez une vue ID, IdM place la valeur de remplacement souhaitée dans le cache SSSD (System Security Services Daemon) du serveur IdM. Le SSSD fonctionnant sur un client IdM récupère alors la valeur de remplacement dans le cache du serveur.
L'application d'une vue ID peut avoir un impact négatif sur les performances du System Security Services Daemon (SSSD), car certaines optimisations et vues ID ne peuvent pas être exécutées en même temps. Par exemple, les vues ID empêchent SSSD d'optimiser le processus de recherche des groupes sur le serveur :
- Avec les vues ID, SSSD doit vérifier chaque membre de la liste renvoyée des noms des membres du groupe si le nom du groupe est remplacé.
- Sans les vues d'identification, SSSD ne peut collecter les noms d'utilisateur qu'à partir de l'attribut membre de l'objet groupe.
Cet effet négatif est particulièrement visible lorsque le cache SSSD est vide ou après avoir effacé le cache, ce qui rend toutes les entrées invalides.
34.3. Attributs qu'une vue d'identification peut remplacer
Les vues ID consistent en des substitutions d'ID d'utilisateur et de groupe. Les dérogations définissent les nouvelles valeurs des attributs POSIX.
Les substitutions d'ID d'utilisateur et de groupe peuvent définir de nouvelles valeurs pour les attributs POSIX suivants :
- Attributs de l'utilisateur
-
Nom d'utilisateur (
uid
) -
Entrée GECOS (
gecos
) -
Numéro UID (
uidNumber
) -
Numéro GID (
gidNumber
) -
Shell de connexion (
loginShell
) -
Répertoire personnel (
homeDirectory
) -
Clés publiques SSH (
ipaSshPubkey
) -
Certificat (
userCertificate
)
-
Nom d'utilisateur (
- Attributs du groupe
-
Nom du groupe (
cn
) -
Numéro GID du groupe (
gidNumber
)
-
Nom du groupe (
34.4. Obtenir de l'aide pour les commandes de la vue ID
Vous pouvez obtenir de l'aide pour les commandes impliquant des vues d'identification de la gestion d'identité (IdM) sur l'interface de ligne de commande (CLI) de l'IdM.
Conditions préalables
- Vous avez obtenu un ticket Kerberos pour un utilisateur IdM.
Procédure
Pour afficher toutes les commandes utilisées pour gérer les vues d'identification et les dérogations :
$ ipa help idviews ID Views Manage ID Views IPA allows to override certain properties of users and groups[...] [...] Topic commands: idoverridegroup-add Add a new Group ID override idoverridegroup-del Delete a Group ID override [...]
Pour afficher l'aide détaillée d'une commande particulière, ajoutez l'option
--help
à la commande :$ ipa idview-add --help Usage: ipa [global-options] idview-add NAME [options] Add a new ID View. Options: -h, --help show this help message and exit --desc=STR Description [...]
34.5. Utilisation d'une vue ID pour remplacer le nom de connexion d'un utilisateur IdM sur un hôte spécifique
Cette section décrit comment, en tant qu'administrateur du système de gestion des identités (IdM), vous pouvez créer une vue ID pour un client IdM spécifique qui remplace une valeur d'attribut POSIX associée à un utilisateur IdM spécifique. La procédure utilise l'exemple d'une vue ID qui permet à un utilisateur IdM nommé idm_user de se connecter à un client IdM nommé host1 en utilisant le nom de connexion user_1234.
Conditions préalables
- Vous êtes connecté en tant qu'administrateur IdM.
Procédure
Créez une nouvelle vue d'identification. Par exemple, pour créer une vue ID nommée
example_for_host1
:$ ipa idview-add example_for_host1 --------------------------- Added ID View "example_for_host1" --------------------------- ID View Name: example_for_host1
Ajoutez une dérogation pour l'utilisateur à la vue example_for_host1 ID. Pour remplacer le login de l'utilisateur :
-
Entrez la commande
ipa idoverrideuser-add
- Ajouter le nom de la vue ID
- Ajouter le nom d'utilisateur, également appelé l'ancre
Ajouter l'option
--login
:$ ipa idoverrideuser-add example_for_host1 idm_user --login=user_1234 ----------------------------- Added User ID override "idm_user" ----------------------------- Anchor to override: idm_user User login: user_1234
Pour obtenir la liste des options disponibles, exécutez ipa idoverrideuser-add --help.
NoteLa commande
ipa idoverrideuser-add --certificate
remplace tous les certificats existants pour le compte dans la vue ID spécifiée. Pour ajouter un certificat supplémentaire, utilisez plutôt la commandeipa idoverrideuser-add-cert
:$ ipa idoverrideuser-add-cert example_for_host1 user --certificate="MIIEATCC..."
-
Entrez la commande
-
Facultatif : La commande
ipa idoverrideuser-mod
vous permet de spécifier de nouvelles valeurs d'attribut pour une dérogation utilisateur existante. Appliquer
example_for_host1
à l'hôtehost1.idm.example.com
:$ ipa idview-apply example_for_host1 --hosts=host1.idm.example.com ----------------------------- Applied ID View "example_for_host1" ----------------------------- hosts: host1.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 1 ---------------------------------------------
NoteLa commande
ipa idview-apply
accepte également l'option--hostgroups
. Cette option applique la vue ID aux hôtes qui appartiennent au groupe d'hôtes spécifié, mais n'associe pas la vue ID au groupe d'hôtes lui-même. Au lieu de cela, l'option--hostgroups
développe les membres du groupe d'hôtes spécifié et applique l'option--hosts
individuellement à chacun d'entre eux.Cela signifie que si un hôte est ajouté au groupe d'hôtes dans le futur, la vue ID ne s'applique pas au nouvel hôte.
Pour appliquer immédiatement la nouvelle configuration au système host1.idm.example.com:
Accédez au système par SSH en tant que root :
$ ssh root@host1 Password:
Effacer le cache SSSD :
root@host1 ~]# sss_cache -E
- Redémarrez le démon SSSD :
root@host1 ~]# systemctl restart sssd
Verification steps
Si vous disposez des informations d'identification de user_1234, vous pouvez les utiliser pour vous connecter à l'IdM sur host1:
SSH à host1 en utilisant user_1234 comme nom de connexion :
[root@r8server ~]# ssh user_1234@host1.idm.example.com Password: Last login: Sun Jun 21 22:34:25 2020 from 192.168.122.229 [user_1234@host1 ~]$
Affiche le répertoire de travail :
[user_1234@host1 ~]$ pwd /home/idm_user/
Par ailleurs, si vous disposez d'informations d'identification root sur host1, vous pouvez les utiliser pour vérifier la sortie de la commande
id
pour idm_user et user_1234:[root@host1 ~]# id idm_user uid=779800003(user_1234) gid=779800003(idm_user) groups=779800003(idm_user) [root@host1 ~]# user_1234 uid=779800003(user_1234) gid=779800003(idm_user) groups=779800003(idm_user)
34.6. Modification d'une vue IdM ID
Une vue ID dans Identity Management (IdM) remplace une valeur d'attribut POSIX associée à un utilisateur IdM spécifique. Cette section explique comment modifier une vue d'identification existante. Plus précisément, elle décrit comment modifier une vue ID pour permettre à l'utilisateur nommé idm_user d'utiliser le répertoire /home/user_1234/
comme répertoire personnel de l'utilisateur au lieu de /home/idm_user/
sur le client IdM host1.idm.example.com.
Conditions préalables
- Vous avez un accès root à host1.idm.example.com.
- Vous êtes connecté en tant qu'utilisateur disposant des privilèges requis, par exemple admin.
- Vous avez une vue ID configurée pour idm_user qui s'applique au client IdM host1.
Procédure
En tant que root, créez le répertoire que vous voulez que idm_user utilise sur host1.idm.example.com comme répertoire personnel de l'utilisateur :
[root@host1 /]# mkdir /home/user_1234/
Modifier la propriété du répertoire :
[root@host1 /]# chown idm_user:idm_user /home/user_1234/
Afficher la vue d'identification, y compris les hôtes auxquels la vue d'identification est actuellement appliquée. Pour afficher la vue ID nommée
example_for_host1
:$ ipa idview-show example_for_host1 --all dn: cn=example_for_host1,cn=views,cn=accounts,dc=idm,dc=example,dc=com ID View Name: example_for_host1 User object override: idm_user Hosts the view applies to: host1.idm.example.com objectclass: ipaIDView, top, nsContainer
La sortie montre que la vue ID s'applique actuellement à host1.idm.example.com.
Modifiez l'option de remplacement de l'utilisateur dans la vue example_for_host1 ID. Pour remplacer le répertoire personnel de l'utilisateur :
-
Entrez la commande
ipa idoverrideuser-add
- Ajouter le nom de la vue ID
- Ajouter le nom d'utilisateur, également appelé l'ancre
Ajouter l'option
--homedir
:$ ipa idoverrideuser-mod example_for_host1 idm_user --homedir=/home/user_1234 ----------------------------- Modified a User ID override "idm_user" ----------------------------- Anchor to override: idm_user User login: user_1234 Home directory: /home/user_1234/
Pour obtenir une liste des options disponibles, exécutez
ipa idoverrideuser-mod --help
.-
Entrez la commande
Pour appliquer immédiatement la nouvelle configuration au système host1.idm.example.com:
Accédez au système par SSH en tant que root :
$ ssh root@host1 Password:
Effacer le cache SSSD :
root@host1 ~]# sss_cache -E
- Redémarrez le démon SSSD :
root@host1 ~]# systemctl restart sssd
Verification steps
SSH
à host1 comme idm_user:[root@r8server ~]# ssh idm_user@host1.idm.example.com Password: Last login: Sun Jun 21 22:34:25 2020 from 192.168.122.229 [user_1234@host1 ~]$
Imprime le répertoire de travail :
[user_1234@host1 ~]$ pwd /home/user_1234/
Ressources supplémentaires
34.7. Ajout d'une vue ID pour remplacer le répertoire personnel d'un utilisateur IdM sur un client IdM
Une vue ID dans Identity Management (IdM) remplace une valeur d'attribut POSIX associée à un utilisateur IdM spécifique. Cette section décrit comment créer une vue ID qui s'applique à idm_user sur un client IdM nommé host1 pour permettre à l'utilisateur d'utiliser le répertoire /home/user_1234/
comme répertoire personnel de l'utilisateur au lieu de /home/idm_user/
.
Conditions préalables
- Vous avez un accès root à host1.idm.example.com.
- Vous êtes connecté en tant qu'utilisateur disposant des privilèges requis, par exemple admin.
Procédure
En tant que root, créez le répertoire que vous voulez que idm_user utilise sur host1.idm.example.com comme répertoire personnel de l'utilisateur :
[root@host1 /]# mkdir /home/user_1234/
Modifier la propriété du répertoire :
[root@host1 /]# chown idm_user:idm_user /home/user_1234/
Créez une vue d'identification. Par exemple, pour créer une vue ID nommée example_for_host1:
$ ipa idview-add example_for_host1 --------------------------- Added ID View "example_for_host1" --------------------------- ID View Name: example_for_host1
Ajoutez une dérogation pour l'utilisateur à la vue example_for_host1 ID. Pour remplacer le répertoire personnel de l'utilisateur :
-
Entrez la commande
ipa idoverrideuser-add
- Ajouter le nom de la vue ID
- Ajouter le nom d'utilisateur, également appelé l'ancre
-
Ajouter l'option
--homedir
:
$ ipa idoverrideuser-add example_for_host1 idm_user --homedir=/home/user_1234 ----------------------------- Added User ID override "idm_user" ----------------------------- Anchor to override: idm_user Home directory: /home/user_1234/
-
Entrez la commande
Appliquer
example_for_host1
à l'hôtehost1.idm.example.com
:$ ipa idview-apply example_for_host1 --hosts=host1.idm.example.com ----------------------------- Applied ID View "example_for_host1" ----------------------------- hosts: host1.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 1 ---------------------------------------------
NoteLa commande
ipa idview-apply
accepte également l'option--hostgroups
. Cette option applique la vue ID aux hôtes qui appartiennent au groupe d'hôtes spécifié, mais n'associe pas la vue ID au groupe d'hôtes lui-même. Au lieu de cela, l'option--hostgroups
développe les membres du groupe d'hôtes spécifié et applique l'option--hosts
individuellement à chacun d'entre eux.Cela signifie que si un hôte est ajouté au groupe d'hôtes dans le futur, la vue ID ne s'applique pas au nouvel hôte.
Pour appliquer immédiatement la nouvelle configuration au système host1.idm.example.com:
Accédez au système par SSH en tant que root :
$ ssh root@host1 Password:
Effacer le cache SSSD :
root@host1 ~]# sss_cache -E
- Redémarrez le démon SSSD :
root@host1 ~]# systemctl restart sssd
Verification steps
SSH
à host1 comme idm_user:[root@r8server ~]# ssh idm_user@host1.idm.example.com Password: Activate the web console with: systemctl enable --now cockpit.socket Last login: Sun Jun 21 22:34:25 2020 from 192.168.122.229 [idm_user@host1 /]$
Imprime le répertoire de travail :
[idm_user@host1 /]$ pwd /home/user_1234/
34.8. Application d'une vue ID à un groupe d'hôtes IdM
La commande ipa idview-apply
accepte l'option --hostgroups
. Cependant, l'option agit comme une opération unique qui applique la vue ID aux hôtes qui appartiennent actuellement au groupe d'hôtes spécifié, mais n'associe pas dynamiquement la vue ID au groupe d'hôtes lui-même. L'option --hostgroups
étend les membres du groupe d'hôtes spécifié et applique l'option --hosts
individuellement à chacun d'entre eux.
Si vous ajoutez ultérieurement un nouvel hôte au groupe d'hôtes, vous devez appliquer manuellement la vue ID au nouvel hôte, en utilisant la commande ipa idview-apply
avec l'option --hosts
.
De même, si vous supprimez un hôte d'un groupe d'hôtes, la vue ID est toujours affectée à l'hôte après la suppression. Pour annuler l'affectation de la vue ID de l'hôte supprimé, vous devez exécuter la commande ipa idview-unapply id_view_name --hosts=name_of_the_removed_host
pour annuler l'application de la vue ID de l'hôte supprimé.
Cette section décrit comment atteindre les objectifs suivants :
- Comment créer un groupe d'hôtes et y ajouter des hôtes.
- Comment appliquer une vue d'identification au groupe d'hôtes.
- Comment ajouter un nouvel hôte au groupe d'hôtes et appliquer la vue ID au nouvel hôte.
Conditions préalables
- Assurez-vous que la vue ID que vous souhaitez appliquer au groupe d'hôtes existe dans IdM. Par exemple, pour créer une vue ID afin de remplacer le GID d'un utilisateur AD, voir Remplacer les attributs de la vue Trust par défaut pour un utilisateur AD sur un client IdM avec une vue ID
Procédure
Créez un groupe d'hôtes et ajoutez-y des hôtes :
Créez un groupe d'hôtes. Par exemple, pour créer un groupe d'hôtes nommé baltimore:
[root@server ~]# ipa hostgroup-add --desc="Baltimore hosts" baltimore --------------------------- Added hostgroup "baltimore" --------------------------- Host-group: baltimore Description: Baltimore hosts
Ajoutez des hôtes au groupe d'hôtes. Par exemple, pour ajouter les hôtes host102 et host103 au groupe d'hôtes baltimore:
[root@server ~]# ipa hostgroup-add-member --hosts={host102,host103} baltimore Host-group: baltimore Description: Baltimore hosts Member hosts: host102.idm.example.com, host103.idm.example.com ------------------------- Number of members added 2 -------------------------
Appliquer une vue ID aux hôtes du groupe d'hôtes. Par exemple, pour appliquer la vue d'identification example_for_host1 au groupe d'hôtes baltimore:
[root@server ~]# ipa idview-apply --hostgroups=baltimore ID View Name: example_for_host1 ----------------------------------------- Applied ID View "example_for_host1" ----------------------------------------- hosts: host102.idm.example.com, host103.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 2 ---------------------------------------------
Ajoutez un nouvel hôte au groupe d'hôtes et appliquez la vue ID au nouvel hôte :
Ajoutez un nouvel hôte au groupe d'hôtes. Par exemple, pour ajouter l'hôte somehost.idm.example.com au groupe d'hôtes baltimore:
[root@server ~]# ipa hostgroup-add-member --hosts=somehost.idm.example.com baltimore Host-group: baltimore Description: Baltimore hosts Member hosts: host102.idm.example.com, host103.idm.example.com,somehost.idm.example.com ------------------------- Number of members added 1 -------------------------
En option, affichez les informations sur la vue d'identification. Par exemple, pour afficher les détails de la vue d'identification example_for_host1:
[root@server ~]# ipa idview-show example_for_host1 --all dn: cn=example_for_host1,cn=views,cn=accounts,dc=idm,dc=example,dc=com ID View Name: example_for_host1 [...] Hosts the view applies to: host102.idm.example.com, host103.idm.example.com objectclass: ipaIDView, top, nsContainer
La sortie montre que la vue ID n'est pas appliquée à somehost.idm.example.com, l'hôte nouvellement ajouté au groupe d'hôtes baltimore.
Appliquez la vue ID au nouvel hôte. Par exemple, pour appliquer la vue d'identification example_for_host1 à somehost.idm.example.com:
[root@server ~]# ipa idview-apply --host=somehost.idm.example.com ID View Name: example_for_host1 ----------------------------------------- Applied ID View "example_for_host1" ----------------------------------------- hosts: somehost.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 1 ---------------------------------------------
Verification steps
Affichez à nouveau les informations de la vue ID :
[root@server ~]# ipa idview-show example_for_host1 --all dn: cn=example_for_host1,cn=views,cn=accounts,dc=idm,dc=example,dc=com ID View Name: example_for_host1 [...] Hosts the view applies to: host102.idm.example.com, host103.idm.example.com, somehost.idm.example.com objectclass: ipaIDView, top, nsContainer
La sortie montre que la vue ID est maintenant appliquée à somehost.idm.example.com, l'hôte nouvellement ajouté au groupe d'hôtes baltimore.
34.9. Migration des domaines NIS vers la gestion des identités
Vous pouvez utiliser les vues ID pour définir des UID et des GID spécifiques aux hôtes existants afin d'éviter de modifier les autorisations des fichiers et des répertoires lors de la migration des domaines NIS vers IdM.
Conditions préalables
-
Vous vous êtes authentifié en tant qu'administrateur à l'aide de la commande
kinit admin
.
Procédure
Ajouter des utilisateurs et des groupes dans le domaine IdM.
-
Créez des utilisateurs à l'aide de la commande
ipa user-add
. Pour plus d'informations, voir : Ajouter des utilisateurs à IdM. -
Créez des groupes à l'aide de la commande
ipa group-add
. Pour plus d'informations, voir : Ajouter des groupes à IdM.
-
Créez des utilisateurs à l'aide de la commande
Remplacer les identifiants générés par l'IdM lors de la création de l'utilisateur :
-
Créez une nouvelle vue ID à l'aide de la commande
ipa idview-add
. Pour plus d'informations, voir : Obtenir de l'aide pour les commandes de vues d'identification. -
Ajoutez des dérogations d'ID pour les utilisateurs et les groupes à la vue ID en utilisant respectivement
ipa idoverrideuser-add
etidoverridegroup-add
.
-
Créez une nouvelle vue ID à l'aide de la commande
-
Attribuer la vue ID aux hôtes spécifiques en utilisant la commande
ipa idview-apply
. - Déclasser les domaines NIS.
Vérification
Pour vérifier si tous les utilisateurs et groupes ont été correctement ajoutés à la vue ID, utilisez la commande
ipa idview-show
.$ ipa idview-show example-view ID View Name: example-view User object overrides: example-user1 Group object overrides: example-group
Chapitre 35. Utilisation des vues d'identification pour les utilisateurs d'Active Directory
Vous pouvez utiliser les vues ID pour spécifier de nouvelles valeurs pour les attributs POSIX de vos utilisateurs Active Directory (AD) dans un environnement IdM-AD Trust.
Par défaut, IdM applique le site Default Trust View à tous les utilisateurs AD. Vous pouvez configurer des vues ID supplémentaires sur des clients IdM individuels pour ajuster davantage les attributs POSIX que des utilisateurs spécifiques reçoivent.
35.1. Fonctionnement de la vue fiduciaire par défaut
L'adresse Default Trust View est la vue d'identification par défaut qui est toujours appliquée aux utilisateurs et aux groupes AD dans les configurations basées sur la confiance. Elle est créée automatiquement lorsque vous établissez la confiance à l'aide de la commande ipa-adtrust-install
et ne peut pas être supprimée.
La vue de confiance par défaut n'accepte les dérogations que pour les utilisateurs et les groupes AD, et non pour les utilisateurs et les groupes IdM.
La vue Trust par défaut permet de définir des attributs POSIX personnalisés pour les utilisateurs et les groupes AD, ce qui permet de remplacer les valeurs définies dans AD.
Tableau 35.1. Application de la vue de confiance par défaut
Valeurs en DA | Vue fiduciaire par défaut | Résultat | |
---|---|---|---|
Login | ad_user | ad_user | ad_user |
UID | 111 | 222 | 222 |
GID | 111 | (sans valeur) | 111 |
Vous pouvez également configurer des vues d'identification supplémentaires pour remplacer la vue de confiance par défaut sur les clients IdM. IdM applique les valeurs de la vue d'identification spécifique à l'hôte en plus de la vue de confiance par défaut :
- Si un attribut est défini dans la vue ID spécifique à l'hôte, l'IdM applique la valeur de cette vue ID.
- Si un attribut n'est pas défini dans la vue d'identification spécifique à l'hôte, l'IdM applique la valeur de la vue de confiance par défaut.
Tableau 35.2. Application d'une vue d'identification spécifique à l'hôte au-dessus de la vue de confiance par défaut
Valeurs en DA | Vue fiduciaire par défaut | Vue de l'ID spécifique à l'hôte | Résultat | |
---|---|---|---|---|
Login | ad_user | ad_user | (sans valeur) | ad_user |
UID | 111 | 222 | 333 | 333 |
GID | 111 | (sans valeur) | 333 | 333 |
Vous ne pouvez appliquer des vues d'identification spécifiques à l'hôte que pour remplacer la vue de confiance par défaut sur les clients IdM. Les serveurs IdM et les répliques appliquent toujours les valeurs de la vue de confiance par défaut.
Ressources supplémentaires
35.2. Définition d'attributs globaux pour un utilisateur AD en modifiant la vue de confiance par défaut
Si vous souhaitez remplacer un attribut POSIX pour un utilisateur Active Directory (AD) dans l'ensemble de votre déploiement IdM, modifiez l'entrée de cet utilisateur dans la vue de confiance par défaut. Cette procédure définit le GID de l'utilisateur AD ad_user@ad.example.com
à 732000006.
Conditions préalables
- Vous vous êtes authentifié en tant qu'administrateur IdM.
- Un groupe doit exister avec le GID ou vous devez définir le GID dans un remplacement d'ID pour un groupe.
Procédure
En tant qu'administrateur IdM, créez un remplacement d'ID pour l'utilisateur AD dans la vue de confiance par défaut qui modifie le numéro GID en 732000006 :
# ipa idoverrideuser-add 'Default Trust View' ad_user@ad.example.com --gidnumber=732000006
Effacez l'entrée de l'utilisateur
ad_user@ad.example.com
du cache SSSD sur tous les serveurs et clients IdM. Cela supprime les données périmées et permet d'appliquer la nouvelle valeur de remplacement.# sssctl cache-expire -u ad_user@ad.example.com
Vérification
Récupérer les informations relatives à l'utilisateur
ad_user@ad.example.com
pour vérifier que le GID reflète la valeur mise à jour.# id ad_user@ad.example.com uid=702801456(ad_user@ad.example.com) gid=732000006(ad_admins) groups=732000006(ad_admins),702800513(domain users@ad.example.com)
35.3. Remplacement des attributs de la vue de confiance par défaut pour un utilisateur AD sur un client IdM avec une vue ID
Il se peut que vous souhaitiez remplacer certains attributs POSIX de la vue de confiance par défaut pour un utilisateur Active Directory (AD). Par exemple, vous pouvez avoir besoin de donner à un utilisateur AD un GID différent sur un client IdM particulier. Vous pouvez utiliser une vue ID pour remplacer une valeur de la vue de confiance par défaut pour un utilisateur AD et l'appliquer à un seul hôte. Cette procédure explique comment définir le GID de l'utilisateur AD ad_user@ad.example.com
sur le client IdM host1.idm.example.com
à 732001337.
Conditions préalables
-
Vous disposez d'un accès root au client
host1.idm.example.com
IdM. -
Vous êtes connecté en tant qu'utilisateur disposant des privilèges requis, par exemple l'utilisateur
admin
.
Procédure
Créez une vue d'identification. Par exemple, pour créer une vue ID nommée example_for_host1:
$ ipa idview-add example_for_host1 --------------------------- Added ID View "example_for_host1" --------------------------- ID View Name: example_for_host1
Ajoutez une dérogation pour l'utilisateur à la vue example_for_host1 ID. Pour remplacer le GID de l'utilisateur :
-
Entrez la commande
ipa idoverrideuser-add
- Ajouter le nom de la vue ID
- Ajouter le nom d'utilisateur, également appelé l'ancre
-
Ajouter l'option
--gidnumber=
:
$ ipa idoverrideuser-add example_for_host1 ad_user@ad.example.com --gidnumber=732001337 ----------------------------- Added User ID override "ad_user@ad.example.com" ----------------------------- Anchor to override: ad_user@ad.example.com GID: 732001337
-
Entrez la commande
Appliquer
example_for_host1
au clienthost1.idm.example.com
IdM :$ ipa idview-apply example_for_host1 --hosts=host1.idm.example.com ----------------------------- Applied ID View "example_for_host1" ----------------------------- hosts: host1.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 1 ---------------------------------------------
NoteLa commande
ipa idview-apply
accepte également l'option--hostgroups
. Cette option applique la vue ID aux hôtes qui appartiennent au groupe d'hôtes spécifié, mais n'associe pas la vue ID au groupe d'hôtes lui-même. Au lieu de cela, l'option--hostgroups
développe les membres du groupe d'hôtes spécifié et applique l'option--hosts
individuellement à chacun d'entre eux.Cela signifie que si un hôte est ajouté au groupe d'hôtes dans le futur, la vue ID ne s'applique pas au nouvel hôte.
Effacez l'entrée de l'utilisateur
ad_user@ad.example.com
du cache SSSD sur le client IdMhost1.idm.example.com
. Cela supprime les données périmées et permet d'appliquer la nouvelle valeur d'annulation.[root@host1 ~]# sssctl cache-expire -u ad_user@ad.example.com
Étapes de la vérification
SSH
à host1 comme ad_user@ad.example.com:[root@r8server ~]# ssh ad_user@ad.example.com@host1.idm.example.com
Récupérer les informations relatives à l'utilisateur
ad_user@ad.example.com
pour vérifier que le GID reflète la valeur mise à jour.[ad_user@ad.example.com@host1 ~]$ id ad_user@ad.example.com uid=702801456(ad_user@ad.example.com) gid=732001337(admins2) groups=732001337(admins2),702800513(domain users@ad.example.com)
35.4. Application d'une vue ID à un groupe d'hôtes IdM
La commande ipa idview-apply
accepte l'option --hostgroups
. Cependant, l'option agit comme une opération unique qui applique la vue ID aux hôtes qui appartiennent actuellement au groupe d'hôtes spécifié, mais n'associe pas dynamiquement la vue ID au groupe d'hôtes lui-même. L'option --hostgroups
étend les membres du groupe d'hôtes spécifié et applique l'option --hosts
individuellement à chacun d'entre eux.
Si vous ajoutez ultérieurement un nouvel hôte au groupe d'hôtes, vous devez appliquer manuellement la vue ID au nouvel hôte, en utilisant la commande ipa idview-apply
avec l'option --hosts
.
De même, si vous supprimez un hôte d'un groupe d'hôtes, la vue ID est toujours affectée à l'hôte après la suppression. Pour annuler l'affectation de la vue ID de l'hôte supprimé, vous devez exécuter la commande ipa idview-unapply id_view_name --hosts=name_of_the_removed_host
pour annuler l'application de la vue ID de l'hôte supprimé.
Cette section décrit comment atteindre les objectifs suivants :
- Comment créer un groupe d'hôtes et y ajouter des hôtes.
- Comment appliquer une vue d'identification au groupe d'hôtes.
- Comment ajouter un nouvel hôte au groupe d'hôtes et appliquer la vue ID au nouvel hôte.
Conditions préalables
- Assurez-vous que la vue ID que vous souhaitez appliquer au groupe d'hôtes existe dans IdM. Par exemple, pour créer une vue ID afin de remplacer le GID d'un utilisateur AD, voir Remplacer les attributs de la vue Trust par défaut pour un utilisateur AD sur un client IdM avec une vue ID
Procédure
Créez un groupe d'hôtes et ajoutez-y des hôtes :
Créez un groupe d'hôtes. Par exemple, pour créer un groupe d'hôtes nommé baltimore:
[root@server ~]# ipa hostgroup-add --desc="Baltimore hosts" baltimore --------------------------- Added hostgroup "baltimore" --------------------------- Host-group: baltimore Description: Baltimore hosts
Ajoutez des hôtes au groupe d'hôtes. Par exemple, pour ajouter les hôtes host102 et host103 au groupe d'hôtes baltimore:
[root@server ~]# ipa hostgroup-add-member --hosts={host102,host103} baltimore Host-group: baltimore Description: Baltimore hosts Member hosts: host102.idm.example.com, host103.idm.example.com ------------------------- Number of members added 2 -------------------------
Appliquer une vue ID aux hôtes du groupe d'hôtes. Par exemple, pour appliquer la vue d'identification example_for_host1 au groupe d'hôtes baltimore:
[root@server ~]# ipa idview-apply --hostgroups=baltimore ID View Name: example_for_host1 ----------------------------------------- Applied ID View "example_for_host1" ----------------------------------------- hosts: host102.idm.example.com, host103.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 2 ---------------------------------------------
Ajoutez un nouvel hôte au groupe d'hôtes et appliquez la vue ID au nouvel hôte :
Ajoutez un nouvel hôte au groupe d'hôtes. Par exemple, pour ajouter l'hôte somehost.idm.example.com au groupe d'hôtes baltimore:
[root@server ~]# ipa hostgroup-add-member --hosts=somehost.idm.example.com baltimore Host-group: baltimore Description: Baltimore hosts Member hosts: host102.idm.example.com, host103.idm.example.com,somehost.idm.example.com ------------------------- Number of members added 1 -------------------------
En option, affichez les informations sur la vue d'identification. Par exemple, pour afficher les détails de la vue d'identification example_for_host1:
[root@server ~]# ipa idview-show example_for_host1 --all dn: cn=example_for_host1,cn=views,cn=accounts,dc=idm,dc=example,dc=com ID View Name: example_for_host1 [...] Hosts the view applies to: host102.idm.example.com, host103.idm.example.com objectclass: ipaIDView, top, nsContainer
La sortie montre que la vue ID n'est pas appliquée à somehost.idm.example.com, l'hôte nouvellement ajouté au groupe d'hôtes baltimore.
Appliquez la vue ID au nouvel hôte. Par exemple, pour appliquer la vue d'identification example_for_host1 à somehost.idm.example.com:
[root@server ~]# ipa idview-apply --host=somehost.idm.example.com ID View Name: example_for_host1 ----------------------------------------- Applied ID View "example_for_host1" ----------------------------------------- hosts: somehost.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 1 ---------------------------------------------
Verification steps
Affichez à nouveau les informations de la vue ID :
[root@server ~]# ipa idview-show example_for_host1 --all dn: cn=example_for_host1,cn=views,cn=accounts,dc=idm,dc=example,dc=com ID View Name: example_for_host1 [...] Hosts the view applies to: host102.idm.example.com, host103.idm.example.com, somehost.idm.example.com objectclass: ipaIDView, top, nsContainer
La sortie montre que la vue ID est maintenant appliquée à somehost.idm.example.com, l'hôte nouvellement ajouté au groupe d'hôtes baltimore.
Chapitre 36. Ajustement manuel des plages d'identification
Un serveur IdM génère des numéros d'identification d'utilisateur (UID) et de groupe (GID) uniques. En créant et en attribuant différentes plages d'ID aux répliques, il s'assure également qu'elles ne génèrent jamais les mêmes numéros d'ID. Par défaut, ce processus est automatique. Toutefois, vous pouvez ajuster manuellement la plage d'ID IdM lors de l'installation du serveur IdM, ou définir manuellement la plage d'ID DNA d'un réplica.
36.1. Plages d'identification
Les numéros d'identification sont divisés en ID ranges. Le fait de conserver des plages numériques distinctes pour les serveurs et les répliques individuels élimine le risque qu'un numéro d'identification attribué à une entrée soit déjà utilisé par une autre entrée sur un autre serveur ou une autre réplique.
Notez qu'il existe deux types distincts de plages d'identification :
- L'IdM ID rangequi est attribué lors de l'installation du premier serveur. Cette plage ne peut pas être modifiée après sa création. Toutefois, vous pouvez créer une nouvelle plage d'identifiants IdM en plus de la plage originale. Pour plus d'informations, voir Attribution automatique de plages d'identif iants et Ajout d'une nouvelle plage d'identifiants IdM.
Les plages d'ID (ADN) de l Distributed Numeric Assignment (ADN), qui peuvent être modifiées par l'utilisateur. Elles doivent s'inscrire dans une plage d'identification IdM existante. Pour plus d'informations, voir Attribution manuelle de plages d'identification ADN.
Les répliques peuvent également se voir attribuer une plage d'ID ADN next. Une réplique utilise sa plage suivante lorsqu'elle n'a plus d'ID dans sa plage actuelle. Les plages suivantes ne sont pas attribuées automatiquement lorsqu'un réplica est supprimé et vous devez les attribuer manuellement.
Les plages sont mises à jour et partagées entre le serveur et les répliques par le plug-in DNA, dans le cadre de l'instance de serveur d'annuaire de back-end pour le domaine.
La définition de la gamme d'ADN est déterminée par deux attributs :
- Le prochain numéro disponible du serveur : le bas de la fourchette de l'ADN
- La taille de la plage : le nombre d'ID dans la plage d'ADN
La valeur inférieure initiale est définie lors de la configuration de l'instance du plug-in. Ensuite, le plug-in met à jour la valeur inférieure. Le fait de diviser les numéros disponibles en plages permet aux serveurs d'attribuer continuellement des numéros sans qu'ils ne se chevauchent.
36.2. Attribution automatique de plages d'identification
Plages d'IDM
Par défaut, une plage d'ID IdM est automatiquement attribuée lors de l'installation du serveur IdM. La commande ipa-server-install
sélectionne et attribue de manière aléatoire une plage de 200 000 ID sur un total de 10 000 plages possibles. La sélection d'une plage aléatoire de cette manière réduit considérablement la probabilité de conflits d'ID au cas où vous décideriez de fusionner deux domaines IdM distincts à l'avenir.
Cette plage d'identification IdM ne peut pas être modifiée après sa création. Vous ne pouvez ajuster que manuellement les plages d'ID de l'assignation numérique distribuée (ADN), à l'aide des commandes décrites dans Attribution manuelle des plages d'ID ADN. Une plage DNA correspondant à la plage IdM est automatiquement créée lors de l'installation.
Plages d'identification de l'ADN
Si un seul serveur IdM est installé, il contrôle l'ensemble de la plage d'ID ADN. Lorsque vous installez un nouveau réplica et que celui-ci demande sa propre plage d'ID ADN, la plage d'ID initiale du serveur se divise et est répartie entre le serveur et le réplica : le réplica reçoit la moitié de la plage d'ID ADN restante qui est disponible sur le serveur initial. Le serveur et la réplique utilisent ensuite leurs parties respectives de la plage d'identification initiale pour les nouvelles entrées d'utilisateurs ou de groupes. En outre, si la réplique est sur le point d'épuiser la plage d'identifiants qui lui a été attribuée et qu'il lui reste moins de 100 identifiants, elle contacte les autres serveurs disponibles pour demander une nouvelle plage d'identifiants ADN.
Lorsque vous installez un réplica, il does not reçoit immédiatement une plage d'identifiants. Un réplica reçoit une plage d'identifiants lors de la première utilisation du plug-in DNA, par exemple lorsque vous ajoutez un utilisateur pour la première fois.
Si le serveur initial cesse de fonctionner avant que le réplica ne lui demande une plage d'ID d'ADN, le réplica ne peut pas contacter le serveur pour demander la plage d'ID. La tentative d'ajout d'un nouvel utilisateur sur le réplica échoue alors. Dans ce cas, vous pouvez déterminer la plage d'identifiants attribuée au serveur désactivé et attribuer manuellement une plage d'identifiants au réplica.
36.3. Attribution manuelle de la plage d'ID IdM lors de l'installation du serveur
Vous pouvez ignorer le comportement par défaut et définir manuellement une plage d'IDM au lieu de l'attribuer de manière aléatoire.
Ne définissez pas de plages d'identifiants comprenant des valeurs UID de 1000 et inférieures ; ces valeurs sont réservées à l'usage du système. Ne définissez pas non plus une plage d'identifiants qui inclurait la valeur 0 ; le service SSSD ne gère pas la valeur d'identifiant 0.
Procédure
Vous pouvez définir manuellement la plage d'ID IdM pendant l'installation du serveur en utilisant les deux options suivantes avec
ipa-server-install
:-
--idstart
donne la valeur de départ pour les numéros UID et GID. -
--idmax
donne le nombre maximum d'UID et de GID ; par défaut, la valeur est la valeur de départ--idstart
plus 199 999.
-
Verification steps
Pour vérifier si la plage d'identifiants a été correctement attribuée, vous pouvez afficher la plage d'identifiants IdM attribuée à l'aide de la commande
ipa idrange-find
:# ipa idrange-find --------------- 1 range matched --------------- Range name: IDM.EXAMPLE.COM_id_range First Posix ID of the range: 882200000 Number of IDs in the range: 200000 Range type: local domain range ---------------------------- Number of entries returned 1 ----------------------------
36.4. Ajout d'une nouvelle plage d'IDM
Dans certains cas, vous pouvez vouloir créer une nouvelle plage d'ID IdM en plus de la plage d'origine ; par exemple, lorsqu'un réplica n'a plus d'ID et que la plage d'ID IdM d'origine est épuisée.
L'ajout d'une nouvelle plage d'ID IdM ne crée pas automatiquement de nouvelles plages d'ID ADN. Vous devez attribuer manuellement de nouvelles plages d'ID ADN aux réplicas, le cas échéant. Pour plus d'informations sur la procédure à suivre, voir Attribution manuelle de plages d'ID ADN.
Procédure
Pour créer une nouvelle plage d'ID IdM, utilisez la commande
ipa idrange-add
. Vous devez spécifier le nom de la nouvelle plage, le premier numéro d'identification de la plage et la taille de la plage :# ipa idrange-add IDM.EXAMPLE.COM_new_range --base-id=1000000 --range-size=200000 ------------------------------------------ Added ID range "IDM.EXAMPLE.COM_new_range" ------------------------------------------ Range name: IDM.EXAMPLE.COM_new_range First Posix ID of the range: 1000000 Number of IDs in the range: 200000 Range type: local domain range
Facultatif : Mettre à jour la plage d'identifiants immédiatement :
Effacer le cache du System Security Services Daemon (SSSD) :
# sss_cache -E
Redémarrez le démon SSSD :
# systemctl restart sssd
NoteSi vous n'effacez pas le cache SSSD et ne redémarrez pas le service, SSSD ne détecte la nouvelle plage d'identifiants que lorsqu'il met à jour la liste des domaines et d'autres données de configuration stockées sur le serveur IdM.
Verification steps
Vous pouvez vérifier si la nouvelle plage est correctement définie en utilisant la commande
ipa idrange-find
:# ipa idrange-find ---------------- 2 ranges matched ---------------- Range name: IDM.EXAMPLE.COM_id_range First Posix ID of the range: 882200000 Number of IDs in the range: 200000 Range type: local domain range Range name: IDM.EXAMPLE.COM_new_range First Posix ID of the range: 1000000 Number of IDs in the range: 200000 Range type: local domain range ---------------------------- Number of entries returned 2 ----------------------------
36.5. Le rôle de la sécurité et des identifiants relatifs dans les gammes d'identifiants IdM
Une plage d'identifiants de gestion d'identité (IdM) est définie par plusieurs paramètres :
- Le nom de la plage
- Le premier ID POSIX de la plage
- La taille de la plage : le nombre d'ID dans la plage
- Le premier relative identifier (RID) de l'article correspondant RID range
- Le premier RID du secondary RID range
Vous pouvez visualiser ces valeurs à l'aide de la commande ipa idrange-show
:
$ ipa idrange-show IDM.EXAMPLE.COM_id_range
Range name: IDM.EXAMPLE.COM_id_range
First Posix ID of the range: 196600000
Number of IDs in the range: 200000
First RID of the corresponding RID range: 1000
First RID of the secondary RID range: 1000000
Range type: local domain range
Identifiants de sécurité
Les données des plages d'ID du domaine local sont utilisées par le serveur IdM en interne pour attribuer des security identifiers uniques (SID) aux utilisateurs et aux groupes IdM. Les SID sont stockés dans les objets utilisateur et groupe. Le SID d'un utilisateur se compose des éléments suivants :
- Le SID du domaine
- Le relative identifier (RID) de l'utilisateur, qui est une valeur à quatre chiffres de 32 bits ajoutée au SID du domaine
Par exemple, si le SID du domaine est S-1-5-21-123-456-789 et que le RID d'un utilisateur de ce domaine est 1008, l'utilisateur a le SID S-1-5-21-123-456-789-1008.
Identifiants relatifs
Le RID lui-même est calculé de la manière suivante :
Soustrayez le premier ID POSIX de la plage de l'UID POSIX de l'utilisateur et ajoutez au résultat le premier RID de la plage RID correspondante. Par exemple, si l'UID de idmuser est 196600008, le premier POSIX ID est 196600000, et le premier RID est 1000, alors le RID de idmuser est 1008.
L'algorithme qui calcule le RID de l'utilisateur vérifie si un ID POSIX donné entre dans la plage d'ID attribuée avant de calculer un RID correspondant. Par exemple, si le premier ID est 196600000 et que la taille de la plage est 200000, l'ID POSIX 1600000 est en dehors de la plage d'ID et l'algorithme ne calcule pas de RID pour lui.
Identifiants relatifs secondaires
Dans IdM, un UID POSIX peut être identique à un GID POSIX. Cela signifie que si idmuser existe déjà avec l'UID 196600008, vous pouvez toujours créer un nouveau groupe idmgroup avec le GID 196600008.
Cependant, un SID ne peut définir qu'un seul objet, un utilisateur or un groupe. Le SID de S-1-5-21-123-456-789-1008 qui a déjà été créé pour idmuser ne peut pas être partagé avec idmgroup. Un autre SID doit être généré pour idmgroup.
L'IdM utilise un secondary relative identifier, ou RID secondaire, pour éviter les conflits de SID. Ce RID secondaire se compose des éléments suivants :
- La base secondaire du RID
- Taille de la plage ; par défaut identique à la taille de la plage de base
Dans l'exemple ci-dessus, la base du RID secondaire est fixée à 1000000. Pour calculer le RID de idmgroup nouvellement créé : soustrayez le premier ID POSIX de la plage de l'UID POSIX de l'utilisateur, et ajoutez le premier RID de la plage de RID secondaire au résultat. idmgroup se voit donc attribuer le RID de 1000008. Par conséquent, le SID de idmgroup est S-1-5-21-123-456-789-1000008.
IdM utilise le RID secondaire pour calculer un SID uniquement si un utilisateur ou un objet de groupe a été précédemment créé avec un ID POSIX défini manuellement. Dans le cas contraire, l'attribution automatique empêche d'attribuer deux fois le même ID.
Ressources supplémentaires
36.6. Utilisation d'Ansible pour ajouter une nouvelle plage d'identifiants IdM locaux
Dans certains cas, vous pouvez vouloir créer une nouvelle plage d'ID de gestion d'identité (IdM) en plus de la plage d'origine ; par exemple, lorsqu'un réplica n'a plus d'ID et que la plage d'ID IdM d'origine est épuisée. L'exemple suivant décrit comment créer une nouvelle plage d'ID IdM à l'aide d'une séquence Ansible.
L'ajout d'une nouvelle plage d'identification IdM ne crée pas automatiquement de nouvelles plages d'identification ADN. Vous devez attribuer manuellement de nouvelles plages d'ID ADN si nécessaire. Pour plus d'informations sur la manière de procéder, voir Affectation manuelle de plages d'ID ADN.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. 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
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Créez le playbook
idrange-present.yml
avec le contenu suivant :--- - name: Playbook to manage idrange hosts: ipaserver become: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure local idrange is present ipaidrange: ipaadmin_password: "{{ ipaadmin_password }}" name: new_id_range base_id: 12000000 range_size: 200000 rid_base: 1000000 secondary_rid_base: 200000000
- 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 inventory idrange-present.yml
Facultatif : Mettre à jour la plage d'identifiants immédiatement :
Effacer le cache du System Security Services Daemon (SSSD) :
# sss_cache -E
Redémarrez le démon SSSD :
# systemctl restart sssd
NoteSi vous n'effacez pas le cache SSSD et ne redémarrez pas le service, SSSD ne détecte la nouvelle plage d'identifiants que lorsqu'il met à jour la liste des domaines et d'autres données de configuration stockées sur le serveur IdM.
Verification steps
-
Vous pouvez vérifier si la nouvelle plage est correctement définie en utilisant la commande
ipa idrange-find
:
# ipa idrange-find ---------------- 2 ranges matched ---------------- Range name: IDM.EXAMPLE.COM_id_range First Posix ID of the range: 882200000 Number of IDs in the range: 200000 Range type: local domain range Range name: IDM.EXAMPLE.COM_new_id_range First Posix ID of the range: 12000000 Number of IDs in the range: 200000 Range type: local domain range ---------------------------- Number of entries returned 2 ----------------------------
Ressources supplémentaires
36.7. Suppression d'une plage d'identifiants après la suppression d'une confiance dans AD
Si vous avez supprimé la confiance entre vos environnements IdM et Active Directory (AD), il se peut que vous souhaitiez supprimer la plage d'identifiants qui y est associée.
Les identifiants attribués aux plages d'identifiants associées aux domaines de confiance peuvent encore être utilisés pour la propriété des fichiers et des répertoires sur les systèmes inscrits dans IdM.
Si vous supprimez la plage d'identifiants correspondant à un groupe AD que vous avez supprimé, vous ne pourrez pas déterminer la propriété des fichiers et des répertoires appartenant à des utilisateurs AD.
Conditions préalables
- Vous avez supprimé une confiance dans un environnement AD.
Procédure
Affiche toutes les plages d'identification actuellement utilisées :
[root@server ~]# ipa idrange-find
-
Identifiez le nom de la plage d'identifiants associée au trust que vous avez supprimé. La première partie du nom de la plage d'identifiants est le nom du trust, par exemple
AD.EXAMPLE.COM_id_range
. Retirer la gamme :
[root@server ~]# ipa idrange-del AD.EXAMPLE.COM_id_range
Redémarrez le service SSSD pour supprimer les références à la plage d'identifiants que vous avez supprimée.
[root@server ~]# systemctl restart sssd
Ressources supplémentaires
36.8. Affichage des plages d'identification d'ADN actuellement attribuées
Vous pouvez afficher la plage d'ID d'assignation numérique distribuée (DNA) actuellement active sur un serveur, ainsi que sa prochaine plage DNA s'il en a une d'attribuée.
Procédure
Pour afficher les plages d'ID DNA configurées pour les serveurs de la topologie, utilisez les commandes suivantes :
ipa-replica-manage dnarange-show
affiche la plage d'ID ADN actuelle qui est définie sur tous les serveurs ou, si vous spécifiez un serveur, uniquement sur le serveur spécifié, par exemple :# ipa-replica-manage dnarange-show serverA.example.com: 1001-1500 serverB.example.com: 1501-2000 serverC.example.com: No range set # ipa-replica-manage dnarange-show serverA.example.com serverA.example.com: 1001-1500
ipa-replica-manage dnanextrange-show
affiche la plage suivante d'ID ADN actuellement définie sur tous les serveurs ou, si vous spécifiez un serveur, uniquement sur le serveur spécifié, par exemple :# ipa-replica-manage dnanextrange-show serverA.example.com: 2001-2500 serverB.example.com: No on-deck range set serverC.example.com: No on-deck range set # ipa-replica-manage dnanextrange-show serverA.example.com serverA.example.com: 2001-2500
36.9. Attribution manuelle d'une plage d'identification
Dans certaines situations, il est nécessaire d'attribuer manuellement une plage d'ID d'assignation numérique distribuée (ADN), par exemple lorsque.. :
Une réplique n'a plus d'identifiants et la gamme d'identifiants IdM est épuisée
Un réplica a épuisé la plage d'ID DNA qui lui a été attribuée et la demande d'ID supplémentaires a échoué parce qu'il n'y a plus d'ID libres dans la plage IdM.
Pour résoudre cette situation, étendez la plage d'ID ADN attribuée à la réplique. Vous pouvez le faire de deux manières :
- Raccourcir la plage d'ID ADN attribuée à une autre réplique, puis attribuer les nouvelles valeurs disponibles à la réplique épuisée.
Créez une nouvelle plage d'IDM, puis définissez une nouvelle plage d'ID ADN pour le réplica dans cette plage d'IDM créée.
Pour plus d'informations sur la création d'une nouvelle plage d'ID IdM, voir Ajout d'une nouvelle plage d'ID IdM.
Une réplique a cessé de fonctionner
La plage d'ID ADN d'un réplica n'est pas automatiquement récupérée lorsque le réplica cesse de fonctionner et doit être supprimé, ce qui signifie que la plage d'ID ADN précédemment attribuée au réplica devient indisponible. Vous souhaitez récupérer la plage d'ID ADN et la rendre disponible pour d'autres réplicas.
Pour ce faire, déterminez les valeurs de la plage d'identifiants avant d'affecter manuellement cette plage à un autre serveur. En outre, pour éviter les doublons d'UID ou de GID, assurez-vous qu'aucune valeur d'ID de la plage récupérée n'a été précédemment attribuée à un utilisateur ou à un groupe ; vous pouvez le faire en examinant les UID et les GID des utilisateurs et des groupes existants.
Vous pouvez attribuer manuellement une plage d'ID ADN à une réplique à l'aide des commandes indiquées dans la section Attribution manuelle de plages d'ID ADN.
Si vous attribuez une nouvelle plage d'ID ADN, les UID des entrées déjà existantes sur le serveur ou la réplique restent les mêmes. Cela ne pose pas de problème car même si vous changez la plage d'ID ADN actuelle, l'IdM conserve un enregistrement des plages qui ont été attribuées dans le passé.
36.10. Attribution manuelle de plages d'identification d'ADN
Dans certains cas, il peut être nécessaire d'attribuer manuellement des plages d'identifiants DNA (Distributed Numeric Assignment) à des répliques existantes, par exemple pour réaffecter une plage d'identifiants DNA attribuée à une réplique qui ne fonctionne pas. Pour plus d'informations, voir Attribution manuelle de plages d'identifiants.
Lorsque vous ajustez manuellement une plage d'identification d'ADN, assurez-vous que la nouvelle plage ajustée est incluse dans la plage d'identification de l'IdM ; vous pouvez le vérifier à l'aide de la commande ipa idrange-find
. Dans le cas contraire, la commande échoue.
Veillez à ne pas créer de plages d'identifiants qui se chevauchent. Si l'une des plages d'identifiants que vous attribuez aux serveurs ou aux répliques se chevauche, deux serveurs différents risquent d'attribuer la même valeur d'identifiant à des entrées différentes.
Conditions préalables
- Optional. Si vous récupérez une plage d'identification d'ADN à partir d'une réplique qui ne fonctionne pas, recherchez d'abord la plage d'identification à l'aide des commandes décrites dans la section Affichage des plages d'identification d'ADN actuellement attribuées.
Procédure
Pour définir la plage d'ID ADN en cours pour un serveur donné, utilisez
ipa-replica-manage dnarange-set
:# ipa-replica-manage dnarange-set serverA.example.com 1250-1499
Pour définir la plage d'ID ADN suivante pour un serveur donné, utilisez
ipa-replica-manage dnanextrange-set
:# ipa-replica-manage dnanextrange-set serverB.example.com 1500-5000
Verification steps
- Vous pouvez vérifier que les nouvelles plages d'ADN sont correctement définies en utilisant les commandes décrites dans la section Affichage des plages d'ID ADN actuellement attribuées.
Chapitre 37. Gestion manuelle des plages de sous-identifiants
Dans un environnement conteneurisé, il arrive qu'un utilisateur IdM doive attribuer manuellement des plages de sous-identifiants. Les instructions suivantes vous aideront à gérer les plages de sous-identifiants.
37.1. Générer des plages de sous-identifiants à l'aide de l'interface CLI de l'IdM
Vous pouvez générer une plage de sous-identifiants et l'attribuer manuellement à un utilisateur. Supposons que le nom d'utilisateur jsmith existe sur un serveur ipa
.
Conditions préalables
- L'utilisateur IdM existe.
- Un ticket Kerberos valide est obtenu. Voir Connexion à IdM dans l'interface Web : Utilisation d'un ticket Kerberos pour plus de détails.
-
root
privilèges.
Procédure
Vérifier les plages de sous-identification existantes :
#
ipa subid-find
Si la plage de sous-identifiants n'existe pas, générez et attribuez la nouvelle plage de sous-identifiants à un utilisateur en entrant la commande suivante :
#
ipa subid-generate --owner=jsmith
Added subordinate id "359dfcef-6b76-4911-bd37-bb5b66b8c418" Unique ID: 359dfcef-6b76-4911-bd37-bb5b66b8c418 Description: auto-assigned subid Owner: jsmith SubUID range start: 2147483648 SubUID range size: 65536 SubGID range start: 2147483648 SubGID range size: 65536Il est également possible de générer et d'attribuer les nouvelles plages de sous-identifiants à tous les utilisateurs :
#
/usr/libexec/ipa/ipa-subids --all-users
Found 2 user(s) without subordinate ids Processing user 'user4' (1/2) Processing user 'user5' (2/2) Updated 2 user(s) The ipa-subids command was successful
Notez que pour attribuer par défaut des plages de sous-ID aux nouveaux utilisateurs IdM, activez l'option suivante :
# ipa config-mod --user-default-subid=True
Vérification
Pour vérifier si l'utilisateur dispose de la plage de sous-identifiants, entrez la commande suivante :
#
ipa subid-find --owner=jsmith
1 subordinate id matched Unique ID: 359dfcef-6b76-4911-bd37-bb5b66b8c418 Owner: jsmith SubUID range start: 2147483648 SubUID range size: 65536 SubGID range start: 2147483648 SubGID range size: 65536 Number of entries returned 1
37.2. Générer des plages de sous-identifiants à l'aide de l'interface WebUI de l'IdM
Vous pouvez générer une plage de sous-identifiants et l'attribuer à un utilisateur dans l'interface WebUI de l'IdM.
Conditions préalables
- Un utilisateur IdM existe.
- Un ticket Kerberos valide est obtenu. Voir Connexion à IdM dans l'interface Web : Utilisation d'un ticket Kerberos pour plus de détails.
-
root
privilèges.
Procédure
-
Dans l'interface IdM WebUI, développez l'onglet
Subordinate IDs
et choisissez l'optionSubordinate IDs
. -
Lorsque l'interface
Subordinate IDs
apparaît, cliquez sur le bouton Ajouter dans le coin supérieur droit de l'interface. La fenêtre “Add subid” s'affiche. - Dans la fenêtre “Add subid”, choisissez un propriétaire, c'est-à-dire l'utilisateur auquel vous souhaitez attribuer une plage de sous-identifiants.
- Cliquez sur le bouton Ajouter.
Vérification
-
Vérifiez le tableau sous l'onglet
Subordinate IDs
. Un nouvel enregistrement devrait apparaître et le propriétaire est l'utilisateur auquel vous avez attribué la plage de sous-identifiants.
37.3. Gestion des plages de sous-identifiants existantes à l'aide de la CLI de l'IdM
Vous pouvez rechercher des plages de sous-identifiants et afficher des informations sur un sous-identifiant particulier si nécessaire. Supposons que le nom d'utilisateur jsmith existe sur un serveur ipa
.
Conditions préalables
- Un utilisateur IdM existe.
Procédure
Pour afficher les détails de la plage de sous-ID lorsque vous connaissez un hachage d'ID unique, entrez la commande suivante :
#
ipa subid-show 359dfcef-6b76-4911-bd37-bb5b66b8c418
Unique ID: 359dfcef-6b76-4911-bd37-bb5b66b8c418 Owner: jsmith SubUID range start: 2147483648 SubUID range size: 65536 SubGID range start: 2147483648 SubGID range size: 65536Pour trouver les détails de la plage de sous-ID lorsque vous avez un sous-ID de cette plage, vous pouvez utiliser la commande suivante :
#
ipa subid-match --subuid=2147483648
1 subordinate id matched Unique ID: 359dfcef-6b76-4911-bd37-bb5b66b8c418 Owner: uid=jsmith SubUID range start: 2147483648 SubUID range size: 65536 SubGID range start: 2147483648 SubGID range size: 65536 Number of entries returned 1
37.4. Liste des plages de sous-ID à l'aide de la commande getsubid
Pour dresser la liste des plages de sous-ID, par exemple pour le site user1
dans un environnement IdM, suivez les instructions ci-dessous.
Conditions préalables
-
Le site
user1
existe dans l'IdM. -
Le paquet
shadow-utils-subid
est installé.
Procédure
Inclure l'enregistrement
subid: sss
dans le fichier/etc/nsswitch.conf
.Notez que vous ne pouvez fournir qu'une seule valeur pour le champ
subid
. La valeursss
attribuée au champsubid
indique aux utilitaires qu'ils doivent utiliser les plages de sous-identifiants des paramètres IdM. La valeurfile
ou l'absence de valeur indique aux utilitaires d'utiliser les plages de sous-identifiants des fichiers/etc/subuid
et/etc/subgid
.Liste la plage de sous-identifiants d'un utilisateur :
#
getsubids user1
0: user1 2147483648 65536
Chapitre 38. Gestion des hôtes dans l'interface de gestion de l'IdM
Ce chapitre présente les hôtes et les entrées d'hôtes dans la gestion des identités (IdM), ainsi que les opérations suivantes effectuées lors de la gestion des hôtes et des entrées d'hôtes dans le CLI IdM :
Le chapitre contient également un tableau récapitulatif des conditions préalables, du contexte et des conséquences de ces opérations.
38.1. Hôtes dans l'IdM
La gestion des identités (IdM) gère ces identités :
- Utilisateurs
- Services
- Hosts
Un hôte représente une machine. En tant qu'identité IdM, un hôte possède une entrée dans le LDAP IdM, c'est-à-dire l'instance 389 Directory Server du serveur IdM.
L'entrée de l'hôte dans IdM LDAP est utilisée pour établir des relations entre d'autres hôtes et même des services au sein du domaine. Ces relations font partie de l'autorisation et du contrôle des hôtes au sein du domaine ( delegating ). Tout hôte peut être utilisé dans les règles host-based access control
(HBAC).
Le domaine IdM établit une communauté entre les machines, avec des informations d'identité communes, des politiques communes et des services partagés. Toute machine appartenant à un domaine fonctionne comme un client du domaine, ce qui signifie qu'elle utilise les services fournis par le domaine. Le domaine IdM fournit trois services principaux spécifiquement destinés aux machines :
- DNS
- Kerberos
- Gestion des certificats
Dans l'IdM, les hôtes sont étroitement liés aux services qui y sont exécutés :
- Les entrées de service sont associées à un hôte.
- Un hôte stocke les principaux Kerberos de l'hôte et du service.
38.2. Inscription au programme d'accueil
Cette section décrit l'enrôlement des hôtes en tant que clients IdM et ce qui se passe pendant et après l'enrôlement. Elle compare l'enrôlement des hôtes IdM et des utilisateurs IdM. Elle décrit également les autres types d'authentification disponibles pour les hôtes.
L'inscription d'un hôte consiste à
-
Création d'une entrée d'hôte dans IdM LDAP : éventuellement en utilisant la commande
ipa host-add
dans IdM CLI, ou l'opération équivalente dans IdM Web UI. - Configuration des services IdM sur l'hôte, par exemple le System Security Services Daemon (SSSD), Kerberos et certmonger, et connexion de l'hôte au domaine IdM.
Les deux actions peuvent être effectuées séparément ou ensemble.
S'ils sont exécutés séparément, ils permettent de répartir les deux tâches entre deux utilisateurs ayant des niveaux de privilèges différents. Cela est utile pour les déploiements en masse.
La commande ipa-client-install
peut effectuer les deux actions ensemble. La commande crée une entrée d'hôte dans IdM LDAP si cette entrée n'existe pas encore, et configure les services Kerberos et SSSD pour l'hôte. La commande amène l'hôte dans le domaine IdM et lui permet d'identifier le serveur IdM auquel il se connectera. Si l'hôte appartient à une zone DNS gérée par IdM, ipa-client-install
ajoute également des enregistrements DNS pour l'hôte. La commande doit être exécutée sur le client.
38.3. Privilèges de l'utilisateur requis pour l'inscription de l'hôte
L'opération d'enrôlement des hôtes nécessite une authentification afin d'éviter qu'un utilisateur non privilégié n'ajoute des machines indésirables au domaine IdM. Les privilèges requis dépendent de plusieurs facteurs, par exemple :
-
Si une entrée d'hôte est créée séparément de l'exécution de
ipa-client-install
- Si un mot de passe à usage unique (OTP) est utilisé pour l'inscription
Privilèges de l'utilisateur pour la création manuelle facultative d'une entrée d'hôte dans IdM LDAP
Le privilège d'utilisateur requis pour créer une entrée d'hôte dans IdM LDAP à l'aide de la commande CLI ipa host-add
ou de l'interface Web IdM est Host Administrators
. Le privilège Host Administrators
peut être obtenu par le biais du rôle IT Specialist
.
Privilèges de l'utilisateur pour l'intégration du client dans le domaine IdM
Les hôtes sont configurés en tant que clients IdM lors de l'exécution de la commande ipa-client-install
. Le niveau d'habilitation requis pour l'exécution de la commande ipa-client-install
dépend du scénario d'inscription dans lequel vous vous trouvez :
-
L'entrée de l'hôte dans IdM LDAP n'existe pas. Pour ce scénario, vous avez besoin des informations d'identification d'un administrateur complet ou du rôle
Host Administrators
. Un administrateur complet est membre du groupeadmins
. Le rôleHost Administrators
permet d'ajouter des hôtes et d'enrôler des hôtes. Pour plus d'informations sur ce scénario, voir Installation d'un client à l'aide des informations d'identification de l'utilisateur : installation interactive. -
L'entrée de l'hôte dans IdM LDAP existe. Pour ce scénario, vous avez besoin des informations d'identification d'un administrateur limité pour exécuter
ipa-client-install
avec succès. Dans ce cas, l'administrateur limité a le rôleEnrollment Administrator
, qui lui confère le privilègeHost Enrollment
. Pour plus d'informations, voir Installation d'un client à l'aide des informations d'identification de l'utilisateur : installation interactive. -
L'entrée de l'hôte dans IdM LDAP existe et un OTP a été généré pour l'hôte par un administrateur complet ou limité. Dans ce cas, vous pouvez installer un client IdM en tant qu'utilisateur ordinaire si vous exécutez la commande
ipa-client-install
avec l'option--password
, en fournissant l'OTP correct. Pour plus de détails, voir Installation d'un client à l'aide d'un mot de passe à usage unique : installation interactive.
Après l'inscription, les hôtes IdM authentifient chaque nouvelle session pour pouvoir accéder aux ressources IdM. L'authentification de la machine est nécessaire pour que le serveur IdM fasse confiance à la machine et accepte les connexions IdM du logiciel client installé sur cette machine. Après avoir authentifié le client, le serveur IdM peut répondre à ses demandes.
38.4. Comparaison entre l'enrôlement et l'authentification des hôtes et des utilisateurs de l'IdM
Il existe de nombreuses similitudes entre les utilisateurs et les hôtes dans l'IdM. Cette section décrit certaines des similitudes qui peuvent être observées au cours de la phase d'inscription ainsi que celles qui concernent l'authentification au cours de la phase de déploiement.
La phase d'inscription(inscription de l'utilisateur et de l'hôte) :
-
Un administrateur peut créer une entrée LDAP pour un utilisateur et un hôte avant que l'utilisateur ou l'hôte ne rejoigne l'IdM : pour l'utilisateur de l'étape, la commande est
ipa stageuser-add
; pour l'hôte, la commande estipa host-add
. -
Un fichier contenant un key table ou, en abrégé, un keytab, une clé symétrique ressemblant dans une certaine mesure à un mot de passe d'utilisateur, est créé lors de l'exécution de la commande
ipa-client-install
sur l'hôte, ce qui permet à l'hôte de rejoindre le domaine IdM. De manière analogue, un utilisateur est invité à créer un mot de passe lorsqu'il active son compte, rejoignant ainsi le royaume IdM. - Alors que le mot de passe de l'utilisateur est la méthode d'authentification par défaut pour un utilisateur, le keytab est la méthode d'authentification par défaut pour un hôte. Le keytab est stocké dans un fichier sur l'hôte.
Tableau 38.1. Inscription des utilisateurs et des hôtes
Action User Hôte Préinscription
$ ipa stageuser-add user_name [--password]
$ ipa host-add host_name [--random]
Activation du compte
$ ipa stageuser-activate user_name
ipa-client install [--password] (doit être exécuté sur l'hôte lui-même)
-
Un administrateur peut créer une entrée LDAP pour un utilisateur et un hôte avant que l'utilisateur ou l'hôte ne rejoigne l'IdM : pour l'utilisateur de l'étape, la commande est
La phase de déploiement(authentification de la session de l'utilisateur et de l'hôte) :
- Lorsqu'un utilisateur démarre une nouvelle session, il s'authentifie à l'aide d'un mot de passe ; de même, à chaque fois qu'il est mis sous tension, l'hôte s'authentifie en présentant son fichier keytab. Le System Security Services Daemon (SSSD) gère ce processus en arrière-plan.
- Si l'authentification est réussie, l'utilisateur ou l'hôte obtient un ticket Kerberos (TGT).
- Le TGT est ensuite utilisé pour obtenir des billets spécifiques pour des services spécifiques.
Tableau 38.2. Authentification de la session de l'utilisateur et de l'hôte
User Hôte Moyens d'authentification par défaut
Password
Keytabs
Démarrage d'une session (utilisateur ordinaire)
$ kinit user_name
[switch on the host]
Le résultat de l'authentification réussie
TGT à utiliser pour obtenir l'accès à des services spécifiques
TGT à utiliser pour obtenir l'accès à des services spécifiques
Les TGT et autres tickets Kerberos sont générés dans le cadre des services et politiques Kerberos définis par le serveur. L'octroi initial d'un ticket Kerberos, le renouvellement des informations d'identification Kerberos et même la destruction de la session Kerberos sont tous gérés automatiquement par les services IdM.
Autres options d'authentification pour les hôtes IdM
Outre les keytabs, IdM prend en charge deux autres types d'authentification des machines :
- Clés SSH. La clé publique SSH de l'hôte est créée et téléchargée dans l'entrée de l'hôte. À partir de là, le System Security Services Daemon (SSSD) utilise IdM comme fournisseur d'identité et peut travailler en conjonction avec OpenSSH et d'autres services pour référencer les clés publiques situées de manière centralisée dans IdM.
- Certificats de machine. Dans ce cas, la machine utilise un certificat SSL délivré par l'autorité de certification du serveur IdM et stocké dans le serveur d'annuaire IdM. Le certificat est ensuite envoyé à la machine pour qu'elle le présente lorsqu'elle s'authentifie auprès du serveur. Sur le client, les certificats sont gérés par un service appelé certmonger.
38.5. Opérations d'accueil
Cette section énumère les opérations les plus courantes liées à l'enrôlement et à l'habilitation des hôtes, et explique les conditions préalables, le contexte et les conséquences de leur exécution.
Tableau 38.3. Opérations d'accueil partie 1
Action | Quelles sont les conditions préalables à l'action ? | Quand est-il judicieux d'exécuter la commande ? | Comment l'action est-elle effectuée par un administrateur système ? Quelle(s) commande(s) exécute-t-il ? |
---|---|---|---|
| voir Préparation du système pour l'installation du client Identity Management dans la section Installing_Identity_Management | Lorsque vous souhaitez que l'hôte rejoigne la zone IdM. |
L'inscription de machines en tant que clients dans le domaine IdM est un processus en deux parties. Une entrée d'hôte est créée pour le client (et stockée dans l'instance du serveur d'annuaire) lorsque la commande |
| L'hôte doit avoir une entrée dans IdM. L'hôte doit avoir un keytab actif. | Lorsque vous souhaitez retirer temporairement l'hôte de la zone IdM, par exemple à des fins de maintenance. |
|
| L'hôte doit avoir une entrée dans IdM. | Lorsque vous souhaitez que l'hôte temporairement désactivé redevienne actif. |
|
| L'hôte doit avoir une entrée dans IdM. | Lorsque l'hôte d'origine a été perdu mais que vous avez installé un hôte avec le même nom d'hôte. |
|
| L'hôte doit avoir une entrée dans IdM. | Lorsque vous souhaitez supprimer définitivement l'hôte de la zone IdM. |
|
Tableau 38.4. Opérations d'accueil partie 2
Action | Sur quelle machine l'administrateur peut-il exécuter la (les) commande(s) ? | Que se passe-t-il lorsque l'action est exécutée ? Quelles sont les conséquences pour le fonctionnement de l'hôte dans l'IdM ? Quelles sont les limitations introduites/supprimées ? |
---|---|---|
|
Dans le cas d'une inscription en deux étapes : | Par défaut, SSSD est configuré pour se connecter à un serveur IdM pour l'authentification et l'autorisation. En option, il est possible de configurer le module d'authentification enfichable (PAM) et le service de commutation de noms (NSS) pour qu'ils fonctionnent avec un serveur IdM via Kerberos et LDAP. |
| Toute machine dans l'IdM, même l'hôte lui-même | La clé Kerberos et le certificat SSL de l'hôte sont invalidés et tous les services fonctionnant sur l'hôte sont désactivés. |
| Toute machine dans IdM. S'il est exécuté sur l'hôte désactivé, les informations d'identification LDAP doivent être fournies. | La clé Kerberos de l'hôte et le certificat SSL sont à nouveau valides, et tous les services IdM fonctionnant sur l'hôte sont réactivés. |
| L'hôte à réinscrire. Les informations d'identification LDAP doivent être fournies. | Une nouvelle clé Kerberos est générée pour l'hôte, remplaçant la précédente. |
| L'hôte à désinscrire. |
La commande déconfigure IdM et tente de ramener la machine à son état antérieur. Une partie de ce processus consiste à désenrôler l'hôte du serveur IdM. La désinscription consiste à désactiver la clé principale sur le serveur IdM. Le principal de la machine dans |
38.6. Entrée de l'hôte dans IdM LDAP
Cette section décrit l'aspect d'une entrée d'hôte dans la gestion des identités (IdM) et les attributs qu'elle peut contenir.
Une entrée d'hôte LDAP contient toutes les informations pertinentes sur le client au sein de l'IdM :
- Entrées de service associées à l'hôte
- Le principal de l'hôte et du service
- Règles de contrôle d'accès
- Informations sur la machine, telles que son emplacement physique et son système d'exploitation
Notez que l'onglet Identity
→ Hosts
de l'interface Web d'IdM n'affiche pas toutes les informations relatives à un hôte particulier stockées dans le LDAP d'IdM.
Propriétés de configuration de l'entrée hôte
Une entrée d'hôte peut contenir des informations sur l'hôte en dehors de sa configuration système, telles que son emplacement physique, son adresse MAC, ses clés et ses certificats.
Ces informations peuvent être définies lors de la création de l'entrée d'hôte si celle-ci est créée manuellement. Sinon, la plupart de ces informations peuvent être ajoutées à l'entrée d'hôte après l'enregistrement de l'hôte dans le domaine.
Tableau 38.5. Propriétés de configuration de l'hôte
Champ de l'interface utilisateur | Option de la ligne de commande | Description |
---|---|---|
Description |
| Une description de l'hôte. |
Localité |
| L'emplacement géographique de l'hôte. |
Location |
| L'emplacement physique de l'hôte, par exemple le rack de son centre de données. |
Plate-forme |
| Le matériel ou l'architecture de l'hôte. |
Système d'exploitation |
| Le système d'exploitation et la version de l'hôte. |
Adresse MAC |
|
L'adresse MAC de l'hôte. Il s'agit d'un attribut à valeurs multiples. L'adresse MAC est utilisée par le plug-in NIS pour créer une carte NIS |
Clés publiques SSH |
| La clé publique SSH complète de l'hôte. Il s'agit d'un attribut à valeurs multiples, de sorte que plusieurs clés peuvent être définies. |
Nom du principal (non modifiable) |
|
Le nom du principal Kerberos pour l'hôte. Par défaut, il s'agit du nom de l'hôte lors de l'installation du client, à moins qu'un autre principal ne soit explicitement défini dans |
Définition d'un mot de passe à usage unique |
| Cette option définit un mot de passe pour l'hôte, qui peut être utilisé pour l'inscription en masse. |
- |
| Cette option génère un mot de passe aléatoire qui sera utilisé pour l'inscription en bloc. |
- |
| Un blob de certificat pour l'hôte. |
- |
| Ce paramètre indique si l'hôte peut mettre à jour dynamiquement ses entrées DNS en cas de changement d'adresse IP. |
38.7. Ajout d'entrées d'hôtes IdM à partir de la CLI IdM
Cette section décrit comment ajouter des entrées d'hôte dans la gestion des identités (IdM) à l'aide de l'interface de ligne de commande (CLI).
Les entrées d'hôte sont créées à l'aide de la commande host-add
. Cette commande ajoute l'entrée de l'hôte au serveur d'annuaire IdM. Consultez la page de manuel ipa host
en tapant ipa help host
dans votre CLI pour obtenir la liste complète des options disponibles avec host-add
.
L'ajout d'un hôte à l'IdM peut se faire selon différents scénarios :
Dans sa version la plus simple, il suffit de spécifier le nom d'hôte du client pour l'ajouter au domaine Kerberos et pour créer une entrée dans le serveur LDAP IdM :
$ ipa host-add client1.example.com
Si le serveur IdM est configuré pour gérer le DNS, ajoutez l'hôte aux enregistrements de ressources DNS en utilisant l'option
--ip-address
.Exemple 38.1. Création d'entrées hôtes avec des adresses IP statiques
$ ipa host-add --ip-address=192.168.166.31 client1.example.com
Si l'hôte à ajouter n'a pas d'adresse IP statique ou si l'adresse IP n'est pas connue au moment de la configuration du client, utilisez l'option
--force
avec la commandeipa host-add
.Exemple 38.2. Création d'entrées hôtes avec DHCP
$ ipa host-add --force client1.example.com
Par exemple, les ordinateurs portables peuvent être préconfigurés comme clients IdM, mais ils n'ont pas d'adresse IP au moment où ils sont configurés. L'utilisation de
--force
crée essentiellement une entrée de remplacement dans le service DNS IdM. Lorsque le service DNS met à jour dynamiquement ses enregistrements, l'adresse IP actuelle de l'hôte est détectée et son enregistrement DNS est mis à jour.
38.8. Suppression des entrées d'hôtes dans la CLI de l'IdM
Utilisez la commande
host-del
pour supprimer les enregistrements d'hôtes. Si votre domaine IdM dispose d'un DNS intégré, utilisez l'option--updatedns
pour supprimer du DNS les enregistrements associés à l'hôte, quels qu'ils soient :$ ipa host-del --updatedns client1.example.com
38.9. Réinscription d'un client de la gestion de l'identité
Cette section décrit les différentes façons de réinscrire un client de gestion d'identité.
38.9.1. Réinscription du client à l'IdM
Cette section décrit comment réinscrire un client de gestion d'identité (IdM).
Si une machine cliente a été détruite et a perdu la connexion avec les serveurs IdM, par exemple en raison d'une défaillance matérielle du client, et que vous disposez toujours de son keytab, vous pouvez réinscrire le client. Dans ce scénario, vous souhaitez que le client soit réintégré dans l'environnement IdM avec le même nom d'hôte.
Pendant le réenrôlement, le client génère une nouvelle clé Kerberos et des clés SSH, mais l'identité du client dans la base de données LDAP reste inchangée. Après le réenrôlement, l'hôte a ses clés et d'autres informations dans le même objet LDAP avec le même FQDN
que précédemment, avant la perte de connexion de la machine avec les serveurs IdM.
Vous ne pouvez réinscrire que les clients dont l'entrée de domaine est encore active. Si vous avez désinstallé un client (à l'aide de ipa-client-install --uninstall
) ou désactivé son entrée d'hôte (à l'aide de ipa host-disable
), vous ne pouvez pas le réinscrire.
Vous ne pouvez pas réinscrire un client après l'avoir renommé. En effet, dans la gestion de l'identité, l'attribut clé de l'entrée du client dans LDAP est le nom d'hôte du client, son FQDN
. Contrairement à la réinscription d'un client, au cours de laquelle l'objet LDAP du client reste inchangé, le résultat du renommage d'un client est que ses clés et autres informations se trouvent dans un objet LDAP différent avec un nouveau FQDN
. La seule façon de renommer un client est donc de désinstaller l'hôte de l'IdM, de changer son nom d'hôte et de l'installer en tant que client IdM avec un nouveau nom. Pour plus de détails sur la manière de renommer un client, voir Renommer les systèmes clients de gestion d'identité.
Que se passe-t-il lors de la réinscription d'un client ?
Lors de la réinscription, Identity Management :
- Révoque le certificat d'origine de l'hôte
- Création de nouvelles clés SSH
- Génère un nouveau keytab
38.9.2. Réinscription d'un client à l'aide des informations d'identification de l'utilisateur : Réinscription interactive
Cette procédure décrit le réenrôlement d'un client de gestion d'identité de manière interactive en utilisant les informations d'identification d'un utilisateur autorisé.
- Recréez la machine cliente avec le même nom d'hôte.
Exécutez la commande
ipa-client-install --force-join
sur la machine cliente :# ipa-client-install --force-join
Le script demande un utilisateur dont l'identité sera utilisée pour réinscrire le client. Il peut s'agir, par exemple, d'un utilisateur
hostadmin
ayant le rôle d'administrateur d'inscription :User authorized to enroll computers:
hostadmin
Password forhostadmin
@EXAMPLE.COM
:
Ressources supplémentaires
- Voir Installation d'un client à l'aide des informations d'identification de l'utilisateur : Installation interactive sur Installing Identity Management.
38.9.3. Réinscription d'un client à l'aide de la base de données du client : Réinscription non interactive
Conditions préalables
-
Sauvegardez le fichier keytab original du client, par exemple dans le répertoire
/tmp
ou/root
.
Procédure
Cette procédure décrit le réenrôlement d'un client Identity Management (IdM) de manière non interactive en utilisant le keytab du système client. Par exemple, le réenregistrement à l'aide du keytab du client est approprié pour une installation automatisée.
- Recréez la machine cliente avec le même nom d'hôte.
-
Copiez le fichier keytab de l'emplacement de sauvegarde dans le répertoire
/etc/
sur l'ordinateur client recréé. Utilisez l'utilitaire
ipa-client-install
pour réinscrire le client et spécifiez l'emplacement du fichier keytab à l'aide de l'option--keytab
:# ipa-client-install --keytab /etc/krb5.keytab
NoteLe keytab spécifié dans l'option
--keytab
n'est utilisé que lors de l'authentification pour initier l'inscription. Lors de la réinscription, l'IdM génère un nouveau keytab pour le client.
38.9.4. Test d'un client de gestion d'identité après installation
L'interface de ligne de commande vous informe que l'adresse ipa-client-install
a été utilisée avec succès, mais vous pouvez également effectuer votre propre test.
Pour vérifier que le client de gestion des identités peut obtenir des informations sur les utilisateurs définis sur le serveur, vérifiez que vous pouvez résoudre un utilisateur défini sur le serveur. Par exemple, pour vérifier l'utilisateur par défaut admin
:
[user@client1 ~]$ id admin
uid=1254400000(admin) gid=1254400000(admins) groups=1254400000(admins)
Pour tester que l'authentification fonctionne correctement, su -
en tant qu'autre utilisateur IdM :
[user@client1 ~]$ su - idm_user
Last login: Thu Oct 18 18:39:11 CEST 2018 from 192.168.122.1 on pts/0
[idm_user@client1 ~]$
38.10. Renommer les systèmes clients de gestion de l'identité
Les sections suivantes décrivent comment modifier le nom d'hôte d'un système client de gestion des identités.
Renommer un client est une procédure manuelle. Ne l'effectuez que si la modification du nom d'hôte est absolument nécessaire.
Renommer un client de gestion d'identité implique :
- Préparation de l'hôte. Pour plus de détails, voir Préparation d'un client IdM pour son renommage.
- Désinstallation du client IdM de l'hôte. Pour plus de détails, voir Désinstallation d'un client Identity Management.
- Renommer l'hôte. Pour plus d'informations, voir Renommer le système hôte.
- Installer le client IdM sur l'hôte avec le nouveau nom. Pour plus de détails, voir Installation d'un client Identity Management à l'adresse Installing Identity Management.
- Configurer l'hôte après l'installation du client IdM. Pour plus d'informations, voir Réajout de services, re-génération de certificats et réajout de groupes d'hôtes.
38.10.1. Préparation d'un client IdM pour son renommage
Avant de désinstaller le client actuel, prenez note de certains paramètres du client. Vous appliquerez cette configuration après avoir réenrôlé la machine avec un nouveau nom d'hôte.
Identifier les services en cours d'exécution sur la machine :
Utilisez la commande
ipa service-find
et identifiez les services avec des certificats dans le résultat :$ ipa service-find old-client-name.example.com
-
En outre, chaque hôte a un host service par défaut qui n'apparaît pas dans la sortie
ipa service-find
. Le principal du service de l'hôte, également appelé host principal, est le suivanthost/old-client-name.example.com
.
Pour tous les mandants de service affichés par
ipa service-find old-client-name.example.com
détermine l'emplacement des keytabs correspondants sur le systèmeold-client-name.example.com
système :# find / -name "*.keytab"
Chaque service du système client possède un principal Kerberos sous la forme service_name/host_name@REALM, tel que
ldap/old-client-name.example.com@EXAMPLE.COM
.Identifier tous les groupes d'hôtes auxquels la machine appartient.
# ipa hostgroup-find old-client-name.example.com
38.10.2. Désinstallation d'un client de gestion d'identité
La désinstallation d'un client supprime ce dernier du domaine de gestion des identités, ainsi que toute la configuration spécifique de gestion des identités des services système, tels que System Security Services Daemon (SSSD). La configuration précédente du système client est ainsi rétablie.
Procédure
Exécutez la commande
ipa-client-install --uninstall
:[root@client]# ipa-client-install --uninstall
Supprimez manuellement du serveur les entrées DNS pour l'hôte du client :
[root@server]# ipa dnsrecord-del Record name: old-client-client Zone name: idm.example.com No option to delete specific record provided. Delete all? Yes/No (default No): yes ------------------------ Deleted record "old-client-name"
Pour chaque keytab identifié autre que
/etc/krb5.keytab
, supprimer les anciens mandants :[root@client ~]# ipa-rmkeytab -k /path/to/keytab -r EXAMPLE.COM
Sur un serveur IdM, supprimez l'entrée de l'hôte. Cette opération supprime tous les services et révoque tous les certificats émis pour cet hôte :
[root@server ~]# ipa host-del client.example.com
38.10.3. Renommer le système hôte
Renommez la machine comme vous le souhaitez. Par exemple :
[root@client]# hostnamectl set-hostname new-client-name.example.com
Vous pouvez maintenant réinstaller le client de gestion des identités sur le domaine de gestion des identités avec le nouveau nom d'hôte.
38.10.4. Réajustement des services, re-génération des certificats et réajustement des groupes d'hôtes
Procédure
Sur le serveur de gestion des identités (IdM), ajouter un nouveau keytab pour chaque service identifié dans la préparation d'un client IdM pour son renommage.
[root@server ~]# ipa service-add service_name/new-client-name
Générer des certificats pour les services auxquels un certificat a été attribué dans le cadre de la préparation d'un client IdM à son renommage. Vous pouvez le faire :
- Utilisation des outils d'administration de l'IdM
-
Utilisation de l'utilitaire
certmonger
- Réajoutez le client aux groupes d'hôtes identifiés dans la section Préparation d'un client IdM pour son renommage.
38.11. Désactivation et réactivation des entrées hôtes
Cette section décrit comment désactiver et réactiver les hôtes dans la gestion des identités (IdM).
38.11.1. Désactivation des hôtes
Suivez cette procédure pour désactiver une entrée d'hôte dans IdM.
Les services de domaine, les hôtes et les utilisateurs peuvent accéder à un hôte actif. Il peut arriver qu'il soit nécessaire de supprimer temporairement un hôte actif, pour des raisons de maintenance, par exemple. La suppression de l'hôte dans de telles situations n'est pas souhaitable car elle supprime l'entrée de l'hôte et toute la configuration associée de façon permanente. Choisissez plutôt l'option de désactivation de l'hôte.
La désactivation d'un hôte empêche les utilisateurs du domaine d'y accéder sans le supprimer définitivement du domaine.
Procédure
Désactiver un hôte à l'aide de la commande
host-disable
. La désactivation d'un hôte tue les keytabs actifs de l'hôte. Par exemple :$ kinit admin $ ipa host-disable client.example.com
La désactivation d'un hôte entraîne son indisponibilité pour tous les utilisateurs, hôtes et services IdM.
La désactivation d'une entrée d'hôte ne désactive pas seulement cet hôte. Elle désactive également tous les services configurés sur cet hôte.
38.11.2. Réactivation des hôtes
Cette section décrit comment réactiver un hôte IdM désactivé.
La désactivation d'un hôte a tué ses keytabs actifs, ce qui a supprimé l'hôte du domaine IdM sans toucher autrement à son entrée de configuration.
Procédure
Pour réactiver un hôte, utilisez la commande
ipa-getkeytab
, en ajoutant :-
l'option
-s
pour spécifier le serveur IdM auprès duquel le keytab doit être demandé -
l'option
-p
pour spécifier le nom du principal -
l'option
-k
pour spécifier le fichier dans lequel enregistrer le keytab.
-
l'option
Par exemple, pour demander un nouveau keytab hôte à server.example.com
pour client.example.com
, et stocker le keytab dans le fichier /etc/krb5.keytab
:
$ ipa-getkeytab -s server.example.com -p host/client.example.com -k /etc/krb5.keytab -D "cn=directory manager" -w password
Vous pouvez également utiliser les informations d'identification de l'administrateur en spécifiant -D "uid=admin,cn=users,cn=accounts,dc=example,dc=com"
. Il est important que les informations d'identification correspondent à un utilisateur autorisé à créer le fichier keytab pour l'hôte.
Si la commande ipa-getkeytab
est exécutée sur un client ou un serveur IdM actif, elle peut être exécutée sans aucun justificatif LDAP (-D
et -w
) si l'utilisateur dispose d'un TGT obtenu, par exemple, à l'aide de kinit admin
. Pour exécuter la commande directement sur l'hôte désactivé, il faut fournir des informations d'identification LDAP pour s'authentifier auprès du serveur IdM.
Chapitre 39. Ajout d'entrées d'hôtes à partir de l'interface Web IdM
Ce chapitre présente les hôtes dans la gestion des identités (IdM) et l'opération d'ajout d'une entrée d'hôte dans l'interface Web IdM.
39.1. Hôtes dans l'IdM
La gestion des identités (IdM) gère ces identités :
- Utilisateurs
- Services
- Hosts
Un hôte représente une machine. En tant qu'identité IdM, un hôte possède une entrée dans le LDAP IdM, c'est-à-dire l'instance 389 Directory Server du serveur IdM.
L'entrée de l'hôte dans IdM LDAP est utilisée pour établir des relations entre d'autres hôtes et même des services au sein du domaine. Ces relations font partie de l'autorisation et du contrôle des hôtes au sein du domaine ( delegating ). Tout hôte peut être utilisé dans les règles host-based access control
(HBAC).
Le domaine IdM établit une communauté entre les machines, avec des informations d'identité communes, des politiques communes et des services partagés. Toute machine appartenant à un domaine fonctionne comme un client du domaine, ce qui signifie qu'elle utilise les services fournis par le domaine. Le domaine IdM fournit trois services principaux spécifiquement destinés aux machines :
- DNS
- Kerberos
- Gestion des certificats
Dans l'IdM, les hôtes sont étroitement liés aux services qui y sont exécutés :
- Les entrées de service sont associées à un hôte.
- Un hôte stocke les principaux Kerberos de l'hôte et du service.
39.2. Inscription au programme d'accueil
Cette section décrit l'enrôlement des hôtes en tant que clients IdM et ce qui se passe pendant et après l'enrôlement. Elle compare l'enrôlement des hôtes IdM et des utilisateurs IdM. Elle décrit également les autres types d'authentification disponibles pour les hôtes.
L'inscription d'un hôte consiste à
-
Création d'une entrée d'hôte dans IdM LDAP : éventuellement en utilisant la commande
ipa host-add
dans IdM CLI, ou l'opération équivalente dans IdM Web UI. - Configuration des services IdM sur l'hôte, par exemple le System Security Services Daemon (SSSD), Kerberos et certmonger, et connexion de l'hôte au domaine IdM.
Les deux actions peuvent être effectuées séparément ou ensemble.
S'ils sont exécutés séparément, ils permettent de répartir les deux tâches entre deux utilisateurs ayant des niveaux de privilèges différents. Cela est utile pour les déploiements en masse.
La commande ipa-client-install
peut effectuer les deux actions ensemble. La commande crée une entrée d'hôte dans IdM LDAP si cette entrée n'existe pas encore, et configure les services Kerberos et SSSD pour l'hôte. La commande amène l'hôte dans le domaine IdM et lui permet d'identifier le serveur IdM auquel il se connectera. Si l'hôte appartient à une zone DNS gérée par IdM, ipa-client-install
ajoute également des enregistrements DNS pour l'hôte. La commande doit être exécutée sur le client.
39.3. Privilèges de l'utilisateur requis pour l'inscription de l'hôte
L'opération d'enrôlement des hôtes nécessite une authentification afin d'éviter qu'un utilisateur non privilégié n'ajoute des machines indésirables au domaine IdM. Les privilèges requis dépendent de plusieurs facteurs, par exemple :
-
Si une entrée d'hôte est créée séparément de l'exécution de
ipa-client-install
- Si un mot de passe à usage unique (OTP) est utilisé pour l'inscription
Privilèges de l'utilisateur pour la création manuelle facultative d'une entrée d'hôte dans IdM LDAP
Le privilège d'utilisateur requis pour créer une entrée d'hôte dans IdM LDAP à l'aide de la commande CLI ipa host-add
ou de l'interface Web IdM est Host Administrators
. Le privilège Host Administrators
peut être obtenu par le biais du rôle IT Specialist
.
Privilèges de l'utilisateur pour l'intégration du client dans le domaine IdM
Les hôtes sont configurés en tant que clients IdM lors de l'exécution de la commande ipa-client-install
. Le niveau d'habilitation requis pour l'exécution de la commande ipa-client-install
dépend du scénario d'inscription dans lequel vous vous trouvez :
-
L'entrée de l'hôte dans IdM LDAP n'existe pas. Pour ce scénario, vous avez besoin des informations d'identification d'un administrateur complet ou du rôle
Host Administrators
. Un administrateur complet est membre du groupeadmins
. Le rôleHost Administrators
permet d'ajouter des hôtes et d'enrôler des hôtes. Pour plus d'informations sur ce scénario, voir Installation d'un client à l'aide des informations d'identification de l'utilisateur : installation interactive. -
L'entrée de l'hôte dans IdM LDAP existe. Pour ce scénario, vous avez besoin des informations d'identification d'un administrateur limité pour exécuter
ipa-client-install
avec succès. Dans ce cas, l'administrateur limité a le rôleEnrollment Administrator
, qui lui confère le privilègeHost Enrollment
. Pour plus d'informations, voir Installation d'un client à l'aide des informations d'identification de l'utilisateur : installation interactive. -
L'entrée de l'hôte dans IdM LDAP existe et un OTP a été généré pour l'hôte par un administrateur complet ou limité. Dans ce cas, vous pouvez installer un client IdM en tant qu'utilisateur ordinaire si vous exécutez la commande
ipa-client-install
avec l'option--password
, en fournissant l'OTP correct. Pour plus de détails, voir Installation d'un client à l'aide d'un mot de passe à usage unique : installation interactive.
Après l'inscription, les hôtes IdM authentifient chaque nouvelle session pour pouvoir accéder aux ressources IdM. L'authentification de la machine est nécessaire pour que le serveur IdM fasse confiance à la machine et accepte les connexions IdM du logiciel client installé sur cette machine. Après avoir authentifié le client, le serveur IdM peut répondre à ses demandes.
39.4. Comparaison entre l'enrôlement et l'authentification des hôtes et des utilisateurs de l'IdM
Il existe de nombreuses similitudes entre les utilisateurs et les hôtes dans l'IdM. Cette section décrit certaines des similitudes qui peuvent être observées au cours de la phase d'inscription ainsi que celles qui concernent l'authentification au cours de la phase de déploiement.
La phase d'inscription(inscription de l'utilisateur et de l'hôte) :
-
Un administrateur peut créer une entrée LDAP pour un utilisateur et un hôte avant que l'utilisateur ou l'hôte ne rejoigne l'IdM : pour l'utilisateur de l'étape, la commande est
ipa stageuser-add
; pour l'hôte, la commande estipa host-add
. -
Un fichier contenant un key table ou, en abrégé, un keytab, une clé symétrique ressemblant dans une certaine mesure à un mot de passe d'utilisateur, est créé lors de l'exécution de la commande
ipa-client-install
sur l'hôte, ce qui permet à l'hôte de rejoindre le domaine IdM. De manière analogue, un utilisateur est invité à créer un mot de passe lorsqu'il active son compte, rejoignant ainsi le royaume IdM. - Alors que le mot de passe de l'utilisateur est la méthode d'authentification par défaut pour un utilisateur, le keytab est la méthode d'authentification par défaut pour un hôte. Le keytab est stocké dans un fichier sur l'hôte.
Tableau 39.1. Inscription des utilisateurs et des hôtes
Action User Hôte Préinscription
$ ipa stageuser-add user_name [--password]
$ ipa host-add host_name [--random]
Activation du compte
$ ipa stageuser-activate user_name
ipa-client install [--password] (doit être exécuté sur l'hôte lui-même)
-
Un administrateur peut créer une entrée LDAP pour un utilisateur et un hôte avant que l'utilisateur ou l'hôte ne rejoigne l'IdM : pour l'utilisateur de l'étape, la commande est
La phase de déploiement(authentification de la session de l'utilisateur et de l'hôte) :
- Lorsqu'un utilisateur démarre une nouvelle session, il s'authentifie à l'aide d'un mot de passe ; de même, à chaque fois qu'il est mis sous tension, l'hôte s'authentifie en présentant son fichier keytab. Le System Security Services Daemon (SSSD) gère ce processus en arrière-plan.
- Si l'authentification est réussie, l'utilisateur ou l'hôte obtient un ticket Kerberos (TGT).
- Le TGT est ensuite utilisé pour obtenir des billets spécifiques pour des services spécifiques.
Tableau 39.2. Authentification de la session de l'utilisateur et de l'hôte
User Hôte Moyens d'authentification par défaut
Password
Keytabs
Démarrage d'une session (utilisateur ordinaire)
$ kinit user_name
[switch on the host]
Le résultat de l'authentification réussie
TGT à utiliser pour obtenir l'accès à des services spécifiques
TGT à utiliser pour obtenir l'accès à des services spécifiques
Les TGT et autres tickets Kerberos sont générés dans le cadre des services et politiques Kerberos définis par le serveur. L'octroi initial d'un ticket Kerberos, le renouvellement des informations d'identification Kerberos et même la destruction de la session Kerberos sont tous gérés automatiquement par les services IdM.
Autres options d'authentification pour les hôtes IdM
Outre les keytabs, IdM prend en charge deux autres types d'authentification des machines :
- Clés SSH. La clé publique SSH de l'hôte est créée et téléchargée dans l'entrée de l'hôte. À partir de là, le System Security Services Daemon (SSSD) utilise IdM comme fournisseur d'identité et peut travailler en conjonction avec OpenSSH et d'autres services pour référencer les clés publiques situées de manière centralisée dans IdM.
- Certificats de machine. Dans ce cas, la machine utilise un certificat SSL délivré par l'autorité de certification du serveur IdM et stocké dans le serveur d'annuaire IdM. Le certificat est ensuite envoyé à la machine pour qu'elle le présente lorsqu'elle s'authentifie auprès du serveur. Sur le client, les certificats sont gérés par un service appelé certmonger.
39.5. Entrée de l'hôte dans IdM LDAP
Cette section décrit l'aspect d'une entrée d'hôte dans la gestion des identités (IdM) et les attributs qu'elle peut contenir.
Une entrée d'hôte LDAP contient toutes les informations pertinentes sur le client au sein de l'IdM :
- Entrées de service associées à l'hôte
- Le principal de l'hôte et du service
- Règles de contrôle d'accès
- Informations sur la machine, telles que son emplacement physique et son système d'exploitation
Notez que l'onglet Identity
→ Hosts
de l'interface Web d'IdM n'affiche pas toutes les informations relatives à un hôte particulier stockées dans le LDAP d'IdM.
Propriétés de configuration de l'entrée hôte
Une entrée d'hôte peut contenir des informations sur l'hôte en dehors de sa configuration système, telles que son emplacement physique, son adresse MAC, ses clés et ses certificats.
Ces informations peuvent être définies lors de la création de l'entrée d'hôte si celle-ci est créée manuellement. Sinon, la plupart de ces informations peuvent être ajoutées à l'entrée d'hôte après l'enregistrement de l'hôte dans le domaine.
Tableau 39.3. Propriétés de configuration de l'hôte
Champ de l'interface utilisateur | Option de la ligne de commande | Description |
---|---|---|
Description |
| Une description de l'hôte. |
Localité |
| L'emplacement géographique de l'hôte. |
Location |
| L'emplacement physique de l'hôte, par exemple le rack de son centre de données. |
Plate-forme |
| Le matériel ou l'architecture de l'hôte. |
Système d'exploitation |
| Le système d'exploitation et la version de l'hôte. |
Adresse MAC |
|
L'adresse MAC de l'hôte. Il s'agit d'un attribut à valeurs multiples. L'adresse MAC est utilisée par le plug-in NIS pour créer une carte NIS |
Clés publiques SSH |
| La clé publique SSH complète de l'hôte. Il s'agit d'un attribut à valeurs multiples, de sorte que plusieurs clés peuvent être définies. |
Nom du principal (non modifiable) |
|
Le nom du principal Kerberos pour l'hôte. Par défaut, il s'agit du nom de l'hôte lors de l'installation du client, à moins qu'un autre principal ne soit explicitement défini dans |
Définition d'un mot de passe à usage unique |
| Cette option définit un mot de passe pour l'hôte, qui peut être utilisé pour l'inscription en masse. |
- |
| Cette option génère un mot de passe aléatoire qui sera utilisé pour l'inscription en bloc. |
- |
| Un blob de certificat pour l'hôte. |
- |
| Ce paramètre indique si l'hôte peut mettre à jour dynamiquement ses entrées DNS en cas de changement d'adresse IP. |
39.6. Ajouter des entrées d'hôte à partir de l'interface Web
-
Ouvrez l'onglet
Identity
et sélectionnez le sous-ongletHosts
. Cliquez sur Ajouter en haut de la liste des hôtes.
Figure 39.1. Ajout d'entrées d'hôtes
Entrez le nom de la machine et sélectionnez le domaine parmi les zones configurées dans la liste déroulante. Si une adresse IP statique a déjà été attribuée à l'hôte, incluez-la dans l'entrée de l'hôte afin que l'entrée DNS soit entièrement créée.
Le champ
Class
n'a pas d'utilité particulière pour le moment.Figure 39.2. Assistant d'ajout d'hôte
Les zones DNS peuvent être créées dans IdM. Si le serveur IdM ne gère pas le serveur DNS, la zone peut être saisie manuellement dans la zone de menu, comme un champ de texte normal.
NoteCochez la case
Force
si vous souhaitez ne pas vérifier si l'hôte peut être résolu par DNS.Cliquez sur le bouton
Add and Edit
pour accéder directement à la page d'entrée étendue et saisir davantage d'informations sur les attributs. Des informations sur le matériel et l'emplacement physique de l'hôte peuvent être incluses dans l'entrée de l'hôte.Figure 39.3. Page d'entrée élargie
Chapitre 40. Gérer les hôtes à l'aide des playbooks Ansible
Ansible est un outil d'automatisation utilisé pour configurer des systèmes, déployer des logiciels et effectuer des mises à jour continues. Ansible prend en charge la gestion des identités (IdM) et vous pouvez utiliser des modules Ansible pour automatiser la gestion des hôtes.
Ce chapitre décrit les concepts suivants et les opérations effectuées lors de la gestion des hôtes et des entrées d'hôtes à l'aide des playbooks Ansible :
-
Assurer la présence d'entrées d'hôtes IdM qui ne sont définies que par leur
FQDNs
- S'assurer de la présence d'entrées d'hôtes IdM avec des adresses IP
- Assurer la présence de plusieurs entrées d'hôtes IdM avec des mots de passe aléatoires
- Assurer la présence d'une entrée d'hôte IdM avec plusieurs adresses IP
- Garantir l'absence d'entrées d'hôtes IdM
40.1. S'assurer de la présence d'une entrée d'hôte IdM avec FQDN à l'aide des playbooks Ansible
Cette section décrit comment assurer la présence d'entrées d'hôtes dans la gestion des identités (IdM) à l'aide de playbooks Ansible. Les entrées d'hôte sont uniquement définies par leur fully-qualified domain names
(FQDN).
Il suffit de spécifier le nom FQDN
de l'hôte si au moins l'une des conditions suivantes s'applique :
- Le serveur IdM n'est pas configuré pour gérer les DNS.
-
L'hôte n'a pas d'adresse IP statique ou l'adresse IP n'est pas connue au moment de la configuration de l'hôte. L'ajout d'un hôte défini uniquement par une adresse
FQDN
crée essentiellement une entrée de remplacement dans le service DNS IdM. Par exemple, des ordinateurs portables peuvent être préconfigurés comme clients IdM, mais ils n'ont pas d'adresse IP au moment de leur configuration. Lorsque le service DNS met à jour dynamiquement ses enregistrements, l'adresse IP actuelle de l'hôte est détectée et son enregistrement DNS est mis à jour.
Sans Ansible, les entrées d'hôtes sont créées dans IdM à l'aide de la commande ipa host-add
. Le résultat de l'ajout d'un hôte à IdM est l'état de l'hôte présent dans IdM. En raison de la dépendance d'Ansible à l'égard de l'idempotence, pour ajouter un hôte à IdM à l'aide d'Ansible, vous devez créer un playbook dans lequel vous définissez l'état de l'hôte comme étant présent : state: present.
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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier Ansible playbook avec le
FQDN
de l'hôte dont vous voulez assurer la présence dans IdM. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/playbooks/host/add-host.yml
:--- - name: Host present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Host host01.idm.example.com present ipahost: ipaadmin_password: "{{ ipaadmin_password }}" name: host01.idm.example.com state: present force: yes
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-host-is-present.yml
La procédure aboutit à la création d'une entrée d'hôte dans le serveur LDAP IdM, mais pas à l'enrôlement de l'hôte dans le domaine Kerberos IdM. Pour cela, vous devez déployer l'hôte en tant que client IdM. Pour plus de détails, voir Installation d'un client de gestion d'identité à l'aide d'un playbook Ansible.
Verification steps
Connectez-vous à votre serveur IdM en tant qu'administrateur :
$ ssh admin@server.idm.example.com Password:
Entrez la commande
ipa host-show
et indiquez le nom de l'hôte :$ ipa host-show host01.idm.example.com Host name: host01.idm.example.com Principal name: host/host01.idm.example.com@IDM.EXAMPLE.COM Principal alias: host/host01.idm.example.com@IDM.EXAMPLE.COM Password: False Keytab: False Managed by: host01.idm.example.com
Le résultat confirme que host01.idm.example.com existe dans IdM.
40.2. Assurer la présence d'une entrée d'hôte IdM avec des informations DNS en utilisant les playbooks Ansible
Cette section décrit comment assurer la présence d'entrées d'hôtes dans la gestion des identités (IdM) à l'aide des playbooks Ansible. Les entrées d'hôte sont définies par leur fully-qualified domain names
(FQDN) et leurs adresses IP.
Sans Ansible, les entrées d'hôtes sont créées dans IdM à l'aide de la commande ipa host-add
. Le résultat de l'ajout d'un hôte à IdM est l'état de l'hôte présent dans IdM. En raison de la dépendance d'Ansible à l'égard de l'idempotence, pour ajouter un hôte à IdM à l'aide d'Ansible, vous devez créer un playbook dans lequel vous définissez l'état de l'hôte comme étant présent : state: present.
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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec le
fully-qualified domain name
(FQDN) de l'hôte dont vous voulez assurer la présence dans l'IdM. En outre, si le serveur IdM est configuré pour gérer le DNS et que vous connaissez l'adresse IP de l'hôte, spécifiez une valeur pour le paramètreip_address
. L'adresse IP est nécessaire pour que l'hôte existe dans les enregistrements de ressources DNS. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/playbooks/host/host-present.yml
. Vous pouvez également inclure d'autres informations supplémentaires :--- - name: Host present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure host01.idm.example.com is present ipahost: ipaadmin_password: "{{ ipaadmin_password }}" name: host01.idm.example.com description: Example host ip_address: 192.168.0.123 locality: Lab ns_host_location: Lab ns_os_version: CentOS 7 ns_hardware_platform: Lenovo T61 mac_address: - "08:00:27:E3:B1:2D" - "52:54:00:BD:97:1E" state: present
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-host-is-present.yml
La procédure aboutit à la création d'une entrée d'hôte dans le serveur LDAP IdM, mais pas à l'enrôlement de l'hôte dans le domaine Kerberos IdM. Pour cela, vous devez déployer l'hôte en tant que client IdM. Pour plus de détails, voir Installation d'un client de gestion d'identité à l'aide d'un playbook Ansible.
Verification steps
Connectez-vous à votre serveur IdM en tant qu'administrateur :
$ ssh admin@server.idm.example.com Password:
Entrez la commande
ipa host-show
et indiquez le nom de l'hôte :$ ipa host-show host01.idm.example.com Host name: host01.idm.example.com Description: Example host Locality: Lab Location: Lab Platform: Lenovo T61 Operating system: CentOS 7 Principal name: host/host01.idm.example.com@IDM.EXAMPLE.COM Principal alias: host/host01.idm.example.com@IDM.EXAMPLE.COM MAC address: 08:00:27:E3:B1:2D, 52:54:00:BD:97:1E Password: False Keytab: False Managed by: host01.idm.example.com
La sortie confirme que host01.idm.example.com existe dans IdM.
40.3. Assurer la présence de plusieurs entrées d'hôtes IdM avec des mots de passe aléatoires à l'aide des playbooks Ansible
Le module ipahost
permet à l'administrateur système de s'assurer de la présence ou de l'absence d'entrées d'hôtes multiples dans IdM en utilisant une seule tâche Ansible. Cette section décrit comment assurer la présence de plusieurs entrées d'hôtes qui ne sont définies que par leur fully-qualified domain names
(FQDN). L'exécution du playbook Ansible génère des mots de passe aléatoires pour les hôtes.
Sans Ansible, les entrées d'hôtes sont créées dans IdM à l'aide de la commande ipa host-add
. Le résultat de l'ajout d'un hôte à IdM est l'état de l'hôte présent dans IdM. En raison de la dépendance d'Ansible à l'égard de l'idempotence, pour ajouter un hôte à IdM à l'aide d'Ansible, vous devez créer un playbook dans lequel vous définissez l'état de l'hôte comme étant présent : state: present.
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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier Ansible playbook avec les
fully-qualified domain name
(FQDN) des hôtes dont vous voulez assurer la présence dans IdM. Pour que le playbook Ansible génère un mot de passe aléatoire pour chaque hôte même si l'hôte existe déjà dans IdM et queupdate_password
est limité àon_create
, ajoutez les optionsrandom: yes
etforce: yes
. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple du fichier Markdown/usr/share/doc/ansible-freeipa/README-host.md
:--- - name: Ensure hosts with random password hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Hosts host01.idm.example.com and host02.idm.example.com present with random passwords ipahost: ipaadmin_password: "{{ ipaadmin_password }}" hosts: - name: host01.idm.example.com random: yes force: yes - name: host02.idm.example.com random: yes force: yes register: ipahost
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hosts-are-present.yml [...] TASK [Hosts host01.idm.example.com and host02.idm.example.com present with random passwords] changed: [r8server.idm.example.com] => {"changed": true, "host": {"host01.idm.example.com": {"randompassword": "0HoIRvjUdH0Ycbf6uYdWTxH"}, "host02.idm.example.com": {"randompassword": "5VdLgrf3wvojmACdHC3uA3s"}}}
Pour déployer les hôtes en tant que clients IdM à l'aide de mots de passe aléatoires à usage unique (OTP), voir Options d'autorisation pour l'inscription d'un client IdM à l'aide d'un playbook Ansible ou Installation d'un client à l'aide d'un mot de passe à usage unique : installation interactive.
Verification steps
Connectez-vous à votre serveur IdM en tant qu'administrateur :
$ ssh admin@server.idm.example.com Password:
Entrez la commande
ipa host-show
et indiquez le nom de l'un des hôtes :$ ipa host-show host01.idm.example.com Host name: host01.idm.example.com Password: True Keytab: False Managed by: host01.idm.example.com
La sortie confirme que host01.idm.example.com existe dans IdM avec un mot de passe aléatoire.
40.4. Assurer la présence d'une entrée d'hôte IdM avec plusieurs adresses IP en utilisant les playbooks Ansible
Cette section décrit comment assurer la présence d'une entrée d'hôte dans la gestion des identités (IdM) à l'aide des playbooks Ansible. L'entrée d'hôte est définie par son fully-qualified domain name
(FQDN) et ses multiples adresses IP.
Contrairement à l'utilitaire ipa host
, le module Ansible ipahost
permet de s'assurer de la présence ou de l'absence de plusieurs adresses IPv4 et IPv6 pour un hôte. La commande ipa host-mod
ne peut pas gérer les adresses IP.
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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible. Spécifiez, en tant que
name
de la variableipahost
, lefully-qualified domain name
(FQDN) de l'hôte dont vous voulez assurer la présence dans l'IdM. Spécifiez chacune des multiples valeurs IPv4 et IPv6ip_address
sur une ligne séparée en utilisant la syntaxe - ip_address pour spécifier chacune des valeurs IPv4 et IPv6 sur une ligne séparée. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/playbooks/host/host-member-ipaddresses-present.yml
. Vous pouvez également inclure des informations supplémentaires :--- - name: Host member IP addresses present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure host101.example.com IP addresses present ipahost: ipaadmin_password: "{{ ipaadmin_password }}" name: host01.idm.example.com ip_address: - 192.168.0.123 - fe80::20c:29ff:fe02:a1b3 - 192.168.0.124 - fe80::20c:29ff:fe02:a1b4 force: yes
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-host-with-multiple-IP-addreses-is-present.yml
La procédure crée une entrée d'hôte dans le serveur LDAP IdM mais n'inscrit pas l'hôte dans le domaine Kerberos IdM. Pour cela, vous devez déployer l'hôte en tant que client IdM. Pour plus de détails, voir Installation d'un client de gestion d'identité à l'aide d'un playbook Ansible.
Verification steps
Connectez-vous à votre serveur IdM en tant qu'administrateur :
$ ssh admin@server.idm.example.com Password:
Entrez la commande
ipa host-show
et indiquez le nom de l'hôte :$ ipa host-show host01.idm.example.com Principal name: host/host01.idm.example.com@IDM.EXAMPLE.COM Principal alias: host/host01.idm.example.com@IDM.EXAMPLE.COM Password: False Keytab: False Managed by: host01.idm.example.com
Le résultat confirme que host01.idm.example.com existe dans IdM.
Pour vérifier que les adresses IP multiples de l'hôte existent dans les enregistrements DNS IdM, entrez la commande
ipa dnsrecord-show
et spécifiez les informations suivantes :- Nom du domaine IdM
The name of the host
$ ipa dnsrecord-show idm.example.com host01 [...] Record name: host01 A record: 192.168.0.123, 192.168.0.124 AAAA record: fe80::20c:29ff:fe02:a1b3, fe80::20c:29ff:fe02:a1b4
La sortie confirme que toutes les adresses IPv4 et IPv6 spécifiées dans le manuel de jeu sont correctement associées à l'entrée d'hôte host01.idm.example.com.
40.5. S'assurer de l'absence d'une entrée d'hôte IdM à l'aide des playbooks Ansible
Cette section décrit comment garantir l'absence d'entrées d'hôtes dans la gestion des identités (IdM) à l'aide des playbooks Ansible.
Conditions préalables
- Informations d'identification de l'administrateur IdM
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec le
fully-qualified domain name
(FQDN) de l'hôte dont vous voulez garantir l'absence de l'IdM. Si votre domaine IdM a un DNS intégré, utilisez l'optionupdatedns: yes
pour supprimer du DNS les enregistrements associés à l'hôte, quels qu'ils soient.Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier
/usr/share/doc/ansible-freeipa/playbooks/host/delete-host.yml
:--- - name: Host absent hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Host host01.idm.example.com absent ipahost: ipaadmin_password: "{{ ipaadmin_password }}" name: host01.idm.example.com updatedns: yes state: absent
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-host-absent.yml
La procédure aboutit à :
- L'hôte n'est pas présent dans le royaume IdM Kerberos.
- L'entrée de l'hôte n'est pas présente dans le serveur LDAP IdM.
Pour supprimer la configuration IdM spécifique des services système, tels que System Security Services Daemon (SSSD), de l'hôte client lui-même, vous devez exécuter la commande ipa-client-install --uninstall
sur le client. Pour plus de détails, voir Désinstallation d'un client IdM.
Verification steps
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Afficher des informations sur host01.idm.example.com:
$ ipa host-show host01.idm.example.com ipa: ERROR: host01.idm.example.com: host not found
Le résultat confirme que l'hôte n'existe pas dans IdM.
40.6. Ressources supplémentaires
-
Voir le fichier Markdown de
/usr/share/doc/ansible-freeipa/README-host.md
. -
Voir les playbooks supplémentaires dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/host
.
Chapitre 41. Gestion des groupes d'hôtes à l'aide de la CLI IdM
Ce chapitre présente les groupes d'hôtes dans la gestion des identités (IdM) et décrit les opérations suivantes pour gérer les groupes d'hôtes et leurs membres dans l'interface de ligne de commande (CLI) :
- Visualisation des groupes d'accueil et de leurs membres
- Création de groupes d'accueil
- Suppression de groupes d'hôtes
- Ajouter des membres à un groupe d'hôtes
- Suppression de membres d'un groupe d'hôtes
- Ajout de gestionnaires de groupes d'hôtes
- Suppression des gestionnaires de groupes d'hôtes
41.1. Groupes d'accueil dans l'IdM
Les groupes d'hôtes IdM peuvent être utilisés pour centraliser le contrôle des tâches de gestion importantes, en particulier le contrôle d'accès.
Définition des groupes d'accueil
Un groupe d'hôtes est une entité qui contient un ensemble d'hôtes IdM avec des règles de contrôle d'accès communes et d'autres caractéristiques. Par exemple, vous pouvez définir des groupes d'hôtes en fonction des départements de l'entreprise, des emplacements physiques ou des exigences en matière de contrôle d'accès.
Un groupe d'hôtes dans IdM peut comprendre
- Serveurs et clients IdM
- Autres groupes d'accueil IdM
Groupes d'hôtes créés par défaut
Par défaut, le serveur IdM crée le groupe d'hôtes ipaservers
pour tous les hôtes du serveur IdM.
Membres directs et indirects du groupe
Les attributs de groupe dans IdM s'appliquent à la fois aux membres directs et indirects : lorsque le groupe d'hôtes B est membre du groupe d'hôtes A, tous les membres du groupe d'hôtes B sont considérés comme des membres indirects du groupe d'hôtes A.
41.2. Visualisation des groupes d'hôtes IdM à l'aide de la CLI
Cette section décrit comment visualiser les groupes d'hôtes IdM à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
Procédure
Recherchez tous les groupes d'hôtes à l'aide de la commande
ipa hostgroup-find
.$ ipa hostgroup-find ------------------- 1 hostgroup matched ------------------- Host-group: ipaservers Description: IPA server hosts ---------------------------- Number of entries returned 1 ----------------------------
Pour afficher tous les attributs d'un groupe d'hôtes, ajoutez l'option
--all
. Par exemple :$ ipa hostgroup-find --all ------------------- 1 hostgroup matched ------------------- dn: cn=ipaservers,cn=hostgroups,cn=accounts,dc=idm,dc=local Host-group: ipaservers Description: IPA server hosts Member hosts: xxx.xxx.xxx.xxx ipauniqueid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx objectclass: top, groupOfNames, nestedGroup, ipaobject, ipahostgroup ---------------------------- Number of entries returned 1 ----------------------------
41.3. Création de groupes d'hôtes IdM à l'aide de l'interface de programmation
Cette section décrit comment créer des groupes d'hôtes IdM à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
Procédure
Ajoutez un groupe d'hôtes à l'aide de la commande
ipa hostgroup-add
.
Par exemple, pour créer un groupe d'hôtes IdM nommé group_name et lui donner une description :$ ipa hostgroup-add --desc 'My new host group' group_name --------------------- Added hostgroup "group_name" --------------------- Host-group: group_name Description: My new host group ---------------------
41.4. Suppression des groupes d'hôtes IdM à l'aide de la CLI
Cette section décrit comment supprimer les groupes d'hôtes IdM à l'aide de l'interface de ligne de commande (CLI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
Procédure
Supprimez un groupe d'hôtes à l'aide de la commande
ipa hostgroup-del
.
Par exemple, pour supprimer le groupe d'hôtes IdM nommé group_name:$ ipa hostgroup-del group_name -------------------------- Deleted hostgroup "group_name" --------------------------
La suppression d'un groupe ne supprime pas les membres du groupe de l'IdM.
41.5. Ajout de membres de groupes d'hôtes IdM à l'aide de la CLI
Vous pouvez ajouter des hôtes et des groupes d'hôtes en tant que membres d'un groupe d'hôtes IdM à l'aide d'une seule commande.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
-
Optional. Utilisez la commande
ipa hostgroup-find
pour trouver les hôtes et les groupes d'hôtes.
Procédure
Pour ajouter un membre à un groupe d'hôtes, utilisez le site
ipa hostgroup-add-member
et fournissez les informations nécessaires. Vous pouvez spécifier le type de membre à ajouter à l'aide de ces options :
Utilisez l'option
--hosts
pour ajouter un ou plusieurs hôtes à un groupe d'hôtes IdM.
Par exemple, pour ajouter l'hôte nommé example_member au groupe nommé group_name:$ ipa hostgroup-add-member group_name --hosts example_member Host-group: group_name Description: My host group Member hosts: example_member ------------------------- Number of members added 1 -------------------------
Utilisez l'option
--hostgroups
pour ajouter un ou plusieurs groupes d'hôtes à un groupe d'hôtes IdM.
Par exemple, pour ajouter le groupe d'hôtes nommé nested_group au groupe nommé group_name:$ ipa hostgroup-add-member group_name --hostgroups nested_group Host-group: group_name Description: My host group Member host-groups: nested_group ------------------------- Number of members added 1 -------------------------
Vous pouvez ajouter plusieurs hôtes et plusieurs groupes d'hôtes à un groupe d'hôtes IdM en une seule commande en utilisant la syntaxe suivante :
$ ipa hostgroup-add-member group_name --hosts={host1,host2} --hostgroups={group1,group2}
Lorsque vous ajoutez un groupe d'hôtes en tant que membre d'un autre groupe d'hôtes, ne créez pas de groupes récursifs. Par exemple, si le groupe A est membre du groupe B, n'ajoutez pas le groupe B comme membre du groupe A. Les groupes récursifs peuvent entraîner un comportement imprévisible.
41.6. Suppression des membres du groupe d'hôtes IdM à l'aide de la CLI
Vous pouvez supprimer des hôtes ainsi que des groupes d'hôtes d'un groupe d'hôtes IdM à l'aide d'une seule commande.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
-
Optional. Utilisez la commande
ipa hostgroup-find
pour confirmer que le groupe inclut le membre que vous souhaitez supprimer.
Procédure
Pour supprimer un membre d'un groupe d'hôtes, utilisez la commande
ipa hostgroup-remove-member
et fournissez les informations nécessaires. Vous pouvez spécifier le type de membre à supprimer à l'aide des options suivantes :
Utilisez l'option
--hosts
pour supprimer un ou plusieurs hôtes d'un groupe d'hôtes IdM.
Par exemple, pour supprimer l'hôte nommé example_member du groupe nommé group_name:$ ipa hostgroup-remove-member group_name --hosts example_member Host-group: group_name Description: My host group ------------------------- Number of members removed 1 -------------------------
Utilisez l'option
--hostgroups
pour supprimer un ou plusieurs groupes d'hôtes d'un groupe d'hôtes IdM.
Par exemple, pour retirer le groupe d'hôtes nommé nested_group du groupe nommé group_name:$ ipa hostgroup-remove-member group_name --hostgroups example_member Host-group: group_name Description: My host group ------------------------- Number of members removed 1 -------------------------
La suppression d'un groupe ne supprime pas les membres du groupe de l'IdM.
Vous pouvez supprimer plusieurs hôtes et plusieurs groupes d'hôtes d'un groupe d'hôtes IdM en une seule commande en utilisant la syntaxe suivante :
$ ipa hostgroup-remove-member group_name --hosts={host1,host2} --hostgroups={group1,group2}
41.7. Ajout de gestionnaires membres de groupes d'hôtes IdM à l'aide de la CLI
Vous pouvez ajouter des hôtes ainsi que des groupes d'hôtes en tant que gestionnaires membres à un groupe d'hôtes IdM à l'aide d'une seule commande. Les gestionnaires membres peuvent ajouter des hôtes ou des groupes d'hôtes à des groupes d'hôtes IdM mais ne peuvent pas modifier les attributs d'un groupe d'hôtes.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
- Vous devez avoir le nom de l'hôte ou du groupe d'hôtes que vous ajoutez en tant que membres managers et le nom du groupe d'hôtes que vous voulez qu'ils gèrent.
Procédure
-
Optional. Utilisez la commande
ipa hostgroup-find
pour trouver les hôtes et les groupes d'hôtes. Pour ajouter un gestionnaire membre à un groupe d'hôtes, utilisez la commande
ipa hostgroup-add-member-manager
.Par exemple, pour ajouter l'utilisateur nommé example_member en tant que membre manager au groupe nommé group_name:
$ ipa hostgroup-add-member-manager group_name --user example_member Host-group: group_name Member hosts: server.idm.example.com Member host-groups: project_admins Member of netgroups: group_name Membership managed by users: example_member ------------------------- Number of members added 1 -------------------------
Utilisez l'option
--groups
pour ajouter un ou plusieurs groupes d'hôtes en tant que gestionnaire membre d'un groupe d'hôtes IdM.Par exemple, pour ajouter le groupe d'hôtes nommé admin_group en tant que gestionnaire membre du groupe nommé group_name:
$ ipa hostgroup-add-member-manager group_name --groups admin_group Host-group: group_name Member hosts: server.idm.example.com Member host-groups: project_admins Member of netgroups: group_name Membership managed by groups: admin_group Membership managed by users: example_member ------------------------- Number of members added 1 -------------------------
Après avoir ajouté un gestionnaire membre à un groupe d'hôtes, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités.
Verification steps
Utiliser la commande
ipa group-show
pour vérifier que l'utilisateur et le groupe d'hôtes ont été ajoutés en tant que gestionnaires membres.$ ipa hostgroup-show group_name Host-group: group_name Member hosts: server.idm.example.com Member host-groups: project_admins Membership managed by groups: admin_group Membership managed by users: example_member
Ressources supplémentaires
-
Voir
ipa hostgroup-add-member-manager --help
pour plus de détails. -
Voir
ipa hostgroup-show --help
pour plus de détails.
41.8. Suppression des gestionnaires membres du groupe d'hôtes IdM à l'aide de la CLI
Vous pouvez supprimer des hôtes ainsi que des groupes d'hôtes en tant que gestionnaires membres d'un groupe d'hôtes IdM à l'aide d'une seule commande. Les gestionnaires membres peuvent supprimer des groupes d'hôtes des groupes d'hôtes IdM mais ne peuvent pas modifier les attributs d'un groupe d'hôtes.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Un ticket Kerberos actif. Pour plus de détails, voir Utilisation de kinit pour se connecter manuellement à IdM.
- Vous devez disposer du nom du groupe d'hôtes du gestionnaire existant que vous supprimez et du nom du groupe d'hôtes qu'il gère.
Procédure
-
Optional. Utilisez la commande
ipa hostgroup-find
pour trouver les hôtes et les groupes d'hôtes. Pour supprimer un gestionnaire membre d'un groupe d'hôtes, utilisez la commande
ipa hostgroup-remove-member-manager
.Par exemple, pour supprimer l'utilisateur nommé example_member en tant que membre manager du groupe nommé group_name:
$ ipa hostgroup-remove-member-manager group_name --user example_member Host-group: group_name Member hosts: server.idm.example.com Member host-groups: project_admins Member of netgroups: group_name Membership managed by groups: nested_group --------------------------- Number of members removed 1 ---------------------------
Utilisez l'option
--groups
pour supprimer un ou plusieurs groupes d'hôtes en tant que gestionnaire membre d'un groupe d'hôtes IdM.Par exemple, pour supprimer le groupe d'hôtes nommé nested_group en tant que gestionnaire membre du groupe nommé group_name:
$ ipa hostgroup-remove-member-manager group_name --groups nested_group Host-group: group_name Member hosts: server.idm.example.com Member host-groups: project_admins Member of netgroups: group_name --------------------------- Number of members removed 1 ---------------------------
Après avoir supprimé un gestionnaire membre d'un groupe hôte, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités.
Verification steps
Utilisez la commande
ipa group-show
pour vérifier que l'utilisateur et le groupe d'hôtes ont été supprimés en tant que gestionnaires membres.$ ipa hostgroup-show group_name Host-group: group_name Member hosts: server.idm.example.com Member host-groups: project_admins
Ressources supplémentaires
-
Voir
ipa hostgroup-remove-member-manager --help
pour plus de détails. -
Voir
ipa hostgroup-show --help
pour plus de détails.
Chapitre 42. Gestion des groupes d'hôtes à l'aide de l'interface Web IdM
Ce chapitre présente les groupes d'hôtes dans la gestion des identités (IdM) et décrit les opérations suivantes pour gérer les groupes d'hôtes et leurs membres dans l'interface Web (Web UI) :
- Visualisation des groupes d'accueil et de leurs membres
- Création de groupes d'accueil
- Suppression de groupes d'hôtes
- Ajouter des membres à un groupe d'hôtes
- Suppression de membres d'un groupe d'hôtes
- Ajout de gestionnaires de groupes d'hôtes
- Suppression des gestionnaires de groupes d'hôtes
42.1. Groupes d'accueil dans l'IdM
Les groupes d'hôtes IdM peuvent être utilisés pour centraliser le contrôle des tâches de gestion importantes, en particulier le contrôle d'accès.
Définition des groupes d'accueil
Un groupe d'hôtes est une entité qui contient un ensemble d'hôtes IdM avec des règles de contrôle d'accès communes et d'autres caractéristiques. Par exemple, vous pouvez définir des groupes d'hôtes en fonction des départements de l'entreprise, des emplacements physiques ou des exigences en matière de contrôle d'accès.
Un groupe d'hôtes dans IdM peut comprendre
- Serveurs et clients IdM
- Autres groupes d'accueil IdM
Groupes d'hôtes créés par défaut
Par défaut, le serveur IdM crée le groupe d'hôtes ipaservers
pour tous les hôtes du serveur IdM.
Membres directs et indirects du groupe
Les attributs de groupe dans IdM s'appliquent à la fois aux membres directs et indirects : lorsque le groupe d'hôtes B est membre du groupe d'hôtes A, tous les membres du groupe d'hôtes B sont considérés comme des membres indirects du groupe d'hôtes A.
42.2. Visualisation des groupes d'hôtes dans l'interface Web IdM
Cette section décrit comment visualiser les groupes d'hôtes IdM à l'aide de l'interface Web (Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
Cliquez sur Identity → Groups et sélectionnez l'onglet Host Groups.
- La page répertorie les groupes d'hôtes existants et leur description.
- Vous pouvez rechercher un groupe d'hôtes spécifique.
Cliquez sur un groupe dans la liste pour afficher les hôtes qui appartiennent à ce groupe. Vous pouvez limiter les résultats aux membres directs ou indirects.
Sélectionnez l'onglet Host Groups pour afficher les groupes d'hôtes qui appartiennent à ce groupe (groupes d'hôtes imbriqués). Vous pouvez limiter les résultats aux membres directs ou indirects.
42.3. Création de groupes d'hôtes dans l'interface Web IdM
Cette section décrit comment créer des groupes d'hôtes IdM à l'aide de l'interface Web (Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
- Cliquez sur Identity → Groups et sélectionnez l'onglet Host Groups.
- Cliquez sur Add. La boîte de dialogue Add host group apparaît.
- Fournir les informations sur le groupe : nom (obligatoire) et description (facultative).
Cliquez sur Add pour confirmer.
42.4. Suppression de groupes d'hôtes dans l'interface Web IdM
Cette section décrit comment supprimer les groupes d'hôtes IdM à l'aide de l'interface Web (Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
- Cliquez sur Identity → Groups et sélectionnez l'onglet Host Groups.
- Sélectionnez le groupe d'hôtes IdM à supprimer et cliquez sur Delete. Une boîte de dialogue de confirmation apparaît.
Cliquez sur Delete pour confirmer
La suppression d'un groupe d'hôtes ne supprime pas les membres du groupe de l'IdM.
42.5. Ajout de membres de groupes d'hôtes dans l'interface Web IdM
Cette section décrit comment ajouter des membres de groupes d'hôtes dans IdM en utilisant l'interface web (Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
- Cliquez sur Identity → Groups et sélectionnez l'onglet Host Groups.
- Cliquez sur le nom du groupe auquel vous souhaitez ajouter des membres.
- Cliquez sur l'onglet Hosts ou Host groups selon le type de membres que vous souhaitez ajouter. La boîte de dialogue correspondante apparaît.
- Sélectionnez les hôtes ou les groupes d'hôtes à ajouter, et cliquez sur la flèche > pour les déplacer dans la colonne Prospective.
Cliquez sur Add pour confirmer.
42.6. Suppression des membres d'un groupe d'hôtes dans l'interface Web IdM
Cette section décrit comment supprimer des membres d'un groupe d'hôtes dans IdM à l'aide de l'interface web (Web UI).
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
Procédure
- Cliquez sur Identity → Groups et sélectionnez l'onglet Host Groups.
- Cliquez sur le nom du groupe dont vous souhaitez retirer des membres.
- Cliquez sur l'onglet Hosts ou Host groups en fonction du type de membres que vous souhaitez supprimer.
- Cochez la case en regard du membre que vous souhaitez supprimer.
Cliquez sur Supprimer. Une boîte de dialogue de confirmation apparaît.
- Cliquez sur Supprimer pour confirmer. Les membres sélectionnés sont supprimés.
42.7. Ajout de gestionnaires membres de groupes d'hôtes IdM à l'aide de l'interface Web
Cette section décrit comment ajouter des utilisateurs ou des groupes d'utilisateurs en tant que gestionnaires membres de groupes d'hôtes dans IdM en utilisant l'interface web (Web UI). Les gestionnaires de membres peuvent ajouter des gestionnaires de membres de groupes d'hôtes aux groupes d'hôtes IdM mais ne peuvent pas modifier les attributs d'un groupe d'hôtes.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
- Vous devez avoir le nom du groupe d'hôtes que vous ajoutez en tant que membres managers et le nom du groupe d'hôtes que vous voulez qu'ils gèrent.
Procédure
Cliquez sur Identity → Groups et sélectionnez l'onglet Host Groups.
- Cliquez sur le nom du groupe auquel vous souhaitez ajouter des gestionnaires membres.
- Cliquez sur l'onglet gestionnaires de membres User Groups ou Users selon le type de gestionnaires de membres que vous souhaitez ajouter. La boîte de dialogue correspondante apparaît.
Cliquez sur Add.
- Sélectionnez les utilisateurs ou les groupes d'utilisateurs à ajouter et cliquez sur la flèche > pour les déplacer dans la colonne Prospective.
- Cliquez sur Add pour confirmer.
Après avoir ajouté un gestionnaire membre à un groupe d'hôtes, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités.
Verification steps
Dans la boîte de dialogue Groupe hôte, vérifiez que le groupe d'utilisateurs ou l'utilisateur a été ajouté à la liste des groupes ou des utilisateurs des gestionnaires membres.
42.8. Suppression des gestionnaires membres du groupe d'hôtes IdM à l'aide de l'interface Web
Cette section décrit comment supprimer des utilisateurs ou des groupes d'utilisateurs en tant que gestionnaires de groupes d'hôtes dans IdM à l'aide de l'interface web (Web UI). Les gestionnaires de membres peuvent supprimer des gestionnaires de membres de groupes d'hôtes d'IdM, mais ne peuvent pas modifier les attributs d'un groupe d'hôtes.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
- Vous êtes connecté à l'interface Web IdM. Pour plus de détails, voir Accès à l'IdM Web UI dans un navigateur web.
- Vous devez disposer du nom du groupe d'hôtes du gestionnaire existant que vous supprimez et du nom du groupe d'hôtes qu'il gère.
Procédure
Cliquez sur Identity → Groups et sélectionnez l'onglet Host Groups.
- Cliquez sur le nom du groupe dont vous souhaitez supprimer les gestionnaires membres.
- Cliquez sur l'onglet des gestionnaires de membres User Groups ou Users selon le type de gestionnaires de membres que vous souhaitez supprimer. La boîte de dialogue correspondante apparaît.
- Sélectionnez l'utilisateur ou les groupes d'utilisateurs à supprimer et cliquez sur Delete.
Cliquez sur Delete pour confirmer.
NoteAprès avoir supprimé un gestionnaire membre d'un groupe hôte, la mise à jour peut prendre un certain temps avant de se propager à tous les clients de votre environnement de gestion des identités.
Verification steps
Dans la boîte de dialogue Groupe hôte, vérifiez que le groupe d'utilisateurs ou l'utilisateur a été supprimé de la liste des groupes ou des utilisateurs des gestionnaires membres.
Chapitre 43. Gérer les groupes d'hôtes à l'aide des playbooks Ansible
Ce chapitre présente les groupes d'hôtes dans la gestion des identités (IdM) et décrit l'utilisation d'Ansible pour effectuer les opérations suivantes impliquant des groupes d'hôtes dans la gestion des identités (IdM) :
- Groupes d'accueil dans l'IdM
- Assurer la présence de groupes d'hôtes IdM
- Assurer la présence d'hôtes dans les groupes d'hôtes IdM
- Imbrication des groupes d'hôtes IdM
- Assurer la présence des gestionnaires membres dans les groupes d'accueil de l'IdM
- Garantir l'absence d'hôtes dans les groupes d'hôtes IdM
- Garantir l'absence de groupes d'hôtes imbriqués dans les groupes d'hôtes IdM
- S'assurer de l'absence de membres gestionnaires dans les groupes d'accueil de l'IdM
43.1. Groupes d'accueil dans l'IdM
Les groupes d'hôtes IdM peuvent être utilisés pour centraliser le contrôle des tâches de gestion importantes, en particulier le contrôle d'accès.
Définition des groupes d'accueil
Un groupe d'hôtes est une entité qui contient un ensemble d'hôtes IdM avec des règles de contrôle d'accès communes et d'autres caractéristiques. Par exemple, vous pouvez définir des groupes d'hôtes en fonction des départements de l'entreprise, des emplacements physiques ou des exigences en matière de contrôle d'accès.
Un groupe d'hôtes dans IdM peut comprendre
- Serveurs et clients IdM
- Autres groupes d'accueil IdM
Groupes d'hôtes créés par défaut
Par défaut, le serveur IdM crée le groupe d'hôtes ipaservers
pour tous les hôtes du serveur IdM.
Membres directs et indirects du groupe
Les attributs de groupe dans IdM s'appliquent à la fois aux membres directs et indirects : lorsque le groupe d'hôtes B est membre du groupe d'hôtes A, tous les membres du groupe d'hôtes B sont considérés comme des membres indirects du groupe d'hôtes A.
43.2. Assurer la présence des groupes d'hôtes IdM à l'aide des playbooks Ansible
Cette section décrit comment assurer la présence de groupes d'hôtes dans la gestion des identités (IdM) à l'aide des playbooks Ansible.
Sans Ansible, les entrées de groupes d'hôtes sont créées dans IdM à l'aide de la commande ipa hostgroup-add
. Le résultat de l'ajout d'un groupe d'hôtes à IdM est l'état du groupe d'hôtes présent dans IdM. En raison de la dépendance d'Ansible à l'égard de l'idempotence, pour ajouter un groupe d'hôtes à IdM à l'aide d'Ansible, vous devez créer un playbook dans lequel vous définissez l'état du groupe d'hôtes comme étant présent : state: present.
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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
avec la liste des serveurs IdM à cibler :[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur le groupe d'hôtes. Par exemple, pour garantir la présence d'un groupe d'hôtes nommé databases, spécifiez
name: databases
dans la tâche- ipahostgroup
. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/playbooks/user/ensure-hostgroup-is-present.yml
.--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure host-group databases is present - ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases state: present
Dans le playbook, state: present signifie une demande d'ajout du groupe d'hôtes à IdM, à moins qu'il n'y existe déjà.
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hostgroup-is-present.yml
Verification steps
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Demander un ticket Kerberos pour l'administrateur :
$ kinit admin Password for admin@IDM.EXAMPLE.COM:
Affichez les informations sur le groupe d'hôtes dont vous voulez assurer la présence dans l'IdM :
$ ipa hostgroup-show databases Host-group: databases
Le groupe d'hôtes databases existe dans IdM.
43.3. Assurer la présence d'hôtes dans les groupes d'hôtes IdM à l'aide des playbooks Ansible
Cette section décrit comment assurer la présence des hôtes dans les groupes d'hôtes dans la gestion des identités (IdM) à l'aide des playbooks Ansible.
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
.
- Les hôtes que vous souhaitez référencer dans votre livre de programmation Ansible existent dans IdM. Pour plus de détails, voir Assurer la présence d'une entrée d'hôte IdM à l'aide des carnets de commande Ansible.
- Les groupes d'hôtes que vous avez référencés dans le fichier du livre de jeu Ansible ont été ajoutés à l'IdM. Pour plus de détails, voir Assurer la présence des groupes d'hôtes IdM à l'aide des playbooks Ansible.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
avec la liste des serveurs IdM à cibler :[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur l'hôte. Spécifiez le nom du groupe d'hôtes à l'aide du paramètre
name
de la variableipahostgroup
. Spécifiez le nom de l'hôte à l'aide du paramètrehost
de la variableipahostgroup
. Pour simplifier cette étape, vous pouvez copier et modifier les exemples du fichier/usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-present-in-hostgroup.yml
:--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure host-group databases is present - ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases host: - db.idm.example.com action: member
Ce livre de jeu ajoute l'hôte db.idm.example.com au groupe d'hôtes databases. La ligne
action: member
indique que lors de l'exécution de la séquence, aucune tentative n'est faite pour ajouter le groupe databases lui-même. Au lieu de cela, seule une tentative d'ajout de db.idm.example.com à databases est effectuée.Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hosts-or-hostgroups-are-present-in-hostgroup.yml
Verification steps
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Demander un ticket Kerberos pour l'administrateur :
$ kinit admin Password for admin@IDM.EXAMPLE.COM:
Afficher des informations sur un groupe d'hôtes pour savoir quels sont les hôtes présents dans ce groupe :
$ ipa hostgroup-show databases Host-group: databases Member hosts: db.idm.example.com
L'hôte db.idm.example.com est présent en tant que membre du groupe d'hôtes databases.
43.4. Imbrication des groupes d'hôtes IdM à l'aide des playbooks Ansible
Cette section décrit comment assurer la présence de groupes d'hôtes imbriqués dans les groupes d'hôtes de gestion des identités (IdM) à l'aide des playbooks Ansible.
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
.
- Les groupes d'hôtes auxquels vous faites référence dans le fichier du livre de jeu Ansible existent dans IdM. Pour plus de détails, voir Assurer la présence des groupes d'hôtes IdM à l'aide des playbooks Ansible.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
avec la liste des serveurs IdM à cibler :[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur les groupes d'hôtes. Pour s'assurer qu'un groupe d'hôtes imbriqué A existe dans un groupe d'hôtes B: dans le manuel de jeu Ansible, spécifiez, parmi les variables
- ipahostgroup
, le nom du groupe d'hôtes B à l'aide de la variablename
. Spécifiez le nom du groupe d'hôtes imbriqué A avec la variablehostgroup
. Pour simplifier cette étape, vous pouvez copier et modifier les exemples dans le fichier/usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-present-in-hostgroup.yml
:--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure hosts and hostgroups are present in existing databases hostgroup - ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases hostgroup: - mysql-server - oracle-server action: member
Ce playbook Ansible assure la présence des groupes d'hôtes myqsl-server et oracle-server dans le groupe d'hôtes databases. La ligne
action: member
indique que lorsque le playbook est exécuté, aucune tentative n'est faite pour ajouter le groupe databases lui-même à l'IdM.Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hosts-or-hostgroups-are-present-in-hostgroup.yml
Verification steps
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Demander un ticket Kerberos pour l'administrateur :
$ kinit admin Password for admin@IDM.EXAMPLE.COM:
Affiche des informations sur le groupe d'hôtes dans lequel se trouvent des groupes d'hôtes imbriqués :
$ ipa hostgroup-show databases Host-group: databases Member hosts: db.idm.example.com Member host-groups: mysql-server, oracle-server
Les groupes d'hôtes mysql-server et oracle-server existent dans le groupe d'hôtes databases.
43.5. Assurer la présence de gestionnaires membres dans les groupes d'hôtes IDM à l'aide des Playbooks Ansible
La procédure suivante décrit comment assurer la présence des gestionnaires membres dans les hôtes IdM et les groupes d'hôtes à l'aide d'un livre de jeu Ansible.
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 devez avoir le nom de l'hôte ou du groupe d'hôtes que vous ajoutez en tant que membres managers et le nom du groupe d'hôtes que vous voulez qu'ils gèrent.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créer un fichier Ansible playbook avec les informations nécessaires à la gestion des hôtes et des membres du groupe d'hôtes :
--- - name: Playbook to handle host group membership management hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure member manager user example_member is present for group_name ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: group_name membermanager_user: example_member - name: Ensure member manager group project_admins is present for group_name ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: group_name membermanager_group: project_admins
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-member-managers-host-groups.yml
Verification steps
Vous pouvez vérifier si le groupe group_name contient example_member et project_admins en tant que gestionnaires membres en utilisant la commande ipa group-show
:
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Afficher des informations sur testhostgroup:
ipaserver]$ ipa hostgroup-show group_name Host-group: group_name Member hosts: server.idm.example.com Member host-groups: testhostgroup2 Membership managed by groups: project_admins Membership managed by users: example_member
Ressources supplémentaires
-
Voir
ipa hostgroup-add-member-manager --help
. -
Voir la page de manuel
ipa
.
43.6. Garantir l'absence d'hôtes dans les groupes d'hôtes IdM à l'aide des playbooks Ansible
Cette section décrit comment garantir l'absence d'hôtes dans les groupes d'hôtes de la gestion des identités (IdM) à l'aide des playbooks Ansible.
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
.
- Les hôtes que vous souhaitez référencer dans votre livre de programmation Ansible existent dans IdM. Pour plus de détails, voir Assurer la présence d'une entrée d'hôte IdM à l'aide des carnets de commande Ansible.
- Les groupes d'hôtes auxquels vous faites référence dans le fichier du livre de jeu Ansible existent dans IdM. Pour plus de détails, voir Assurer la présence des groupes d'hôtes IdM à l'aide des playbooks Ansible.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
avec la liste des serveurs IdM à cibler :[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur l'hôte et le groupe d'hôtes. Spécifiez le nom du groupe d'hôtes en utilisant le paramètre
name
de la variableipahostgroup
. Spécifiez le nom de l'hôte dont vous voulez garantir l'absence dans le groupe d'hôtes en utilisant le paramètrehost
de la variableipahostgroup
. Pour simplifier cette étape, vous pouvez copier et modifier les exemples du fichier/usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-absent-in-hostgroup.yml
:--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure host-group databases is absent - ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases host: - db.idm.example.com action: member state: absent
Ce livre de jeu garantit l'absence de l'hôte db.idm.example.com du groupe d'hôtes databases. La ligne action: member indique que lors de l'exécution du livre de jeu, aucune tentative n'est faite pour supprimer le groupe databases lui-même.
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hosts-or-hostgroups-are-absent-in-hostgroup.yml
Verification steps
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Demander un ticket Kerberos pour l'administrateur :
$ kinit admin Password for admin@IDM.EXAMPLE.COM:
Affiche des informations sur le groupe d'hôtes et les hôtes qu'il contient :
$ ipa hostgroup-show databases Host-group: databases Member host-groups: mysql-server, oracle-server
L'hôte db.idm.example.com n'existe pas dans le groupe d'hôtes databases.
43.7. Garantir l'absence de groupes d'hôtes imbriqués à partir des groupes d'hôtes IdM à l'aide des playbooks Ansible
Cette section décrit comment garantir l'absence de groupes d'hôtes imbriqués dans les groupes d'hôtes externes dans la gestion des identités (IdM) à l'aide des playbooks Ansible.
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
.
- Les groupes d'hôtes auxquels vous faites référence dans le fichier du livre de jeu Ansible existent dans IdM. Pour plus de détails, voir Assurer la présence des groupes d'hôtes IdM à l'aide des playbooks Ansible.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
avec la liste des serveurs IdM à cibler :[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur le groupe d'hôtes. Spécifiez, parmi les variables
- ipahostgroup
, le nom du groupe d'hôtes extérieur à l'aide de la variablename
. Spécifiez le nom du groupe d'hôtes imbriqué à l'aide de la variablehostgroup
. Pour simplifier cette étape, vous pouvez copier et modifier les exemples dans le fichier/usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-absent-in-hostgroup.yml
:--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure hosts and hostgroups are absent in existing databases hostgroup - ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases hostgroup: - mysql-server - oracle-server action: member state: absent
Ce playbook s'assure que les groupes d'hôtes mysql-server et oracle-server sont absents du groupe d'hôtes databases. La ligne
action: member
indique que lorsque le playbook est exécuté, aucune tentative n'est faite pour s'assurer que le groupe databases lui-même est supprimé de l'IdM.Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hosts-or-hostgroups-are-absent-in-hostgroup.yml
Verification steps
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Demander un ticket Kerberos pour l'administrateur :
$ kinit admin Password for admin@IDM.EXAMPLE.COM:
Afficher des informations sur le groupe d'hôtes à partir duquel les groupes d'hôtes imbriqués doivent être absents :
$ ipa hostgroup-show databases Host-group: databases
La sortie confirme que les groupes d'hôtes imbriqués mysql-server et oracle-server sont absents du groupe d'hôtes extérieur databases.
43.8. Garantir l'absence de groupes d'hôtes IdM à l'aide de playbooks Ansible
Cette section décrit comment garantir l'absence de groupes d'hôtes dans la gestion des identités (IdM) à l'aide des playbooks Ansible.
Sans Ansible, les entrées de groupes d'hôtes sont supprimées de l'IdM à l'aide de la commande ipa hostgroup-del
. Le résultat de la suppression d'un groupe d'hôtes de l'IdM est l'état du groupe d'hôtes absent de l'IdM. En raison de la dépendance d'Ansible à l'idempotence, pour supprimer un groupe d'hôtes d'IdM à l'aide d'Ansible, vous devez créer un playbook dans lequel vous définissez l'état du groupe d'hôtes comme étant absent : state: absent.
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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
avec la liste des serveurs IdM à cibler :[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur le groupe d'hôtes. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier
/usr/share/doc/ansible-freeipa/playbooks/user/ensure-hostgroup-is-absent.yml
.--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - Ensure host-group databases is absent ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases state: absent
Ce playbook garantit l'absence du groupe d'hôtes databases dans l'IdM. Le
state: absent
signifie une demande de suppression du groupe d'hôtes de l'IdM, à moins qu'il ne soit déjà supprimé.Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hostgroup-is-absent.yml
Verification steps
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Demander un ticket Kerberos pour l'administrateur :
$ kinit admin Password for admin@IDM.EXAMPLE.COM:
Afficher des informations sur le groupe d'hôtes dont vous avez assuré l'absence :
$ ipa hostgroup-show databases ipa: ERROR: databases: host group not found
Le groupe d'hôtes databases n'existe pas dans IdM.
43.9. Assurer l'absence des gestionnaires de membres des groupes hôtes IdM à l'aide des playbooks Ansible
La procédure suivante décrit comment garantir l'absence de gestionnaires membres dans les hôtes IdM et les groupes d'hôtes à l'aide d'un playbook Ansible.
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 devez disposer du nom de l'utilisateur ou du groupe d'utilisateurs que vous supprimez en tant que membres gestionnaires et du nom du groupe d'hôtes qu'ils gèrent.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créer un fichier Ansible playbook avec les informations nécessaires à la gestion des hôtes et des membres du groupe d'hôtes :
--- - name: Playbook to handle host group membership management hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure member manager host and host group members are absent for group_name ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: group_name membermanager_user: example_member membermanager_group: project_admins action: member state: absent
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-member-managers-host-groups-are-absent.yml
Verification steps
Vous pouvez vérifier si le groupe group_name ne contient pas example_member ou project_admins en tant que gestionnaires membres en utilisant la commande ipa group-show
:
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Afficher des informations sur testhostgroup:
ipaserver]$ ipa hostgroup-show group_name Host-group: group_name Member hosts: server.idm.example.com Member host-groups: testhostgroup2
Ressources supplémentaires
-
Voir
ipa hostgroup-add-member-manager --help
. -
Voir la page de manuel
ipa
.
Chapitre 44. Assurer la présence de règles de contrôle d'accès basées sur l'hôte dans IdM en utilisant les playbooks Ansible
Ce chapitre décrit les stratégies d'accès basées sur l'hôte de la gestion des identités (IdM) et la manière de les définir à l'aide d'Ansible.
Ansible est un outil d'automatisation utilisé pour configurer des systèmes, déployer des logiciels et effectuer des mises à jour continues. Il inclut la prise en charge de la gestion des identités (IdM).
44.1. Règles de contrôle d'accès basées sur l'hôte dans l'IdM
Les règles de contrôle d'accès basé sur l'hôte (HBAC) définissent quels utilisateurs ou groupes d'utilisateurs peuvent accéder à quels hôtes ou groupes d'hôtes en utilisant quels services ou services d'un groupe de services. En tant qu'administrateur système, vous pouvez utiliser les règles HBAC pour atteindre les objectifs suivants :
- Limiter l'accès à un système spécifique de votre domaine aux membres d'un groupe d'utilisateurs spécifique.
- Autoriser uniquement l'utilisation d'un service spécifique pour accéder aux systèmes de votre domaine.
Par défaut, IdM est configuré avec une règle HBAC par défaut nommée allow_all, ce qui signifie un accès universel à chaque hôte pour chaque utilisateur via chaque service pertinent dans l'ensemble du domaine IdM.
Vous pouvez affiner l'accès à différents hôtes en remplaçant la règle par défaut allow_all par votre propre ensemble de règles HBAC. Pour une gestion centralisée et simplifiée du contrôle d'accès, vous pouvez appliquer les règles HBAC à des groupes d'utilisateurs, des groupes d'hôtes ou des groupes de services plutôt qu'à des utilisateurs, des hôtes ou des services individuels.
44.2. Assurer la présence d'une règle HBAC dans IdM à l'aide d'un playbook Ansible
Cette section décrit comment assurer la présence d'une règle de contrôle d'accès basé sur l'hôte (HBAC) dans la gestion des identités (IdM) à l'aide d'un playbook Ansible.
Conditions préalables
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
.
- Les utilisateurs et les groupes d'utilisateurs que vous voulez utiliser pour votre règle HBAC existent dans IdM. Pour plus de détails, voir Gérer les comptes utilisateurs à l'aide des playbooks An sible et Assurer la présence des groupes IdM et des membres des groupes à l'aide des playbooks Ansible.
- Les hôtes et les groupes d'hôtes auxquels vous voulez appliquer votre règle HBAC existent dans IdM. Pour plus de détails, voir Gérer les hôtes à l'aide des playbooks Ansible et Gérer les groupes d'hôtes à l'aide des playbooks Ansible.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez votre fichier playbook Ansible qui définit la politique HBAC dont vous voulez assurer la présence. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier
/usr/share/doc/ansible-freeipa/playbooks/hbacrule/ensure-hbacrule-allhosts-present.yml
:--- - name: Playbook to handle hbacrules hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure idm_user can access client.idm.example.com via the sshd service - ipahbacrule: ipaadmin_password: "{{ ipaadmin_password }}" name: login user: idm_user host: client.idm.example.com hbacsvc: - sshd state: present
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-new-hbacrule-present.yml
Verification steps
- Connectez-vous à l'interface Web IdM en tant qu'administrateur.
- Naviguez vers Policy → Host-Based-Access-Control → HBAC Test.
- Dans l'onglet Who, sélectionnez idm_user.
- Dans l'onglet Accessing, sélectionnez client.idm.example.com.
- Dans l'onglet Via service, sélectionnez sshd.
- Dans l'onglet Rules, sélectionnez login.
- Dans l'onglet Run test, cliquez sur le bouton Run test. Si vous voyez ACCÈS ACCORDÉ, la règle HBAC a été mise en œuvre avec succès.
Ressources supplémentaires
-
Voir les fichiers
README-hbacsvc.md
,README-hbacsvcgroup.md
, etREADME-hbacrule.md
dans le répertoire/usr/share/doc/ansible-freeipa
. -
Voir les playbooks dans les sous-répertoires du répertoire
/usr/share/doc/ansible-freeipa/playbooks
.
Chapitre 45. Gestion des clés SSH publiques pour les utilisateurs et les hôtes
SSH (Secure Shell) est un protocole qui fournit des communications sécurisées entre deux systèmes utilisant une architecture client-serveur. SSH permet aux utilisateurs de se connecter à distance aux systèmes hôtes des serveurs et permet également à une machine hôte d'accéder à une autre machine.
45.1. A propos du format des clés SSH
L'IdM accepte les deux formats de clés SSH suivants :
- Clé de type OpenSSH
- Clé brute de type RFC 4253
Notez que IdM convertit automatiquement les clés de type RFC 4253 en clés de type OpenSSH avant de les enregistrer dans le serveur LDAP IdM.
Le serveur IdM peut identifier le type de clé, par exemple une clé RSA ou DSA, à partir du bloc de clés téléchargé. Dans un fichier de clés tel que ~/.ssh/known_hosts
, une entrée de clé est identifiée par le nom d'hôte et l'adresse IP du serveur, son type et la clé. Par exemple :
host.example.com, 1.2.3.4 ssh-rsa AAA...ZZZ==
Cela diffère de l'entrée d'une clé publique d'utilisateur, dont les éléments sont classés dans l'ordre type key== comment:
\N- "ssh-rsa ABCD1234...== ipaclient.example.com\N"
Un fichier de clé, tel que id_rsa.pub
, se compose de trois parties : le type de clé, la clé et un commentaire ou un identifiant supplémentaire. Lorsque vous téléchargez une clé vers l'IdM, vous pouvez télécharger les trois parties de la clé ou seulement la clé. Si vous ne téléchargez que la clé, l'IdM identifie automatiquement le type de clé, tel que RSA ou DSA, à partir de la clé téléchargée.
Si vous utilisez l'entrée de la clé publique de l'hôte du fichier ~/.ssh/known_hosts
, vous devez la réorganiser pour qu'elle corresponde au format d'une clé utilisateur, type key== comment:
ssh-rsa AAA...ZZZ== host.example.com,1.2.3.4
L'IdM peut déterminer automatiquement le type de clé à partir du contenu de la clé publique. Le commentaire est facultatif, afin de faciliter l'identification des clés individuelles. Le seul élément requis est le blob de la clé publique.
IdM utilise des clés publiques stockées dans les fichiers OpenSSH suivants :
-
Les clés publiques de l'hôte se trouvent dans le fichier
known_hosts
. -
Les clés publiques des utilisateurs se trouvent dans le fichier
authorized_keys
.
45.2. À propos d'IdM et d'OpenSSH
Lors de l'installation d'un serveur ou d'un client IdM, dans le cadre du script d'installation :
- Un serveur et un client OpenSSH sont configurés sur la machine du client IdM.
- SSSD est configuré pour stocker et récupérer les clés SSH de l'utilisateur et de l'hôte dans le cache. Cela permet à l'IdM de servir de dépôt universel et centralisé des clés SSH.
Si vous activez le service SSH lors de l'installation du client, une clé RSA est créée lors du premier démarrage du service SSH.
Lorsque vous exécutez le script d'installation ipa-client-install
pour ajouter la machine en tant que client IdM, le client est créé avec deux clés SSH, RSA et DSA.
Dans le cadre de l'installation, vous pouvez configurer les éléments suivants :
-
Configurez OpenSSH pour qu'il fasse automatiquement confiance aux enregistrements DNS IdM où sont stockées les empreintes de clés en utilisant l'option
--ssh-trust-dns
. -
Désactive OpenSSH et empêche le script d'installation de configurer le serveur OpenSSH à l'aide de l'option
--no-sshd
. -
Empêcher l'hôte de créer des enregistrements DNS SSHFP avec ses propres entrées DNS à l'aide de l'option
--no-dns-sshfp
.
Si vous ne configurez pas le serveur ou le client pendant l'installation, vous pouvez configurer manuellement SSSD ultérieurement. Pour plus d'informations sur la configuration manuelle de SSSD, voir Configuration de SSSD pour fournir un cache aux services OpenSSH. Notez que la mise en cache des clés SSH par SSSD nécessite des privilèges administratifs sur les machines locales.
45.3. Générer des clés SSH
Vous pouvez générer une clé SSH en utilisant l'utilitaire OpenSSH ssh-keygen
.
Procédure
Pour générer une clé SSH RSA, exécutez la commande suivante :
$ ssh-keygen -t rsa -C user@example.com Generating public/private rsa key pair.
Remarque : si vous générez une clé d'hôte, remplacez user@example.com par le nom d'hôte requis, par exemple
server.example.com,1.2.3.4
.Spécifiez le fichier dans lequel vous enregistrez la clé ou appuyez sur la touche Entrée pour accepter l'emplacement par défaut affiché.
Saisissez le fichier dans lequel vous souhaitez enregistrer la clé (/home/user/.ssh/id_rsa) :
Remarque Si vous générez une clé d'hôte, enregistrez la clé dans un emplacement différent du répertoire
~/.ssh/
de l'utilisateur afin de ne pas écraser les clés existantes. par exemple,/home/user/.ssh/host_keys
.Indiquez une phrase d'authentification pour votre clé privée ou appuyez sur la touche Entrée pour laisser la phrase d'authentification vide.
Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: SHA256:ONxjcMX7hJ5zly8F8ID9fpbqcuxQK+ylVLKDMsJPxGA user4@example.com The key's randomart image is: +---[RSA 3072]----+ | ..o | | .o + | | E. . o = | | ..o= o . + | | +oS. = + o.| | . .o .* B =.+| | o + . X.+.= | | + o o.*+. .| | . o=o . | +----[SHA256]-----+
Pour télécharger cette clé SSH, utilisez la chaîne de clé publique stockée dans le fichier affiché.
45.4. Gestion des clés SSH publiques pour les hôtes
OpenSSH utilise des clés publiques pour authentifier les hôtes. Une machine tente d'accéder à une autre machine et présente sa paire de clés. La première fois que l'hôte s'authentifie, l'administrateur de la machine cible doit approuver la demande manuellement. La machine stocke ensuite la clé publique de l'hôte dans un fichier known_hosts
. Chaque fois que la machine distante tente à nouveau d'accéder à la machine cible, cette dernière vérifie son fichier known_hosts
et accorde automatiquement l'accès aux hôtes approuvés.
45.4.1. Téléchargement de clés SSH pour un hôte à l'aide de l'interface Web IdM
La gestion des identités vous permet de télécharger une clé publique SSH dans une entrée d'hôte. OpenSSH utilise des clés publiques pour authentifier les hôtes.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
Procédure
Vous pouvez récupérer la clé de votre hôte à partir d'un fichier
~/.ssh/known_hosts
. Par exemple, vous pouvez récupérer la clé de votre hôte à partir d'un fichier :server.example.com,1.2.3.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAQEApvjBvSFSkTU0WQW4eOweeo0DZZ08F9Ud21xly6FOhzwpXFGIyxvXZ52 siHBHbbqGL5 14N7UvElruyslIHx9LYUR/pPKSMXCGyboLy5aTNl5OQ5EHrhVnFDIKXkvp45945R7SKYCUtRumm0Iw6wq0XD4o ILeVbV3wmcB1bXs36ZvC/M6riefn9PcJmh6vNCvIsbMY6S FhkWUTTiOXJUDYRLwM273FfWhzHK SSQXeBp/zIn1gFvJhSZMRi9HZpDoqxLbBB9QIdIw6U4MIjNmKsSI/ASpkFm2GuQ7ZK9KuMItY2AoCuIRmRAF8iYNHBTXfFurGogXwRDjQ==
Vous pouvez également générer une clé d'hôte. Voir Générer des clés SSH.
Copiez la clé publique du fichier de clés. L'entrée complète de la clé a la forme
host name,IP type key==
. Seul lekey==
est nécessaire, mais vous pouvez stocker l'ensemble de l'entrée. Pour utiliser tous les éléments de l'entrée, réorganisez l'entrée de manière à ce qu'elle ait l'ordretype key== [host name,IP]
.cat /home/user/.ssh/host_keys.pub ssh-rsa AAAAB3NzaC1yc2E...tJG1PK2Mq++wQ== server.example.com,1.2.3.4
- Connectez-vous à l'interface Web IdM.
-
Allez dans l'onglet
Identity>Hosts
. - Cliquez sur le nom de l'hôte à modifier.
-
Dans la section
Host Settings
, cliquez sur le bouton Clé publique SSHAdd
. -
Collez la clé publique de l'hôte dans le champ
SSH public key
. -
Cliquez sur
Set
. -
Cliquez sur
Save
en haut de la fenêtre de l'interface Web IdM.
Vérification
-
Dans la section
Hosts Settings
, vérifiez que la clé est répertoriée sousSSH public keys
.
45.4.2. Téléchargement de clés SSH pour un hôte à l'aide de la CLI IdM
La gestion des identités vous permet de télécharger une clé publique SSH dans une entrée d'hôte. OpenSSH utilise des clés publiques pour authentifier les hôtes. Les clés SSH d'hôte sont ajoutées aux entrées d'hôte dans IdM, lorsque l'hôte est créé à l'aide de host-add
ou en modifiant l'entrée ultérieurement.
Remarque Les clés hôte RSA et DSA sont créées par la commande ipa-client-install
, sauf si le service SSH est explicitement désactivé dans le script d'installation.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'IdM ou rôle d'administrateur des utilisateurs.
Procédure
Exécutez la commande
host-mod
avec l'option--sshpubkey
pour télécharger la clé publique codée en base64 dans l'entrée de l'hôte.Étant donné que l'ajout d'une clé d'hôte modifie l'enregistrement DNS Secure Shell fingerprint (SSHFP) de l'hôte, utilisez l'option
--updatedns
pour mettre à jour l'entrée DNS de l'hôte. Par exemple, vous pouvez utiliser l'option pour mettre à jour l'entrée DNS de l'hôte :$ ipa host-mod --sshpubkey="ssh-rsa RjlzYQo==" --updatedns host1.example.com
Une clé réelle se termine généralement par un signe égal (=), mais elle est plus longue.
Pour télécharger plus d'une clé, entrez plusieurs paramètres de ligne de commande --sshpubkey :
--sshpubkey="RjlzYQo==" --sshpubkey="ZEt0TAo=="
NoteUn hôte peut avoir plusieurs clés publiques.
- Après avoir téléchargé les clés d'hôte, configurez SSSD pour qu'il utilise la gestion des identités comme l'un de ses domaines d'identité et configurez OpenSSH pour qu'il utilise les outils SSSD afin de gérer les clés d'hôte, comme indiqué dans la section Configurer SSSD pour qu'il fournisse un cache pour les services OpenSSH.
Vérification
Exécutez la commande
ipa host-show
pour vérifier que la clé publique SSH est associée à l'hôte spécifié :$ ipa host-show client.ipa.test ... SSH public key fingerprint: SHA256:qGaqTZM60YPFTngFX0PtNPCKbIuudwf1D2LqmDeOcuA client@IPA.TEST (ssh-rsa) ...
45.4.3. Suppression des clés SSH pour un hôte à l'aide de l'interface Web IdM
Vous pouvez supprimer les clés d'hôte lorsqu'elles expirent ou ne sont plus valides. Suivez les étapes ci-dessous pour supprimer une clé d'hôte individuelle à l'aide de l'interface Web IdM.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur d'hôte.
Procédure
- Connectez-vous à l'interface Web IdM.
-
Allez dans l'onglet
Identity>Hosts
. - Cliquez sur le nom de l'hôte à modifier.
-
Dans la section
Host Settings
, cliquez surDelete
en regard de la clé publique SSH que vous souhaitez supprimer. -
Cliquez sur
Save
en haut de la page.
Vérification
-
Dans la section
Host Settings
, vérifiez que la clé n'est plus répertoriée sousSSH public keys
.
45.4.4. Suppression des clés SSH pour un hôte à l'aide de la CLI IdM
Vous pouvez supprimer les clés d'hôte lorsqu'elles expirent ou ne sont plus valides. Suivez les étapes ci-dessous pour supprimer une clé d'hôte individuelle à l'aide de la CLI IdM.
Conditions préalables
- Privilèges d'administrateur pour gérer le CLI IdM ou le rôle d'administrateur de l'hôte.
Procédure
Pour supprimer toutes les clés SSH attribuées à un compte hôte, ajoutez l'option
--sshpubkey
à la commandeipa host-mod
sans spécifier de clé :$ kinit admin $ ipa host-mod --sshpubkey= --updatedns host1.example.com
Il est conseillé d'utiliser l'option
--updatedns
pour mettre à jour l'entrée DNS de l'hôte.
L'IdM détermine automatiquement le type de clé à partir de la clé, si le type n'est pas inclus dans la clé téléchargée.
Vérification
Exécutez la commande
ipa host-show
pour vérifier que la clé publique SSH n'est plus associée à l'hôte spécifié :ipa host-show client.ipa.test Host name: client.ipa.test Platform: x86_64 Operating system: 4.18.0-240.el8.x86_64 Principal name: host/client.ipa.test@IPA.TEST Principal alias: host/client.ipa.test@IPA.TEST Password: False Member of host-groups: ipaservers Roles: helpdesk Member of netgroups: test Member of Sudo rule: test2 Member of HBAC rule: test Keytab: True Managed by: client.ipa.test, server.ipa.test Users allowed to retrieve keytab: user1, user2, user3
45.5. Gestion des clés SSH publiques pour les utilisateurs
La gestion des identités vous permet de télécharger une clé SSH publique dans l'entrée d'un utilisateur. L'utilisateur qui a accès à la clé SSH privée correspondante peut utiliser SSH pour se connecter à une machine IdM sans utiliser les informations d'identification Kerberos. Notez que les utilisateurs peuvent toujours s'authentifier en fournissant leurs informations d'identification Kerberos s'ils se connectent à partir d'une machine où leur fichier de clé SSH privée n'est pas disponible.
45.5.1. Téléchargement de clés SSH pour un utilisateur à l'aide de l'interface Web IdM
La gestion des identités vous permet de télécharger une clé SSH publique vers une entrée utilisateur. L'utilisateur qui a accès à la clé SSH privée correspondante peut utiliser SSH pour se connecter à une machine IdM sans utiliser les informations d'identification Kerberos.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
Procédure
- Connectez-vous à l'interface Web IdM.
-
Allez dans l'onglet
Identity>Users
. - Cliquez sur le nom de l'utilisateur à modifier.
-
Dans la section
Account Settings
, cliquez sur le bouton Clé publique SSHAdd
. -
Collez la chaîne de la clé publique codée en base 64 dans le champ
SSH public key
. -
Cliquez sur
Set
. -
Cliquez sur
Save
en haut de la fenêtre de l'interface Web IdM.
Vérification
-
Dans la section
Accounts Settings
, vérifiez que la clé est répertoriée sousSSH public keys
.
45.5.2. Téléchargement de clés SSH pour un utilisateur à l'aide de la CLI IdM
La gestion des identités vous permet de télécharger une clé SSH publique vers une entrée utilisateur. L'utilisateur qui a accès à la clé SSH privée correspondante peut utiliser SSH pour se connecter à une machine IdM sans utiliser les informations d'identification Kerberos.
Conditions préalables
- Privilèges d'administrateur pour la gestion du CLI IdM ou rôle d'administrateur utilisateur.
Procédure
Exécutez la commande
ipa user-mod
avec l'option--sshpubkey
pour télécharger la clé publique codée en base64 dans l'entrée utilisateur.$ ipa user-mod user --sshpubkey="ssh-rsa AAAAB3Nza...SNc5dv== client.example.com"
Notez que dans cet exemple, vous téléchargez le type de clé, la clé et l'identifiant du nom d'hôte dans l'entrée de l'utilisateur.
Pour télécharger plusieurs clés, utilisez plusieurs fois
--sshpubkey
. Par exemple, pour télécharger deux clés SSH :--sshpubkey="AAAAB3Nza...SNc5dv==" --sshpubkey="RjlzYQo...ZEt0TAo="
Pour utiliser la redirection de commandes et pointer vers un fichier contenant la clé au lieu de coller la chaîne de clés manuellement, utilisez la commande suivante :
ipa user-mod user --sshpubkey="$(cat ~/.ssh/id_rsa.pub)" --sshpubkey="$(cat ~/.ssh/id_rsa2.pub)"
Vérification
Exécutez la commande
ipa user-show
pour vérifier que la clé publique SSH est associée à l'utilisateur spécifié :$ ipa user-show user User login: user First name: user Last name: user Home directory: /home/user Login shell: /bin/sh Principal name: user@IPA.TEST Principal alias: user@IPA.TEST Email address: user@ipa.test UID: 1118800019 GID: 1118800019 SSH public key fingerprint: SHA256:qGaqTZM60YPFTngFX0PtNPCKbIuudwf1D2LqmDeOcuA user@IPA.TEST (ssh-rsa) Account disabled: False Password: False Member of groups: ipausers Subordinate ids: 3167b7cc-8497-4ff2-ab4b-6fcb3cb1b047 Kerberos keys available: False
45.5.3. Suppression des clés SSH pour un utilisateur à l'aide de l'interface Web IdM
Suivez cette procédure pour supprimer une clé SSH d'un profil d'utilisateur dans l'interface Web IdM.
Conditions préalables
- Privilèges d'administrateur pour la gestion de l'interface Web IdM ou rôle d'administrateur des utilisateurs.
Procédure
- Connectez-vous à l'interface Web IdM.
-
Allez dans l'onglet
Identity>Users
. - Cliquez sur le nom de l'utilisateur à modifier.
-
Dans la section
Account Settings
, sousSSH public key
, cliquez surDelete
à côté de la clé que vous souhaitez supprimer. -
Cliquez sur
Save
en haut de la page.
Vérification
-
Dans la section
Account Settings
, vérifiez que la clé n'est plus répertoriée sousSSH public keys
.
45.5.4. Suppression des clés SSH pour un utilisateur à l'aide de la CLI IdM
Suivez cette procédure pour supprimer une clé SSH d'un profil d'utilisateur à l'aide de la CLI IdM.
Conditions préalables
- Privilèges d'administrateur pour la gestion du CLI IdM ou rôle d'administrateur utilisateur.
Procédure
Pour supprimer toutes les clés SSH attribuées à un compte utilisateur, ajoutez l'option
--sshpubkey
à la commandeipa user-mod
sans spécifier de clé :$ ipa user-mod user --sshpubkey=
-
Pour ne supprimer qu'une ou plusieurs clés SSH spécifiques, utilisez l'option
--sshpubkey
pour spécifier les clés que vous souhaitez conserver, en omettant la clé que vous supprimez.
Vérification
Exécutez la commande
ipa user-show
pour vérifier que la clé publique SSH n'est plus associée à l'utilisateur spécifié :$ ipa user-show user User login: user First name: user Last name: user Home directory: /home/user Login shell: /bin/sh Principal name: user@IPA.TEST Principal alias: user@IPA.TEST Email address: user@ipa.test UID: 1118800019 GID: 1118800019 Account disabled: False Password: False Member of groups: ipausers Subordinate ids: 3167b7cc-8497-4ff2-ab4b-6fcb3cb1b047 Kerberos keys available: False
Chapitre 46. Configuration de l'ordre de résolution du domaine pour résoudre les noms d'utilisateur AD courts
Par défaut, vous devez spécifier des noms entièrement qualifiés au format user_name@domain.com
ou domain.com\user_name
pour résoudre et authentifier les utilisateurs et les groupes d'un environnement Active Directory (AD). Les sections suivantes décrivent comment configurer les serveurs et les clients IdM pour résoudre les noms d'utilisateur et de groupe AD abrégés.
46.1. Comment fonctionne l'ordre de résolution de domaine
Dans les environnements de gestion d'identité (IdM) avec une confiance Active Directory (AD), Red Hat recommande de résoudre et d'authentifier les utilisateurs et les groupes en spécifiant leurs noms entièrement qualifiés. Par exemple, Red Hat recommande de résoudre et d'authentifier les utilisateurs et les groupes en spécifiant leur nom complet :
-
<idm_username>@idm.example.com
pour les utilisateurs IdM du domaineidm.example.com
-
<ad_username>@ad.example.com
pour les utilisateurs AD du domainead.example.com
Par défaut, si vous effectuez des recherches d'utilisateurs ou de groupes en utilisant le format short name, tel que ad_username
, IdM ne recherche que le domaine IdM et ne parvient pas à trouver les utilisateurs ou les groupes AD. Pour résoudre les utilisateurs ou les groupes AD à l'aide de noms courts, modifiez l'ordre dans lequel l'IdM recherche plusieurs domaines en définissant l'option domain resolution order
.
Vous pouvez définir l'ordre de résolution des domaines de manière centralisée dans la base de données IdM ou dans la configuration SSSD des clients individuels. L'IdM évalue l'ordre de résolution des domaines dans l'ordre de priorité suivant :
-
La configuration locale de
/etc/sssd/sssd.conf
. - La configuration de la vue ID.
- La configuration globale de l'IdM.
Notes
-
Vous devez utiliser des noms d'utilisateur complets si la configuration SSSD sur l'hôte inclut l'option
default_domain_suffix
et que vous souhaitez adresser une requête à un domaine non spécifié avec cette option. -
Si vous utilisez l'option
domain resolution order
et que vous interrogez l'arbrecompat
, il se peut que vous receviez plusieurs identifiants d'utilisateur (UID). Si vous êtes concerné, consultez le rapport de bogue de Pagure intitulé Inconsistent compat user objects for AD users when domain resolution order is set (Objets utilisateur compat incohérents pour les utilisateurs AD lorsque l'ordre de résolution du domaine est défini).
N'utilisez pas l'option full_name_format
SSSD sur les clients ou les serveurs IdM. L'utilisation d'une valeur autre que la valeur par défaut pour cette option modifie l'affichage des noms d'utilisateur et peut perturber les recherches dans un environnement IdM.
Ressources supplémentaires
46.2. Définition de l'ordre de résolution du domaine global sur un serveur IdM
Cette procédure définit l'ordre de résolution du domaine pour tous les clients du domaine IdM. Cet exemple définit l'ordre de résolution du domaine pour rechercher les utilisateurs et les groupes dans l'ordre suivant :
-
Domaine racine de l'Active Directory (AD)
ad.example.com
-
Domaine enfant AD
subdomain1.ad.example.com
-
Domaine IdM
idm.example.com
Conditions préalables
- Vous avez configuré un trust avec un environnement AD.
Procédure
Utilisez la commande
ipa config-mod --domain-resolution-order
pour dresser la liste des domaines à rechercher dans l'ordre de votre choix. Séparez les domaines par deux points (:
).[user@server ~]$ ipa config-mod --domain-resolution-order='ad.example.com:subdomain1.ad.example.com:idm.example.com' Maximum username length: 32 Home directory base: /home ... Domain Resolution Order: ad.example.com:subdomain1.ad.example.com:idm.example.com ...
Verification steps
Vérifiez que vous pouvez récupérer les informations d'un utilisateur du domaine
ad.example.com
en utilisant uniquement un nom court.[root@client ~]# id <ad_username> uid=1916901102(ad_username) gid=1916900513(domain users) groups=1916900513(domain users)
46.3. Définition de l'ordre de résolution des domaines pour une vue ID sur un serveur IdM
Cette procédure définit l'ordre de résolution du domaine pour une vue ID que vous pouvez appliquer à un ensemble spécifique de serveurs et de clients IdM. Cet exemple crée une vue ID nommée ADsubdomain1_first
pour l'hôte IdM client1.idm.example.com
, et définit l'ordre de résolution du domaine pour rechercher les utilisateurs et les groupes dans l'ordre suivant :
-
Domaine enfant Active Directory (AD)
subdomain1.ad.example.com
-
Domaine racine AD
ad.example.com
-
Domaine IdM
idm.example.com
L'ordre de résolution de domaine défini dans une vue ID remplace l'ordre de résolution de domaine global, mais il ne remplace pas l'ordre de résolution de domaine défini localement dans la configuration SSSD.
Conditions préalables
- Vous avez configuré un trust avec un environnement AD.
Procédure
Créez une vue ID avec l'option
--domain-resolution-order
.[user@server ~]$ ipa idview-add ADsubdomain1_first --desc "ID view for resolving AD subdomain1 first on client1.idm.example.com" --domain-resolution-order subdomain1.ad.example.com:ad.example.com:idm.example.com --------------------------------- Added ID View "ADsubdomain1_first" --------------------------------- ID View Name: ADsubdomain1_first Description: ID view for resolving AD subdomain1 first on client1.idm.example.com Domain Resolution Order: subdomain1.ad.example.com:ad.example.com:idm.example.com
Appliquer la vue ID aux hôtes IdM.
[user@server ~]$ ipa idview-apply ADsubdomain1_first --hosts client1.idm.example.com ----------------------------------- Applied ID View "ADsubdomain1_first" ----------------------------------- hosts: client1.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 1 ---------------------------------------------
Verification steps
Affiche les détails de la vue ID.
[user@server ~]$ ipa idview-show ADsubdomain1_first --show-hosts ID View Name: ADsubdomain1_first Description: ID view for resolving AD subdomain1 first on client1.idm.example.com Hosts the view applies to: client1.idm.example.com Domain resolution order: subdomain1.ad.example.com:ad.example.com:idm.example.com
Vérifiez que vous pouvez récupérer les informations d'un utilisateur du domaine
subdomain1.ad.example.com
en utilisant uniquement un nom court.[root@client1 ~]# id <user_from_subdomain1> uid=1916901106(user_from_subdomain1) gid=1916900513(domain users) groups=1916900513(domain users)
46.4. Définition de l'ordre de résolution des domaines dans SSSD sur un client IdM
Cette procédure définit l'ordre de résolution des domaines dans la configuration SSSD d'un client IdM. Cet exemple configure l'hôte IdM client2.idm.example.com
pour qu'il recherche les utilisateurs et les groupes dans l'ordre suivant :
-
Domaine enfant Active Directory (AD)
subdomain1.ad.example.com
-
Domaine racine AD
ad.example.com
-
Domaine IdM
idm.example.com
L'ordre de résolution des domaines dans la configuration locale du SSSD est prioritaire sur l'ordre de résolution des domaines de la vue globale et de la vue ID.
Conditions préalables
- Vous avez configuré un trust avec un environnement AD.
Procédure
-
Ouvrez le fichier
/etc/sssd/sssd.conf
dans un éditeur de texte. Définissez l'option
domain_resolution_order
dans la section[sssd]
du fichier.ordre_de_résolution_du_domaine = sous-domaine1.ad.exemple.com, ad.exemple.com, idm.exemple.com
- Enregistrez et fermez le fichier.
Restart the SSSD service to load the new configuration settings.
[root@client2 ~]# systemctl restart sssd
Étapes de la vérification
Vérifiez que vous pouvez récupérer les informations d'un utilisateur du domaine
subdomain1.ad.example.com
en utilisant uniquement un nom court.[root@client2 ~]# id <user_from_subdomain1> uid=1916901106(user_from_subdomain1) gid=1916900513(domain users) groups=1916900513(domain users)
46.5. Ressources supplémentaires
Chapitre 47. Activation de l'authentification à l'aide des noms de principaux d'utilisateurs AD dans l'IdM
47.1. Noms des principaux utilisateurs dans une forêt AD approuvée par IdM
En tant qu'administrateur Identity Management (IdM), vous pouvez autoriser les utilisateurs AD à utiliser des User Principal Names (UPN) alternatifs pour accéder aux ressources du domaine IdM. Un UPN est un login alternatif avec lequel les utilisateurs AD s'authentifient au format user_name@KERBEROS-REALM
. En tant qu'administrateur AD, vous pouvez définir des valeurs alternatives pour user_name
et KERBEROS-REALM
, puisque vous pouvez configurer à la fois des alias Kerberos supplémentaires et des suffixes UPN dans une forêt AD.
Par exemple, si une entreprise utilise le domaine Kerberos AD.EXAMPLE.COM, l'UPN par défaut d'un utilisateur est user@ad.example.com
. Pour permettre à vos utilisateurs de se connecter à l'aide de leur adresse électronique, par exemple user@example.com
vous pouvez configurer EXAMPLE.COM
comme UPN alternatif dans AD. Les UPN alternatifs (également connus sous le nom de enterprise UPNs) sont particulièrement pratiques si votre entreprise a récemment fait l'objet d'une fusion et que vous souhaitez fournir à vos utilisateurs un espace de noms de connexion unifié.
Les suffixes UPN ne sont visibles pour IdM que lorsqu'ils sont définis à la racine de la forêt AD. En tant qu'administrateur AD, vous pouvez définir les UPN à l'aide de l'utilitaire Active Directory Domain and Trust
ou de l'outil de ligne de commande PowerShell
.
Pour configurer les suffixes UPN pour les utilisateurs, Red Hat recommande d'utiliser des outils qui effectuent une validation d'erreur, tels que l'utilitaire Active Directory Domain and Trust
.
Red Hat recommande de ne pas configurer les UPN par le biais de modifications de bas niveau, telles que l'utilisation de commandes ldapmodify
pour définir l'attribut userPrincipalName
pour les utilisateurs, car Active Directory ne valide pas ces opérations.
Après avoir défini un nouvel UPN du côté AD, exécutez la commande ipa trust-fetch-domains
sur un serveur IdM pour récupérer les UPN mis à jour. Voir S'assurer que les UPN AD sont à jour dans IdM.
L'IdM stocke les suffixes UPN d'un domaine dans l'attribut multivaleur ipaNTAdditionalSuffixes
du sous-arbre cn=trusted_domain_name,cn=ad,cn=trusts,dc=idm,dc=example,dc=com
.
47.2. Veiller à ce que les UPN AD soient à jour dans IdM
Après avoir ajouté ou supprimé un suffixe de nom de principal utilisateur (UPN) dans une forêt Active Directory (AD) de confiance, actualisez les informations relatives à la forêt de confiance sur un serveur IdM.
Conditions préalables
- Informations d'identification de l'administrateur de l'IdM.
Procédure
Entrez la commande
ipa trust-fetch-domains
. Notez qu'une sortie apparemment vide est attendue :[root@ipaserver ~]# ipa trust-fetch-domains Realm-Name: ad.example.com ------------------------------- No new trust domains were found ------------------------------- ---------------------------- Number of entries returned 0 ----------------------------
Verification steps
Entrez la commande
ipa trust-show
pour vérifier que le serveur a récupéré le nouvel UPN. Spécifiez le nom du domaine AD lorsque vous y êtes invité :[root@ipaserver ~]# ipa trust-show Realm-Name: ad.example.com Realm-Name: ad.example.com Domain NetBIOS name: AD Domain Security Identifier: S-1-5-21-796215754-1239681026-23416912 Trust direction: One-way trust Trust type: Active Directory domain UPN suffixes: example.com
La sortie montre que le suffixe UPN example.com
fait maintenant partie de l'entrée de domaine ad.example.com
.
47.3. Collecte de données de dépannage pour les problèmes d'authentification AD UPN
Cette procédure décrit comment recueillir des données de dépannage sur la configuration du nom principal de l'utilisateur (UPN) dans votre environnement Active Directory (AD) et votre environnement IdM. Si vos utilisateurs AD ne parviennent pas à se connecter à l'aide d'autres UPN, vous pouvez utiliser ces informations pour limiter vos efforts de dépannage.
Conditions préalables
- Vous devez être connecté à un contrôleur IdM Trust ou à un agent Trust pour récupérer les informations d'un contrôleur de domaine AD.
-
Vous devez disposer des autorisations
root
pour modifier les fichiers de configuration suivants et pour redémarrer les services IdM.
Procédure
-
Ouvrez le fichier de configuration
/usr/share/ipa/smb.conf.empty
dans un éditeur de texte. Ajoutez le contenu suivant au fichier.
[global] log level = 10
-
Enregistrez et fermez le fichier
/usr/share/ipa/smb.conf.empty
. -
Ouvrez le fichier de configuration
/etc/ipa/server.conf
dans un éditeur de texte. Si vous n'avez pas ce fichier, créez-en un. Ajoutez le contenu suivant au fichier.
[global] debug = True
-
Enregistrez et fermez le fichier
/etc/ipa/server.conf
. Redémarrez le service du serveur web Apache pour appliquer les changements de configuration :
[root@server ~]# systemctl restart httpd
Récupérez les informations de confiance de votre domaine AD :
[root@server ~]# ipa trust-fetch-domains <ad.example.com>
Examinez les données de débogage et les informations de dépannage dans les fichiers journaux suivants :
-
/var/log/httpd/error_log
-
/var/log/samba/log.*
-
Ressources supplémentaires
Chapitre 48. Permettre aux utilisateurs AD d'administrer l'IdM
48.1. Remplacement des ID pour les utilisateurs AD
Vous pouvez gérer de manière centralisée l'accès des utilisateurs et des groupes Active Directory (AD) aux ressources Identity Management (IdM) dans un environnement POSIX en ajoutant une dérogation d'utilisateur ID pour un utilisateur AD en tant que membre d'un groupe IdM.
Un remplacement d'ID est un enregistrement décrivant les propriétés d'un utilisateur ou d'un groupe Active Directory spécifique dans une vue d'ID spécifique, en l'occurrence Default Trust View. Grâce à cette fonctionnalité, le serveur LDAP IdM est en mesure d'appliquer les règles de contrôle d'accès du groupe IdM à l'utilisateur AD.
Les utilisateurs AD peuvent utiliser les fonctions en libre-service de l'interface IdM, par exemple pour télécharger leurs clés SSH ou modifier leurs données personnelles. Un administrateur AD est en mesure d'administrer entièrement IdM sans avoir deux comptes et mots de passe différents.
Actuellement, certaines fonctionnalités d'IdM peuvent encore être indisponibles pour les utilisateurs AD. Par exemple, la définition de mots de passe pour les utilisateurs IdM en tant qu'utilisateur AD du groupe IdM admins
peut échouer.
N'utilisez pas not 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.
Ressources supplémentaires
48.2. Utilisation des dérogations d'ID pour permettre aux utilisateurs d'AD d'administrer l'IdM
Cette procédure décrit la création et l'utilisation d'un remplacement d'ID pour un utilisateur AD afin de lui donner des droits identiques à ceux d'un utilisateur IdM. Au cours de cette procédure, travaillez sur un serveur IdM configuré en tant que contrôleur de confiance ou agent de confiance.
Conditions préalables
- Un environnement IdM fonctionnel est mis en place. Pour plus de détails, voir Installation de la gestion des identités.
- Une confiance fonctionnelle est établie entre votre environnement IdM et AD.
Procédure
En tant qu'administrateur IdM, créez un ID override pour un utilisateur AD dans le site Default Trust View. Par exemple, pour créer un ID override pour l'utilisateur
ad_user@ad.example.com
:# kinit admin # ipa idoverrideuser-add 'default trust view' ad_user@ad.example.com
Ajoutez l'ID override du site Default Trust View en tant que membre d'un groupe IdM. Il doit s'agir d'un groupe non-POSIX, car il interagit avec Active Directory.
Si le groupe en question est membre d'un rôle IdM, l'utilisateur AD représenté par l'ID override obtient toutes les autorisations accordées par le rôle lors de l'utilisation de l'API IdM, y compris l'interface de ligne de commande et l'interface web IdM.
Par exemple, pour ajouter le remplacement de l'ID de l'utilisateur
ad_user@ad.example.com
au groupe IdMadmins
:# ipa group-add-member admins --idoverrideusers=ad_user@ad.example.com
Vous pouvez également ajouter l'annulation de l'ID à un rôle, tel que le rôle User Administrator:
# ipa role-add-member 'User Administrator' --idoverrideusers=ad_user@ad.example.com
Ressources supplémentaires
48.3. Utiliser Ansible pour permettre aux utilisateurs AD d'administrer IdM
Cette section décrit comment utiliser un playbook Ansible pour s'assurer qu'un remplacement d'ID d'utilisateur est présent dans un groupe de gestion des identités (IdM). Le remplacement de l'ID utilisateur est le remplacement d'un utilisateur Active Directory (AD) que vous avez créé dans la vue de confiance par défaut après avoir établi une confiance avec AD. Suite à l'exécution du playbook, un utilisateur AD, par exemple un administrateur AD, est en mesure d'administrer entièrement l'IdM sans avoir deux comptes et mots de passe différents.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. - Vous avez installé un trust avec AD.
-
Le remplacement de l'ID de l'utilisateur AD existe déjà dans l'IdM. Si ce n'est pas le cas, créez-le avec la commande
ipa idoverrideuser-add 'default trust view' ad_user@ad.example.com
commande. - Le groupe auquel vous ajoutez le remplacement de l'ID utilisateur existe déjà dans IdM.
-
Vous utilisez la version 4.8.7 d'IdM ou une version ultérieure. Pour connaître la version d'IdM installée sur votre serveur, entrez
ipa --version
. 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
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Créez un playbook
add-useridoverride-to-group.yml
avec le contenu suivant :--- - name: Playbook to ensure presence of users in a group hosts: ipaserver - name: Ensure the ad_user@ad.example.com user ID override is a member of the admins group: ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: admins idoverrideuser: - ad_user@ad.example.com
Dans l'exemple :
-
Secret123 est le mot de passe de l'IdM
admin
. -
admins
est le nom du groupe POSIX IdM auquel vous ajoutez l'annulation de l'ID ad_user@ad.example.com. Les membres de ce groupe disposent de tous les privilèges d'administrateur. - ad_user@ad.example.com est le remplacement de l'ID utilisateur d'un administrateur AD. L'utilisateur est stocké dans le domaine AD avec lequel une confiance a été établie.
-
Secret123 est le mot de passe de l'IdM
- 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 inventory add-useridoverride-to-group.yml
Ressources supplémentaires
- Remplacement des ID pour les utilisateurs AD
- /usr/share/doc/ansible-freeipa/README-group.md
- /usr/share/doc/ansible-freeipa/playbooks/user
- Utilisation des vues d'identification dans les environnements Active Directory
48.4. Vérifier qu'un utilisateur AD peut exécuter des commandes correctes dans le CLI IdM
Cette procédure permet de vérifier qu'un utilisateur d'Active Directory (AD) peut se connecter à l'interface de ligne de commande (CLI) de Identity Management (IdM) et exécuter les commandes correspondant à son rôle.
Détruire le ticket Kerberos actuel de l'administrateur IdM :
# kdestroy -A
NoteLa destruction du ticket Kerberos est nécessaire parce que l'implémentation GSSAPI dans MIT Kerberos choisit de préférence des informations d'identification dans le domaine du service cible, qui dans ce cas est le domaine IdM. Cela signifie que si une collection de cache d'informations d'identification, à savoir le type de cache d'informations d'identification
KCM:
,KEYRING:
, ouDIR:
, est utilisée, les informations d'identification obtenues précédemment paradmin
ou tout autre principal IdM seront utilisées pour accéder à l'API IdM au lieu des informations d'identification de l'utilisateur AD.Obtenir les informations d'identification Kerberos de l'utilisateur AD pour lequel un remplacement d'ID a été créé :
# kinit ad_user@AD.EXAMPLE.COM Password for ad_user@AD.EXAMPLE.COM:
Vérifier que l'ID override de l'utilisateur AD bénéficie des mêmes privilèges découlant de l'appartenance au groupe IdM que n'importe quel utilisateur IdM de ce groupe. Si l'ID override de l'utilisateur AD a été ajouté au groupe
admins
, l'utilisateur AD peut, par exemple, créer des groupes dans IdM :# ipa group-add some-new-group ---------------------------- Added group "some-new-group" ---------------------------- Group name: some-new-group GID: 1997000011
Chapitre 49. Utilisation de fournisseurs d'identité externes pour s'authentifier auprès de l'IdM
Cette section aborde les sujets suivants :
- Les avantages de la connexion de l'IdM à un IdP externe
- Création d'une référence à un fournisseur d'identité externe
- Gestion des références à des IdP externes
- Permettre à un utilisateur IdM de s'authentifier via un IdP externe
- Récupération d'un ticket IdM en tant qu'utilisateur IdP
- Connexion à un client IdM via SSH en tant qu'utilisateur IdP
- Liste des modèles pour les fournisseurs d'identité externes
49.1. Les avantages de la connexion d'IdM à un IdP externe
En tant qu'administrateur, vous pouvez souhaiter autoriser les utilisateurs stockés dans une source d'identité externe, telle qu'un fournisseur de services en nuage, à accéder aux systèmes RHEL reliés à votre environnement de gestion des identités (IdM). Pour ce faire, vous pouvez déléguer à cette entité externe le processus d'authentification et d'autorisation consistant à émettre des tickets Kerberos pour ces utilisateurs.
Vous pouvez utiliser cette fonction pour étendre les capacités de l'IdM et permettre aux utilisateurs stockés dans des fournisseurs d'identité externes (IdP) d'accéder aux systèmes Linux gérés par l'IdM.
49.1.1. Comment l'IdM intègre-t-il les connexions via des IdP externes ?
SSSD 2.7.0 contient le paquetage sssd-idp
, qui met en œuvre la méthode de pré-authentification Kerberos idp
. Cette méthode d'authentification suit le flux OAuth 2.0 Device Authorization Grant pour déléguer les décisions d'autorisation à des IdP externes :
-
Un utilisateur client IdM lance le flux OAuth 2.0 Device Authorization Grant, par exemple, en tentant de récupérer un TGT Kerberos à l'aide de l'utilitaire
kinit
en ligne de commande. - Un code spécial et un lien vers le site web sont envoyés par le serveur d'autorisation au backend IdM KDC.
- Le client IdM affiche le lien et le code à l'utilisateur. Dans cet exemple, le client IdM affiche le lien et le code sur la ligne de commande.
L'utilisateur ouvre le lien du site web dans un navigateur, qui peut se trouver sur un autre hôte, un téléphone portable, etc :
- L'utilisateur introduit le code spécial.
- Si nécessaire, l'utilisateur se connecte à l'IdP basé sur OAuth 2.0.
- L'utilisateur est invité à autoriser le client à accéder aux informations.
- L'utilisateur confirme l'accès à l'invite du dispositif d'origine. Dans cet exemple, l'utilisateur appuie sur la touche Entrée de la ligne de commande.
- Le backend IdM KDC interroge le serveur d'autorisation OAuth 2.0 pour accéder aux informations de l'utilisateur.
Ce qui est pris en charge :
-
Connexion à distance via SSH avec la méthode d'authentification
keyboard-interactive
activée, ce qui permet d'appeler les bibliothèques PAM (Pluggable Authentication Module). -
Connexion locale à la console via le service
logind
. -
Récupération d'un ticket Kerberos (TGT) avec l'utilitaire
kinit
.
Ce qui n'est pas pris en charge actuellement :
- Se connecter directement à l'IdM WebUI. Pour se connecter à l'IdM WebUI, il faut d'abord obtenir un ticket Kerberos.
- Se connecter directement au Cockpit WebUI. Pour se connecter au Cockpit WebUI, il faut d'abord acquérir un ticket Kerberos.
49.2. Création d'une référence à un fournisseur d'identité externe
Pour connecter des fournisseurs d'identité externes (IdP) à votre environnement de gestion des identités (IdM), créez des références IdP dans IdM. Ces exemples montrent comment configurer les références aux fournisseurs d'identité externes en fonction des différents modèles IdP. Utilisez les options suivantes pour spécifier vos paramètres :
--provider
- le modèle prédéfini pour l'un des fournisseurs d'identité connus
--client-id
- l'identifiant du client OAuth 2.0 émis par l'IdP lors de l'enregistrement de l'application. La procédure d'enregistrement de l'application étant spécifique à chaque IdP, reportez-vous à leur documentation pour plus de détails. Si l'IdP externe est Red Hat Single Sign-On (SSO), voir Création d'un client OpenID Connect.
--base-url
- uRL de base pour les modèles IdP, requis par Keycloak et Okta
--organization
- ID de domaine ou d'organisation de l'IdP, requis par Microsoft Azure
--secret
(optional) Utilisez cette option si vous avez configuré votre IdP externe pour qu'il demande un secret aux clients OAuth 2.0 confidentiels. Si vous utilisez cette option lors de la création d'une référence IdP, le secret vous est demandé de manière interactive. Protéger le secret du client sous forme de mot de passe.
NoteSSSD dans RHEL 9.1 prend uniquement en charge les clients OAuth 2.0 non confidentiels qui n'utilisent pas de secret client. Si vous souhaitez utiliser des IdP externes qui exigent un secret client pour les clients confidentiels, vous devez utiliser SSSD dans RHEL 9.2 et les versions ultérieures.
Conditions préalables
- Vous avez enregistré IdM en tant qu'application OAuth auprès de votre IdP externe et obtenu un identifiant client.
- Vous pouvez vous authentifier en tant que compte administrateur IdM.
- Vos serveurs IdM utilisent RHEL 9.1 ou une version ultérieure.
- Vos serveurs IdM utilisent SSSD 2.7.0 ou une version ultérieure.
Procédure
S'authentifier en tant qu'administrateur IdM sur un serveur IdM.
[root@server ~]# kinit admin
Créer une référence à l'IdP requis dans IdM comme indiqué dans le tableau suivant.
Identity Provider Options importantes Exemple de commande Microsoft Identity Platform,
Azure AD--provider microsoft
--organization
# ipa idp-add my-azure-idp \ --provider microsoft \ --organization main \ --client-id <azure_client_id>
Google
--provider google
# ipa idp-add my-google-idp \ --provider google \ --client-id <google_client_id>
GitHub
--provider github
# ipa idp-add my-github-idp \ --provider github \ --client-id <github_client_id>
Keycloak,
Red Hat Single Sign-On--provider keycloak
--organization
--base-url
# ipa idp-add my-keycloak-idp \ --provider keycloak \ --organization main \ --base-url keycloak.idm.example.com:8443/auth \ --client-id <keycloak_client_id>
NoteLa version Quarkus de Keycloak 17 et les versions ultérieures ont supprimé la partie
/auth/
de l'URI. Si vous utilisez la distribution non Quarkus de Keycloak dans votre déploiement, incluez/auth/
dans l'option--base-url
.Okta
--provider okta
# ipa idp-add my-okta-idp \ --provider okta --base-url dev-12345.okta.com \ --client-id <okta_client_id>
Par exemple, la commande suivante crée une référence appelée
my-keycloak-idp
à un IdP basé sur le modèle Keycloak, où l'option--base-url
spécifie l'URL du serveur Keycloak au formatserver-name.$DOMAIN:$PORT/prefix
.[root@server ~]# ipa idp-add my-keycloak-idp \ --provider keycloak --organization main \ --base-url keycloak.idm.example.com:8443/auth \ --client-id id13778 ------------------------------------------------ Added Identity Provider server "my-keycloak-idp" ------------------------------------------------ Identity Provider server name: my-keycloak-idp Authorization URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/auth Device authorization URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/auth/device Token URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/token User info URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/userinfo Client identifier: ipa_oidc_client Scope: openid email External IdP user identifier attribute: email
Vérification
Vérifiez que la sortie de la commande
ipa idp-show
indique la référence IdP que vous avez créée.[root@server ~]# ipa idp-show my-keycloak-idp
Ressources supplémentaires
- Liste des modèles pour les fournisseurs d'identité externes
-
ipa help idp-add
sortie de commande
49.3. Gestion des références à des IdP externes
Après avoir créé une référence à un fournisseur d'identité externe (IdP), vous pouvez rechercher, afficher, modifier et supprimer cette référence. Cet exemple vous montre comment gérer une référence à un fournisseur d'identité externe nommé keycloak-server1
.
Conditions préalables
- Vous pouvez vous authentifier en tant que compte administrateur IdM.
- Vos serveurs IdM utilisent RHEL 9.1 ou une version ultérieure.
- Vos serveurs IdM utilisent SSSD 2.7.0 ou une version ultérieure.
- Vous avez créé une référence à un IdP dans IdM. Voir Création d'une référence à un fournisseur d'identité externe.
Procédure
S'authentifier en tant qu'administrateur IdM sur un serveur IdM.
[root@server ~]# kinit admin
Gérer la référence IdP.
Pour trouver une référence IdP dont l'entrée comprend la chaîne
keycloak
:[root@server ~]# ipa idp-find keycloak
Pour afficher une référence IdP nommée
my-keycloak-idp
:[root@server ~]# ipa idp-show my-keycloak-idp
Pour modifier une référence IdP, utiliser la commande
ipa idp-mod
. Par exemple, pour modifier le secret d'une référence IdP nomméemy-keycloak-idp
, spécifiez l'option--secret
pour être invité à saisir le secret :[root@server ~]# ipa idp-mod my-keycloak-idp --secret
Pour supprimer une référence IdP nommée
my-keycloak-idp
:[root@server ~]# ipa idp-del my-keycloak-idp
49.4. Permettre à un utilisateur IdM de s'authentifier via un IdP externe
Pour permettre à un utilisateur IdM de s'authentifier via un fournisseur d'identité externe (IdP), associez la référence IdP externe que vous avez précédemment créée au compte de l'utilisateur. Cet exemple associe la référence IdP externe keycloak-server1
à l'utilisateur external-idp-user
.
Conditions préalables
- Votre client IdM et vos serveurs IdM utilisent RHEL 9.1 ou une version ultérieure.
- Votre client IdM et vos serveurs IdM utilisent SSSD 2.7.0 ou une version ultérieure.
- Vous avez créé une référence à un IdP dans IdM. Voir Création d'une référence à un fournisseur d'identité externe.
Procédure
Modifier l'entrée utilisateur IdM pour associer une référence IdP au compte utilisateur :
[root@server ~]# ipa user-mod external-idp-user \ --idp my-keycloak-idp \ --idp-user-id external-idp-user@idm.example.com \ --user-auth-type=idp --------------------------------- Modified user "external-idp-user" --------------------------------- User login: external-idp-user First name: Test Last name: User1 Home directory: /home/external-idp-user Login shell: /bin/sh Principal name: external-idp-user@idm.example.com Principal alias: external-idp-user@idm.example.com Email address: external-idp-user@idm.example.com UID: 35000003 GID: 35000003 User authentication types: idp External IdP configuration: keycloak External IdP user identifier: external-idp-user@idm.example.com Account disabled: False Password: False Member of groups: ipausers Kerberos keys available: False
Vérification
Vérifiez que la sortie de la commande
ipa user-show
pour cet utilisateur affiche des références à l'IdP :[root@server ~]# ipa user-show external-idp-user User login: external-idp-user First name: Test Last name: User1 Home directory: /home/external-idp-user Login shell: /bin/sh Principal name: external-idp-user@idm.example.com Principal alias: external-idp-user@idm.example.com Email address: external-idp-user@idm.example.com ID: 35000003 GID: 35000003 User authentication types: idp External IdP configuration: keycloak External IdP user identifier: external-idp-user@idm.example.com Account disabled: False Password: False Member of groups: ipausers Kerberos keys available: False
49.5. Récupération d'un ticket IdM en tant qu'utilisateur IdP
Pour récupérer un ticket Kerberos (TGT) en tant qu'utilisateur auprès d'un fournisseur d'identité externe (IdP), demander un ticket Kerberos anonyme et activer le canal Flexible Authentication via Secure Tunneling (FAST) afin de fournir une connexion sécurisée entre le client Kerberos et le Centre de distribution Kerberos (KDC).
Conditions préalables
- Votre client IdM et vos serveurs IdM utilisent RHEL 9.1 ou une version ultérieure.
- Votre client IdM et vos serveurs IdM utilisent SSSD 2.7.0 ou une version ultérieure.
- Vous avez créé une référence à un IdP dans IdM. Voir Création d'une référence à un fournisseur d'identité externe.
- Vous avez associé une référence IdP externe au compte utilisateur. Voir Permettre à un utilisateur IdM de s'authentifier via un IdP externe.
Procédure
Utilisez Anonymous PKINIT pour obtenir un ticket Kerberos et le stocker dans un fichier nommé
./fast.ccache
.[root@client ~]# kinit -n -c ./fast.ccache
Commencez à vous authentifier en tant qu'utilisateur, en utilisant l'option
-T
pour activer le canal de communication FAST.[root@client ~]# kinit -T ./fast.ccache external-idp-user Authenticate at https://oauth2.idp.com:8443/auth/realms/master/device?user_code=YHMQ-XKTL and press ENTER.:
- Dans un navigateur, authentifiez-vous en tant qu'utilisateur sur le site web indiqué dans la sortie de la commande.
- Dans la ligne de commande, appuyez sur la touche Entrée pour terminer le processus d'authentification.
Vérification
Affichez les informations de votre ticket Kerberos et confirmez que la ligne
config: pa_type
indique152
pour la préauthentification avec un IdP externe.[root@client ~]# klist -C Ticket cache: KCM:0:58420 Default principal: external-idp-user@IDM.EXAMPLE.COM Valid starting Expires Service principal 05/09/22 07:48:23 05/10/22 07:03:07 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM config: fast_avail(krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM) = yes 08/17/2022 20:22:45 08/18/2022 20:22:43 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM config: pa_type(krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM) = 152
49.6. Connexion à un client IdM via SSH en tant qu'utilisateur IdP
Pour se connecter à un client IdM via SSH en tant qu'utilisateur d'un fournisseur d'identité externe (IdP), commencez le processus de connexion sur la ligne de commande. Lorsque vous y êtes invité, effectuez le processus d'authentification sur le site Web associé au fournisseur d'identité et terminez le processus sur le client de gestion d'identité (IdM).
Conditions préalables
- Votre client IdM et vos serveurs IdM utilisent RHEL 9.1 ou une version ultérieure.
- Votre client IdM et vos serveurs IdM utilisent SSSD 2.7.0 ou une version ultérieure.
- Vous avez créé une référence à un IdP dans IdM. Voir Création d'une référence à un fournisseur d'identité externe.
- Vous avez associé une référence IdP externe au compte utilisateur. Voir Permettre à un utilisateur IdM de s'authentifier via un IdP externe.
Procédure
Tentative de connexion au client IdM via SSH.
[user@client ~]$ ssh external-idp-user@client.idm.example.com (external-idp-user@client.idm.example.com) Authenticate at https://oauth2.idp.com:8443/auth/realms/main/device?user_code=XYFL-ROYR and press ENTER.
- Dans un navigateur, authentifiez-vous en tant qu'utilisateur sur le site web indiqué dans la sortie de la commande.
- Dans la ligne de commande, appuyez sur la touche Entrée pour terminer le processus d'authentification.
Vérification
Affichez les informations de votre ticket Kerberos et confirmez que la ligne
config: pa_type
indique152
pour la préauthentification avec un IdP externe.[external-idp-user@client ~]$ klist -C Ticket cache: KCM:0:58420 Default principal: external-idp-user@IDM.EXAMPLE.COM Valid starting Expires Service principal 05/09/22 07:48:23 05/10/22 07:03:07 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM config: fast_avail(krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM) = yes 08/17/2022 20:22:45 08/18/2022 20:22:43 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM config: pa_type(krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM) = 152
49.7. Liste des modèles pour les fournisseurs d'identité externes
Les fournisseurs d'identité (IdP) suivants prennent en charge le flux d'autorisation des dispositifs OAuth 2.0 :
- Plate-forme d'identité Microsoft, y compris Azure AD
- GitHub
- Keycloak, y compris Red Hat Single Sign-On (SSO)
- Okta
Lorsque vous utilisez la commande ipa idp-add
pour créer une référence à l'un de ces IdP externes, vous pouvez spécifier le type d'IdP avec l'option --provider
, qui se développe en options supplémentaires comme décrit ci-dessous :
--provider=microsoft
Les IdP Microsoft Azure permettent un paramétrage basé sur l'identifiant du locataire Azure, que vous pouvez spécifier avec l'option
--organization
de la commandeipa idp-add
. Si vous avez besoin de la prise en charge de l'IdP live.com, spécifiez l'option--organization common
.Le choix de l'option
--provider=microsoft
permet d'utiliser les options suivantes. La valeur de l'option--organization
remplace la chaîne${ipaidporg}
dans le tableau.Option Valeur --auth-uri=URI
https://login.microsoftonline.com/${ipaidporg}/oauth2/v2.0/authorize
--dev-auth-uri=URI
https://login.microsoftonline.com/${ipaidporg}/oauth2/v2.0/devicecode
--token-uri=URI
https://login.microsoftonline.com/${ipaidporg}/oauth2/v2.0/token
--userinfo-uri=URI
--keys-uri=URI
https://login.microsoftonline.com/common/discovery/v2.0/keys
--scope=STR
openid email
--idp-user-id=STR
email
--provider=google
Le choix de
--provider=google
permet d'utiliser les options suivantes :Option Valeur --auth-uri=URI
--dev-auth-uri=URI
--token-uri=URI
--userinfo-uri=URI
--keys-uri=URI
--scope=STR
openid email
--idp-user-id=STR
email
--provider=github
Le choix de
--provider=github
permet d'utiliser les options suivantes :Option Valeur --auth-uri=URI
--dev-auth-uri=URI
--token-uri=URI
--userinfo-uri=URI
--keys-uri=URI
--scope=STR
user
--idp-user-id=STR
login
--provider=keycloak
Avec Keycloak, vous pouvez définir plusieurs domaines ou organisations. Comme il s'agit souvent d'une partie d'un déploiement personnalisé, l'URL de base et l'ID de domaine sont tous deux nécessaires, et vous pouvez les spécifier avec les options
--base-url
et--organization
de la commandeipa idp-add
:[root@client ~]# ipa idp-add MySSO --provider keycloak \ --org main --base-url keycloak.domain.com:8443/auth \ --client-id <your-client-id>
L'option
--provider=keycloak
permet d'utiliser les options suivantes. La valeur que vous indiquez dans l'option--base-url
remplace la chaîne${ipaidpbaseurl}
dans le tableau, et la valeur que vous indiquez pour l'option--organization `option replaces the string `${ipaidporg}
.Option Valeur --auth-uri=URI
https://${ipaidpbaseurl}/realms/${ipaidporg}/protocol/openid-connect/auth
--dev-auth-uri=URI
https://${ipaidpbaseurl}/realms/${ipaidporg}/protocol/openid-connect/auth/device
--token-uri=URI
https://${ipaidpbaseurl}/realms/${ipaidporg}/protocol/openid-connect/token
--userinfo-uri=URI
https://${ipaidpbaseurl}/realms/${ipaidporg}/protocol/openid-connect/userinfo
--scope=STR
openid email
--idp-user-id=STR
email
--provider=okta
Après avoir enregistré une nouvelle organisation dans Okta, une nouvelle URL de base lui est associée. Vous pouvez spécifier cette URL de base avec l'option
--base-url
de la commandeipa idp-add
:[root@client ~]# ipa idp-add MyOkta --provider okta --base-url dev-12345.okta.com --client-id <your-client-id>
Le choix de l'option
--provider=okta
permet d'utiliser les options suivantes. La valeur que vous spécifiez pour l'option--base-url
remplace la chaîne${ipaidpbaseurl}
dans le tableau.Option Valeur --auth-uri=URI
--dev-auth-uri=URI
--token-uri=URI
--userinfo-uri=URI
--scope=STR
openid email
--idp-user-id=STR
email
Ressources supplémentaires