Fonctionnement de la sécurité de groupe
Les groupes d’homologues nécessitent que chaque membre dispose d’un certificat spécifique, appelé certificat de membre de groupe (GMC). Le certificat GMC garantit que tous les enregistrements échangés entre homologues sont signés numériquement. La clé publique d’un homologue est contenue dans les structures passées dans le cadre de la communication entre homologues, y compris PEER_CREDENTIAL_INFO.
Une console GMC peut être émise dans une chaîne. Par exemple, un créateur peut émettre un GMC à l’administrateur A, qui peut émettre une console GMC à l’administrateur B, qui peut émettre une console GMC au membre M. La chaîne GMC résultante est : creator-A-B-M>>>, qui a une longueur de 4. La longueur de la chaîne est importante, car elle ne peut pas dépasser 24. Si le 24e administrateur d’une chaîne tente d’émettre une console GMC à un membre, PeerGroupIssueCredentials ou PeerGroupCreateInvitation retourne PEER_E_CHAIN_TOO_LONG.
Une console GMC peut également être émise en appelant PeerGroupIssueCredentials. Une console GMC implique l’appartenance de l’utilisateur au groupe pour lequel elle est émise et peut avoir une durée de vie finie ou infinie. L’activité des membres de groupe ne peut pas dépasser la durée de vie spécifiée dans la console GMC.
Notes
La durée de vie infinie des GMC est actuellement définie sur 1 000 ans.
L’activité des membres de groupe est limitée par la durée de vie de la console GMC et inclut les éléments suivants :
- Opérations d’enregistrement : un homologue ne peut pas publier des informations dans un groupe après l’expiration de l’appartenance au groupe ou publier des enregistrements dont la durée de vie est supérieure à celle de l’appartenance au groupe de l’homologue.
- Opérations d’appartenance : un administrateur de groupe ne peut pas émettre une appartenance dont la durée de vie est supérieure à la date spécifiée dans l’appartenance à l’administrateur de groupe. Par exemple, si un administrateur a 500 heures restantes sur sa durée de vie GMC, toutes les adhésions émises doivent être inférieures à 500 heures.
Étant donné qu’un membre du groupe ne peut pas avoir une durée de vie supérieure à celle de l’administrateur qui invite ce membre du groupe, il est recommandé de définir la durée de vie DMC d’un administrateur comme infinie, ou pour une durée de vie très longue. Le créateur du groupe a une durée de vie infinie par défaut.
Renouvellement de l’appartenance au groupe
Pour renouveler les informations d’identification d’un administrateur ou d’un membre dont la durée de vie de la console GMC est prête à expirer, vous disposez des deux options suivantes :
Appelez PeerGroupIssueCredentials et transmettez l’identité du membre dont la durée de vie est prête à expirer. Si les informations d’identification sont spécifiées comme null et que les informations d’appartenance de l’homologue sont disponibles pour le groupe, l’heure de renouvellement est définie sur la même durée que celle spécifiée dans les informations d’identification du membre précédemment publiées. Si une période de durée différente doit être spécifiée, vous devez fournir une nouvelle structure de PEER_CREDENTIAL_INFO qui contient la nouvelle durée de vie, puis une nouvelle console de gestion de groupe est publiée pour le membre.
La fonction PeerGroupIssueCredentials accepte éventuellement l’indicateur PEER_GROUP_STORE_CREDENTIALS, qui publie automatiquement les nouvelles informations d’identification du membre dans la base de données de groupe. Lorsque le membre se connecte au groupe la prochaine fois, pour la première fois ou après sa mise hors connexion, le membre obtient la console GMC mise à jour à partir de la base de données.
Appelez PeerGroupCreateInvitation pour transmettre l’identité du membre dont la durée de vie de la console GMC est prête à expirer. Si l’expiration spécifiée dans l’invitation est NULL, la durée de vie de la console GMC est la même que celle de l’administrateur qui émet l’appartenance. Si le créateur spécifie l’expiration sur NULL, une console GMC avec une durée de vie infinie est émise.
Si un homologue reçoit un GMC qui expire avant la valeur de durée de vie de présence, les adresses de l’homologue ne sont pas disponibles dans les structures PEER_MEMBER retournées dans l’énumération lancée par un appel à PeerGroupEnumMembers. Cela se produit parce que les informations de présence ne sont pas publiées dans ce cas, même si l’indicateur PEER_DISABLE_PRESENCE n’est pas défini.