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