Partager via


Identificateurs de sécurité

Un identificateur de sécurité (SID) est une valeur unique de longueur variable utilisée pour identifier un fiduciaire. Chaque compte a un SID unique émis par une autorité, telle qu’un contrôleur de domaine Windows, et stocké dans une base de données de sécurité. Chaque fois qu’un utilisateur se connecte, le système récupère le SID de cet utilisateur à partir de la base de données et le place dans le jeton d’accès pour cet utilisateur. Le système utilise le SID dans le jeton d’accès pour identifier l’utilisateur dans toutes les interactions suivantes avec la sécurité Windows. Lorsqu’un SID a été utilisé comme identificateur unique pour un utilisateur ou un groupe, il ne peut jamais être utilisé à nouveau pour identifier un autre utilisateur ou groupe.

La sécurité Windows utilise des SID dans les éléments de sécurité suivants :

Outre les SID uniques créés et spécifiques au domaine affectés à des utilisateurs et groupes spécifiques, il existe DES SID connus qui identifient des groupes génériques et des utilisateurs génériques. Par exemple, les SID connus, Tout le monde et tout le monde, identifient un groupe qui inclut tous les utilisateurs.

La plupart des applications n’ont jamais besoin d’utiliser des SID. Étant donné que les noms de SID connus peuvent varier, vous devez utiliser les fonctions pour générer le SID à partir de constantes prédéfinies plutôt que d’utiliser le nom du SID connu. Par exemple, la version anglaise américaine du système d’exploitation Windows a un SID bien connu nommé « BUILTIN\Administrators » qui peut avoir un autre nom sur les versions internationales du système. Pour obtenir un exemple qui génère un SID bien connu, consultez Recherche d’un SID dans un jeton d’accès en C++.

Si vous avez besoin de travailler avec des SID, ne les manipulez pas directement. Utilisez plutôt les fonctions suivantes.

Fonction Description
AllocateAndInitializeSid Alloue et initialise un SID avec le nombre spécifié de sous-auteurs.
ConvertSidToStringSid Convertit un SID en format de chaîne adapté à l’affichage, au stockage ou au transport.
ConvertStringSidToSid Convertit un SID au format chaîne en SID valide et fonctionnel.
CopySid Copie un SID source dans une mémoire tampon.
equalPrefixSid Teste deux valeurs de préfixe SID pour l’égalité. Un préfixe SID est l’ensemble du SID, à l’exception de la dernière valeur de sous-authentification.
equalSid Teste deux SID pour l’égalité. Ils doivent correspondre exactement pour être considérés comme égaux.
FreeSid Libère un SID précédemment alloué à l’aide de la fonction AllocateAndInitializeSid.
GetLengthSid Récupère la longueur d’un SID.
GetSidIdentifierAuthority Récupère un pointeur vers l’autorité d’identificateur d’un SID.
GetSidLengthRequired Récupère la taille de la mémoire tampon requise pour stocker un SID avec un nombre spécifié de sous-authorités.
GetSidSubAuthority Récupère un pointeur vers une sous-autorisation spécifiée dans un SID.
GetSidSubAuthorityCount Récupère le nombre de sous-auteurs dans un SID.
InitializeSid Initialise une structure SID.
IsValidSid Teste la validité d’un SID en vérifiant que le numéro de révision se trouve dans une plage connue et que le nombre de sous-authorités est inférieur à la valeur maximale.
LookupAccountName Récupère le SID qui correspond à un nom de compte spécifié.
LookupAccountSid Récupère le nom du compte qui correspond à un SID spécifié.