邀请对等方加入组

本主题讨论使用对等分组 API 邀请对等方加入对等组的过程。

对等组需要有效的凭据才能参与。 凭据以邀请的形式从组外部颁发,或者在需要凭据更新时直接颁发给组内的成员。

组成员证书

当应用程序调用 PeerGroupCreate 时,将创建对等组。

若要参与对等组,每个对等方必须具有对等标识。 调用 PeerEnumIdentities ,直到返回为对等方定义的所有对等标识,并选择应使用的对等标识。 如果对等标识不存在,请通过调用 PeerIdentityCreate 创建一个。

每个对等标识都与一组特定的凭据相关联,这些凭据可用于在连接时以及发布记录或邀请其他成员时证明对等组成员身份。 这些凭据表示为称为组成员身份 证书的 X.509 证书 链 (GMC) 。

若要为对等标识创建 GMC,必须先获取其公钥。 此密钥是通过对潜在被邀请者调用 PeerIdentityGetXML 并传入其对等标识来获取的。 此函数返回一个 base-64 编码的证书 (IDC) ,其中包含用于创建 GMC 的对等标识 (的 RSA 公钥,) 封装在 XML Blob 中,格式如下:

<PEERIDENTITYINFO VERSION="1.0">
     <IDC xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">
          <!-- Base-64 encoded certificate  -->
     </IDC>
</PEERIDENTITYINFO>

此字符串可以传递给 PeerGroupCreateInvitation,这将返回包含该对等标识的 GMC 的邀请。 必须使用其他流程(如电子邮件、FTP 或安全文件共享)将邀请传递给被邀请者。

或者,可以将 IDC 本身置于新的 PEER_CREDENTIAL_INFO 结构中,并传递给 PeerGroupIssueCredentials,后者同样会生成邀请。

请注意,不允许应用程序在 PEERIDENTITYINFO 标记中添加标记,也不允许以任何方式修改此 XML 片段。 允许应用程序将此 XML 片段合并到其他 XML 文档中,但在将此片段传递给 PeerGroupCreateInvitationPeerGroupIssueCredentials 函数之前,必须去除所有特定于应用程序的 XML。

成员 GMC 由管理员和对等组创建者颁发。 成员必须在过期前获取具有延长其 GMC 生存期的新 GMC。 对等组管理员通过使用该对等方的现有凭据调用 PeerGroupIssueCredentials 来颁发更新的凭据。

PEER_CREDENTIAL_INFO结构包含有关对等方成员身份的基本数据,包括其 GMC 的公钥。 通过在调用 PeerGroupIssueCredentials 时设置 PEER_GROUP_STORE_CREDENTIALS 标志,可以将新颁发的凭据发布到对等组。 当新凭据的接收者加入对等组时,现有凭据将由对等分组基础结构更新。

发出邀请

通过以下两种方式之一邀请成员加入对等组:

  • 对等组管理员调用 PeerGroupCreateInvitation,传入通过常见的带外机制(如电子邮件或 IM 会话)从潜在被邀请者获得的标识信息 XML 字符串。 邀请还会通过一些外部进程或机制传递给对等方,后者最终将以 XML 字符串或文本文件的形式接收邀请。
  • 对等组管理员调用 PeerGroupIssueCredentials。 若要使用此函数,对等方必须已将成员身份信息发布到对等组 (PEER_MEMBER) ,或者具有用于创建使用者标识) 的 RSA 密钥对的可用公钥 (。 在前一种情况下,可以从 PEER_MEMBER 结构中获取 PeerGroupIssueCredentials 所需的 PEER_CREDENTIAL_INFO 结构;在后一种情况下,可以使用公钥填充新的 PEER_CREDENTIAL_INFO 结构。

收到邀请字符串后,对等方将其传递给 PeerGroupJoin 以加入对等组。 如果对 PeerGroupJoin 的调用成功,则对等方稍后可以通过调用 PeerGroupOpen 打开对等组。

分析邀请

(可选)可以通过调用 PeerGroupParseInvitation 来分析邀请,这将返回 PEER_INVITATION_INFO 结构。 可以轻松获取 结构中的字段以进行显示。