Identificateurs de sécurité
Un identificateur de sécurité (SID) est une valeur unique de longueur variable utilisée pour identifier un tiers de confiance. chaque compte possède un SID unique émis par une autorité, par exemple un contrôleur de domaine Windows, et stocké dans une base de données de sécurité. Chaque fois qu’un utilisateur ouvre une session, le système récupère le SID de cet utilisateur dans la base de données et le place dans le jeton d’accès de cet utilisateur. le système utilise le SID dans le jeton d’accès pour identifier l’utilisateur dans toutes les interactions suivantes avec Windows la sécurité. Lorsqu’un SID a été utilisé en tant qu’identificateur unique pour un utilisateur ou un groupe, il ne peut jamais être utilisé pour identifier un autre utilisateur ou groupe.
la sécurité Windows utilise des sid dans les éléments de sécurité suivants :
- Dans les descripteurs de sécurité pour identifier le propriétaire d’un objet et d’un groupe principal
- Dans les entrées de contrôle d’accès, pour identifier le tiers de confiance pour lequel l’accès est autorisé, refusé ou audité
- Dans les jetons d’accès, pour identifier l’utilisateur et les groupes auxquels l’utilisateur appartient
Outre les SID spécifiques à un domaine qui sont créés de manière unique et attribués à des utilisateurs et des groupes spécifiques, des sid connus identifient des groupes génériques et des utilisateurs génériques. Par exemple, les SID bien connus, tout le monde et tout le monde, identifient un groupe qui comprend 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 (états-unis) du système d’exploitation Windows possède un SID connu nommé « \ administrateurs BUILTIN » qui peut avoir un nom différent sur les versions internationales du système. Pour obtenir un exemple qui crée un SID bien connu, consultez recherche d’un SID dans un jeton d’accès en C++.
Si vous devez utiliser des SID, ne les manipulez pas directement. Au lieu de cela, utilisez les fonctions suivantes.
| Fonction | Description |
|---|---|
| AllocateAndInitializeSid | Alloue et initialise un SID avec le nombre spécifié de sous-autorités. |
| ConvertSidToStringSid a | Convertit un SID en un format de chaîne approprié pour l’affichage, le stockage ou le transport. |
| ConvertStringSidToSid | Convertit un SID au format chaîne en un SID fonctionnel valide. |
| Copysid a | Copie un SID source dans une mémoire tampon. |
| EqualPrefixSid | Teste l’égalité de deux valeurs de préfixe SID. Un préfixe SID est le SID entier, à l’exception de la dernière valeur de sous-autorité. |
| EqualSid | Teste l’égalité de deux sid. 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 pour 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-autorités. |
| GetSidSubAuthority | Récupère un pointeur vers une sous-autorité spécifiée dans un SID. |
| GetSidSubAuthorityCount | Récupère le nombre de sous-autorités 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-autorités est inférieur au maximum. |
| 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é. |