Mengundang Rekan ke Grup
Topik ini membahas proses mengundang rekan untuk bergabung dengan grup rekan menggunakan API Pengelompokan Rekan.
Kelompok sebaya memerlukan kredensial yang valid untuk berpartisipasi. Kredensial dikeluarkan dari luar grup dalam bentuk undangan, atau langsung ke anggota dalam grup saat pembaruan kredensial diperlukan.
Grup serekan dibuat saat aplikasi melakukan panggilan ke PeerGroupCreate.
Untuk berpartisipasi dalam grup serekan, setiap rekan harus memiliki identitas serekan. Panggil PeerEnumIdentities sampai semua identitas rekan yang telah ditentukan untuk rekan telah dikembalikan, dan pilih identitas yang harus digunakan. Jika identitas rekan tidak ada, buat satu dengan memanggil PeerIdentityBuat.
Setiap identitas rekan dikaitkan dengan serangkaian kredensial tertentu yang dapat digunakan untuk membuktikan keanggotaan grup rekan saat menghubungkan, serta saat menerbitkan catatan atau mengundang anggota tambahan. Kredensial ini diwakili sebagai rantai sertifikat X.509 disebut Sertifikat Keanggotaan Grup (GMC).
Untuk membuat GMC untuk sebuah identitas rekan, Anda harus terlebih dahulu mendapatkan kunci publiknya. Kunci ini diperoleh dengan memanggil PeerIdentityGetXML pada calon penerima undangan serta memasukkan identitas serekannya. Fungsi ini mengembalikan sertifikat berkode base-64 (IDC) yang berisi kunci umum RSA yang digunakan untuk membuat GMC untuk identitas serekan (antara lain), dienkapsulasi dalam blob XML, dalam format berikut:
<PEERIDENTITYINFO VERSION="1.0">
<IDC xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">
<!-- Base-64 encoded certificate -->
</IDC>
</PEERIDENTITYINFO>
String ini dapat diteruskan ke PeerGroupCreateInvitation, yang mengembalikan undangan yang berisi GMC untuk identitas rekan tersebut. Undangan harus diteruskan ke undangan menggunakan proses yang berbeda seperti email, FTP, atau berbagi file yang aman.
Atau, IDC itu sendiri dapat ditempatkan dalam struktur baru PEER_CREDENTIAL_INFO dan diteruskan ke PeerGroupIssueCredentials, yang juga akan menghasilkan undangan.
Perhatikan bahwa aplikasi tidak diizinkan untuk menambahkan tag dalam tag PEERIDENTITYINFO atau mengubah fragmen XML ini dengan cara apa pun. Aplikasi diizinkan untuk menggabungkan fragmen XML ini ke dalam dokumen XML lainnya, tetapi harus menghapus semua XML khusus aplikasi sebelum meneruskan fragmen ini ke fungsipeerGroupCreateInvitationatauPeerGroupIssueCredentials.
GMC anggota dikeluarkan oleh administrator dan pembuat grup sebaya. Anggota harus mendapatkan GMC baru dengan masa pakai yang diperpanjang sebelum waktu kedaluwarsa GMC mereka berlalu. Administrator kelompok sejawat menerbitkan kredensial yang diperbarui dengan memanggil PeerGroupIssueCredentials menggunakan kredensial yang ada untuk rekan tersebut.
Struktur PEER_CREDENTIAL_INFO berisi data dasar tentang status keanggotaan rekan, termasuk kunci publik untuk GMC mereka. Kredensial yang baru diterbitkan dapat dipublikasikan ke kelompok sebaya dengan mengatur penanda PEER_GROUP_STORE_CREDENTIALS dalam panggilan ke PeerGroupIssueCredentials. Ketika penerima kredensial baru bergabung dengan grup sebaya, kredensial yang sudah ada akan diperbarui oleh Infrastruktur Pengelompokan Peers.
Anggota diundang untuk bergabung dengan grup serekan dengan salah satu dari dua cara berikut:
- Administrator grup rekan memanggil PeerGroupCreateInvitation, meneruskan string XML informasi identitas yang diperoleh dari calon undangan melalui mekanisme out-of-band umum, seperti email atau sesi Instant Messaging (IM). Undangan juga diteruskan melalui beberapa proses atau mekanisme eksternal ke rekan, yang pada akhirnya akan menerima undangan ini sebagai sebuah string XML atau file teks.
- Administrator grup rekan memanggil PeerGroupIssueCredentials. Untuk menggunakan fungsi ini, serekan harus telah menerbitkan informasi keanggotaan ke grup serekan (PEER_MEMBER), atau memiliki kunci publik yang tersedia (dari pasangan kunci RSA yang digunakan untuk membuat identitas subjek). Dalam kasus sebelumnya, struktur PEER_CREDENTIAL_INFO yang diperlukan untuk PeerGroupIssueCredentials dapat diperoleh dari struktur PEER_MEMBER; dalam kasus terakhir, struktur PEER_CREDENTIAL_INFO baru dapat diisi dengan kunci umum.
Setelah menerima string undangan, rekan meneruskannya ke PeerGroupJoin untuk bergabung dengan grup serekan. Jika panggilan ke PeerGroupJoin berhasil, rekan nantinya dapat membuka grup serekan dengan memanggil PeerGroupOpen.
Secara opsional, undangan dapat diurai dengan memanggil PeerGroupParseInvitation, yang mengembalikan struktur PEER_INVITATION_INFO. Bidang dalam struktur dapat dengan mudah diperoleh untuk tujuan tampilan.