Bagikan melalui


Membuat Konteks Keamanan Schannel

Untuk membangun konteks keamanan yang akan melindungi komunikasi antara klien dan server, keduanya harus berpartisipasi dalam proses pertukaran informasi berikut:

Klien

  1. Klien memanggil fungsi InitializeSecurityContext (Umum).
  2. Schannel mulai membuat konteks keamanan sesuai dengan aturan protokol keamanan yang dipilih. Kode pengembalian fungsi menunjukkan apakah klien harus memanggil fungsi lagi. InitializeSecurityContext (Umum) dapat mengembalikan token yang mewakili konteks.
  3. Jika token dikembalikan, klien mengirimkannya ke server.
  4. Ketika InitializeSecurityContext (Umum) mengembalikan SEC_E_OK, klien selesai. Jika fungsi mengembalikan SEC_I_CONTINUE_NEEDED, klien harus menunggu server mengirimkan token. Ketika klien memiliki token dari server, klien harus memanggil fungsiInitializeSecurityContext (Umum) lagi. (Kembali ke langkah 2.)

Server

  1. Server menunggu klien mengirim pesan yang berisi token keamanan. Server meneruskan token yang diterima dari klien ke fungsi AcceptSecurityContext (Umum).
  2. Schannel dibangun berdasarkan konteks keamanan parsial yang diwakili oleh token. Schannel mengembalikan token ke server, dan kode pengembalian yang menunjukkan apakah server harus memanggil fungsi lagi.
  3. Jika token dikembalikan, server mengirimkannya ke klien.
  4. Ketika AcceptSecurityContext (Umum) mengembalikan SEC_E_OK, server selesai. Jika fungsi mengembalikan SEC_I_CONTINUE_NEEDED, maka server harus menunggu klien mengirimkan token. Ketika server memiliki token dari klien, server harus memanggil fungsi AcceptSecurityContext (Umum) lagi. (Kembali ke langkah 2.)

Jika salah satu fungsi mengembalikan nilai selain SEC_E_OK, SEC_I_CONTINUE_NEEDED, atau SEC_E_INCOMPLETE_MESSAGE (lihat paragraf berikut) terjadi kesalahan. Klien dan server harus memanggil fungsi DeleteSecurityContext untuk menghapus konteks keamanan yang ditetapkan sebagian.

Kasus khusus yang dapat mengubah pemrosesan klien dan server adalah ketika terlalu sedikit atau terlalu banyak informasi dikirim ke klien atau server dari pihak lain. Dalam kasus informasi yang terlalu sedikit, kedua fungsi mengembalikan SEC_E_INCOMPLETE_MESSAGE. Untuk informasi tentang mengenali dan menangani informasi yang tidak mencukupi atau berlebih, lihat Buffer tambahan yang Dikembalikan oleh Schannel.

Melakukan Autentikasi Menggunakan Schannel

Sertifikat Pemetaan

Memvalidasi Kredensial Schannel Secara Manual