Invitation d’un homologue à un groupe
Cette rubrique décrit le processus d’invitation d’un homologue à rejoindre un groupe d’homologues à l’aide des API de regroupement d’homologues.
Un groupe d’homologues a besoin d’informations d’identification valides pour participer. Les informations d’identification sont émises à partir de l’extérieur d’un groupe sous forme d’invitations ou directement aux membres d’un groupe lorsque des mises à jour des informations d’identification sont nécessaires.
Certificats membres de groupe
Un groupe d’homologues est créé lorsqu’une application effectue un appel à PeerGroupCreate.
Pour participer à un groupe d’homologues, chaque homologue doit avoir une identité d’homologue. Appelez PeerEnumIdentities jusqu’à ce que toutes les identités d’homologue définies pour l’homologue aient été retournées, puis sélectionnez celle qui doit être utilisée. Si aucune identité d’homologue n’existe, créez-en une en appelant PeerIdentityCreate.
Chaque identité d’homologue est associée à un ensemble spécifique d’informations d’identification qui peuvent être utilisées pour prouver l’appartenance au groupe d’homologues lors de la connexion, ainsi que lors de la publication d’enregistrements ou de l’invitation de membres supplémentaires. Ces informations d’identification sont représentées sous forme de chaînes de certificats X.509 appelées certificats d’appartenance de groupe (GMC).
Pour créer la console GMC pour une identité d’homologue, vous devez d’abord obtenir sa clé publique. Cette clé est obtenue en appelant PeerIdentityGetXML sur l’invité potentiel et en transmettant son identité d’homologue. Cette fonction retourne un certificat encodé en base 64 (IDC) qui contient la clé publique RSA utilisée pour créer la console GMC pour l’identité d’homologue (entre autres), encapsulée dans un objet blob XML, au format suivant :
<PEERIDENTITYINFO VERSION="1.0">
<IDC xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">
<!-- Base-64 encoded certificate -->
</IDC>
</PEERIDENTITYINFO>
Cette chaîne peut être transmise à PeerGroupCreateInvitation, qui retourne une invitation qui contient la console GMC pour cette identité d’homologue. L’invitation doit être transmise à l’invité à l’aide d’un autre processus, tel que la messagerie électronique, FTP ou un partage de fichiers sécurisé.
Sinon, l’IDC lui-même peut être placé dans une nouvelle structure PEER_CREDENTIAL_INFO et transmis à PeerGroupIssueCredentials, ce qui génère également une invitation.
Notez que les applications ne sont pas autorisées à ajouter des balises dans la balise PEERIDENTITYINFO ni à modifier ce fragment XML de quelque manière que ce soit. Les applications sont autorisées à incorporer ce fragment XML dans d’autres documents XML, mais doivent supprimer tout le code XML spécifique à l’application avant de passer ce fragment aux fonctions PeerGroupCreateInvitation ou PeerGroupIssueCredentials .
Les gmcs membres sont émis par les administrateurs et le créateur du groupe d’homologues. Les membres doivent obtenir de nouveaux gmcs avec des durées de vie prolongées avant que le délai d’expiration ne soit passé. L’administrateur du groupe d’homologues émet des informations d’identification mises à jour en appelant PeerGroupIssueCredentials avec les informations d’identification existantes pour cet homologue.
La structure PEER_CREDENTIAL_INFO contient les données de base sur les status d’appartenance d’un homologue, y compris la clé publique de sa console GMC. Les informations d’identification nouvellement émises peuvent être publiées sur le groupe d’homologues en définissant l’indicateur PEER_GROUP_STORE_CREDENTIALS dans l’appel à PeerGroupIssueCredentials. Lorsque le destinataire des nouvelles informations d’identification rejoint le groupe d’homologues, ses informations d’identification existantes sont mises à jour par l’infrastructure de regroupement d’homologues.
Émission d’une invitation
Un membre est invité à rejoindre le groupe d’homologues de l’une des deux manières suivantes :
- Un administrateur de groupe d’homologues appelle PeerGroupCreateInvitation, en transmettant la chaîne XML d’informations d’identité obtenue à partir de l’invité potentiel via un mécanisme hors bande commun, tel qu’un e-mail ou une session de messagerie instantanée. L’invitation est également transmise via un processus ou un mécanisme externe à l’homologue, qui la recevra en fin de compte sous la forme d’une chaîne XML ou d’un fichier texte.
- Un administrateur de groupe d’homologues appelle PeerGroupIssueCredentials. Pour utiliser cette fonction, l’homologue doit avoir déjà publié des informations d’appartenance au groupe d’homologues (PEER_MEMBER) ou disposer d’une clé publique disponible (de la paire de clés RSA utilisée pour créer l’identité de l’objet). Dans le premier cas, la structure PEER_CREDENTIAL_INFO requise pour PeerGroupIssueCredentials peut être obtenue à partir de la structure PEER_MEMBER ; dans ce dernier cas, une nouvelle structure PEER_CREDENTIAL_INFO peut être remplie avec la clé publique.
Après avoir reçu la chaîne d’invitation, l’homologue la transmet à PeerGroupJoin pour rejoindre le groupe d’homologues. Si l’appel à PeerGroupJoin réussit, l’homologue peut ensuite ouvrir le groupe d’homologues en appelant PeerGroupOpen.
Analyse d’une invitation
Si vous le souhaitez, une invitation peut être analysée en appelant PeerGroupParseInvitation, qui retourne une structure PEER_INVITATION_INFO . Les champs de la structure peuvent être facilement obtenus à des fins d’affichage.