Fungsi SaslAcceptSecurityContext (sspi.h)

Fungsi SaslAcceptSecurityContext membungkus panggilan standar ke fungsi Antarmuka Penyedia Dukungan KeamananAcceptSecurityContext (Umum) dan mencakup pembuatan cookie server SASL.

Sintaks

SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
  [in]            PCredHandle    phCredential,
  [in, optional]  PCtxtHandle    phContext,
  [in]            PSecBufferDesc pInput,
  [in]            unsigned long  fContextReq,
  [in]            unsigned long  TargetDataRep,
  [out]           PCtxtHandle    phNewContext,
  [in, out]       PSecBufferDesc pOutput,
  [out]           unsigned long  *pfContextAttr,
  [out, optional] PTimeStamp     ptsExpiry
);

Parameter

[in] phCredential

Handel ke kredensial server. Server memanggil fungsi AcquireCredentialsHandle dengan bendera INBOUND diatur untuk mengambil handel ini.

[in, optional] phContext

Penunjuk ke struktur CtxtHandle . Pada panggilan pertama ke AcceptSecurityContext (Umum), pointer ini adalah NULL. Pada panggilan berikutnya, phContext adalah handel ke konteks yang terbentuk sebagian yang dikembalikan dalam parameter phNewContext oleh panggilan pertama.

[in] pInput

Penunjuk ke struktur SecBufferDesc yang dihasilkan oleh panggilan klien ke fungsi InitializeSecurityContext (Umum) yang berisi deskriptor buffer input.

SASL memerlukan satu buffer jenis SECBUFFER_TOKEN. Buffer kosong untuk panggilan pertama ke fungsi AcceptSecurityContext (Umum) dan berisi respons tantangan yang diterima dari klien untuk panggilan kedua.

[in] fContextReq

Bendera bit yang menentukan atribut yang diperlukan oleh server untuk menetapkan konteks. Bendera bit dapat digabungkan menggunakan operasi bitwise-OR. Tabel berikut ini memperlihatkan nilai yang mungkin.

Nilai Makna
ASC_REQ_CONFIDENTIALITY
Mengenkripsi dan mendekripsi pesan.

Valid dengan Digest SSP hanya untuk SASL.

ASC_REQ_HTTP
Gunakan Digest untuk HTTP. Hilangkan bendera ini untuk menggunakan Digest sebagai mekanisme SASL.

[in] TargetDataRep

Menunjukkan representasi data, seperti pengurutan byte, pada target. Nilai ini dapat berupa SECURITY_NATIVE_DREP atau SECURITY_NETWORK_DREP.

[out] phNewContext

Penunjuk ke struktur CtxtHandle . Pada panggilan pertama ke AcceptSecurityContext (Umum), penunjuk ini menerima handel konteks baru. Pada panggilan berikutnya, phNewContext dapat sama dengan handel yang ditentukan dalam parameter phContext .

[in, out] pOutput

Penunjuk ke struktur SecBufferDesc yang berisi deskriptor buffer output. Buffer ini dikirim ke klien untuk dimasukkan ke dalam panggilan tambahan ke InitializeSecurityContext (Umum). Buffer output dapat dihasilkan meskipun fungsi mengembalikan SEC_E_OK. Setiap buffer yang dihasilkan harus dikirim kembali ke aplikasi klien.

[out] pfContextAttr

Penunjuk ke variabel yang menerima sekumpulan bendera bit yang menunjukkan atribut konteks yang ditetapkan. Untuk deskripsi berbagai atribut, lihat Persyaratan Konteks. Bendera yang digunakan untuk parameter ini diawali dengan ASC_RET, seperti ASC_RET_DELEGATE.

Jangan periksa atribut terkait keamanan hingga panggilan fungsi akhir berhasil dikembalikan. Bendera atribut yang tidak terkait dengan keamanan, seperti bendera ASC_RET_ALLOCATED_MEMORY, dapat diperiksa sebelum pengembalian akhir.

[out, optional] ptsExpiry

Penunjuk ke struktur TimeStamp yang menerima waktu kedaluwarsa konteks. Disarankan agar paket keamanan selalu mengembalikan nilai ini di waktu setempat.

Catatan Hingga panggilan terakhir proses autentikasi, waktu kedaluwarsa untuk konteks dapat salah karena lebih banyak informasi akan diberikan selama tahap negosiasi nanti. Oleh karena itu, ptsTimeStamp harus NULL hingga panggilan terakhir ke fungsi.
 

Mengembalikan nilai

Jika panggilan berhasil diselesaikan, fungsi ini mengembalikan SEC_E_OK. Tabel berikut ini memperlihatkan beberapa kemungkinan nilai pengembalian kegagalan.

Menampilkan kode Deskripsi
SEC_E_ALGORITHM_MISMATCH
Pemrosesan Authz tidak diizinkan.
SEC_E_INSUFFICIENT_MEMORY
Memori tidak cukup tersedia untuk menyelesaikan permintaan.
SEC_E_INVALID_TOKEN
Tidak ada buffer Token yang terletak di parameter pOutput , atau pesan gagal didekripsi.

Keterangan

Panggilan akhir fungsi AcceptSecurityContext (Umum) yang mengembalikan SEC_E_OK diidentifikasi. Jika token pengembalian diproduksi, pemrosesan SASL ditangguhkan untuk satu perjalanan pulang pergi kembali ke klien untuk memungkinkan token akhir diproses. Setelah pertukaran selesai, SEC_E_CONTINUE_NEEDED dikembalikan ke aplikasi dengan cookie server SASL tambahan yang dienkripsi dengan fungsi pesan SSPI. Cookie server awal menunjukkan apakah INTEGRITY dan PRIVACY didukung. Cookie server awal ini diproses oleh klien, dan klien mengembalikan cookie klien untuk menunjukkan layanan mana yang diminta klien. Cookie klien kemudian didekripsi oleh server dan layanan akhir ditentukan untuk lalu lintas pesan berikut.

Persyaratan

   
Klien minimum yang didukung Tidak ada yang didukung
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header sspi.h (termasuk Security.h)
Pustaka Secur32.lib
DLL Secur32.dll