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 :
- Dans descripteurs de sécurité pour identifier le propriétaire d’un objet et d’un groupe principal
- Dans entrées de contrôle d’accès, pour identifier le fiduciaire pour lequel l’accès est autorisé, refusé ou audité
- Dans jetons d’accès, pour identifier l’utilisateur et les groupes auxquels appartient l’utilisateur
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é. |