Tanya Jawab Umum EAPHost Supplicant

Topik ini memberikan jawaban atas pertanyaan umum tentang EAPHost Supplicant API.

Mengapa saya perlu memanggil "EapHostPeerInitialize" dan "EapHostPeerUninitialize"?

EapHostPeerInitialize dan EapHostPeerUninitialize menginisialisasi dan tidak menginisialisasi lingkungan COM yang digunakan untuk komunikasi interproscess (IPC) antara supplicant dan EAPHost.

Fungsi mana yang harus dipanggil pada utas yang telah diinisialisasi COM untuk Single Threaded Apartment (STA)?

EapHostPeerInvokeConfigUI, EapHostPeerInvokeInteractiveUI, dan EapHostAuthenticatorInvokeConfigUI harus dipanggil pada utas yang telah diinisialisasi COM untuk STA. Ini dapat dicapai dengan memanggil COM API CoInitialize; ketika pemohon telah selesai dengan utas STA CoUninitialize harus dipanggil sebelum keluar.

Bagaimana cara EAPHost mengekspor materi kunci?

Metode EAPHost EAP mengekspor Kunci Sesi Master (MSK)dalam bentuk kunci Microsoft Point-to-Point Encryption (MPPE) ke supplicant. Materi kunci tambahan, seperti Pairwise Master Keys (PMK) dapat dihasilkan oleh supplicant menggunakan MSK. Agar metode menghasilkan kunci lain selama autentikasi, metode dapat menyediakan kunci tersebut sebagai atribut khusus vendor kepada pemohon.

Apa itu Extended Master Session Key (EMSK)?

EMSK adalah bahan kunci tambahan yang diekspor oleh metode EAP. PANJANG EMSK setidaknya 64 oktet. EMSK dibagikan antara klien EAP dan server, tetapi tidak dibagikan dengan pengautentikasi atau pihak ketiga lainnya. Saat ini, EMSK dicadangkan untuk digunakan di masa mendatang. Untuk informasi selengkapnya, lihat Persyaratan Metode EAP Protokol Autentikasi yang Dapat Diperluas untuk LAN Nirkabel.

Kapan metode mengonsumsi atau menghasilkan atribut?

Jika metode EAP menghasilkan atribut atau EMSK, maka pemohon akan menggunakan atribut. Biasanya, atribut yang dikonsumsi oleh pemohon adalah kunci. Atribut yang dikonsumsi adalah eatPeerId, eatServerId, eatMethodId, eatEMSK, dan eatCredentialsChanged. Untuk informasi selengkapnya, lihat EAP_ATTRIBUTE_TYPE. Metode EAP dapat mengekspor bahan EMSK khusus aplikasi tambahan seperti:

  • ID Sesi
  • [Perlindungan Akses Jaringan] (/windows/desktop/NAP/network-access-protection-start-page) (NAP)

Atribut mana yang digunakan 802.1X?

Supplikasi nirkabel asli 802.1X akan menggunakan atribut autentikasi EAPHost berikut:

  • Mengubah pemberitahuan kata sandi
  • Kunci kirim/terima Microsoft Point-to-Point Encryption (MPPE). VendorId/VendorType = 331/16 dan 311/1

Kunci MPPE adalah kunci yang dihasilkan di akhir autentikasi yang berhasil, oleh peer dan authenticator. Kunci ini digunakan oleh 802.1X dan server akses jaringan (NAS) untuk mengenkripsi dan mendekripsi paket yang dikirim dan diterima.

Apa tujuan bendera EAP_PEER_FLAG_GUEST_ACCESS di EAPHost?

Ketika bendera ini diatur dalam EAPHostPeerBeginSession, EAPHost menginterpretasikan ini sebagai permintaan otorisasi tamu dan mengembalikan respons identitas NULL yang kemudian diteruskan ke pemohon dan dikembalikan ke Server EAP.

Bagaimana autentikasi mesin permintaan pemohon?

Autentikasi komputer diminta dengan mengatur bendera EAP_FLAG_MACHINE_AUTH .

Bagaimana autentikasi pengguna permintaan pemohon?

Autentikasi pengguna diminta dengan tidak mengatur bendera EAP_FLAG_MACHINE_AUTH .

Kapan saya menggunakan "EapHostPeerFreeErrorMemory" alih-alih fungsi "EapHostFreeEapError"?

Fungsi EapHostPeerFreeErrorMemory hanya digunakan untuk membebaskan struktur EAP_ERROR yang dikembalikan oleh API konfigurasi EAPHost. API konfigurasi EAPHost didefinisikan dalam EapHostPeerConfigApis.h. Sebaliknya, fungsi EapHostPeerFreeEapError digunakan untuk membebaskan struktur EAP_ERROR yang dikembalikan oleh API run-time EAPHost. API run-time EAPHost ditentukan dalam EapPApis.h. Jangan pernah menggunakan versi run-time API dengan versi konfigurasi API; untuk melakukannya dapat menghasilkan hasil yang tidak terduga.

Saya telah menerapkan UI saya di utas yang sama dengan yang saya gunakan untuk memproses sesi autentikasi EAP pada supplicant. Setelah saya menaikkan kotak dialog antarmuka pengguna interaktif untuk mendapatkan kredensial atau data input pengguna lainnya, panggilan berikutnya oleh EAPHost ke metode peer EAP gagal dengan "ERROR_OBJECT_DISCONNECTED". Mengapa ini terjadi, dan bagaimana cara mengatasinya?

Meskipun API sisi klien EAPHost semuanya adalah API gaya C, API C ini hanyalah pembungkus API COM yang sesuai. API gaya C berjalan di lingkungan COM multithreaded. Kode UI biasanya berjalan dalam model utas apartemen. Karena kedua model utas bertentangan satu sama lain, jangan jalankan kode UI dalam utas yang sama yang memproses autentikasi EAP.

Mengapa API "EapHostPeerBeginSession" mengambil penunjuk fungsi panggilan balik "NotificationHandler" sebagai parameter?

NotificationHandler adalah mekanisme di mana pemohon diberi tahu bahwa harus mengautentikasi ulang. Ada berbagai skenario di mana pemohon diperlukan untuk mengautentikasi ulang, termasuk autentikasi dengan Perlindungan Akses Jaringan (NAP).

Apa tujuan parameter "pConnectionId" dalam API "EapHostPeerBeginSession"?

pConnectionId adalah penunjuk ke nilai GUID yang ditentukan supplicant yang digunakan untuk mengidentifikasi koneksi jaringan milik supplicant. Ketika fungsi panggilan balik NotificationHandler dipanggil, GUID ini diteruskan untuk mengidentifikasi koneksi jaringan yang akan digunakan pemohon untuk permintaan autentikasi ulang.

Bagaimana cara mengetahui apakah ada perubahan status karantina?

Pengguna akan menerima pemberitahuan visual tentang perubahan status karantina hanya jika setidaknya ada satu klien pemberlakuan karantina Network Access Protection (NAP) (QEC) yang terdaftar di sistem. Jika demikian, ketika autentikasi ulang dicoba, pengguna akan diberi tahu tentang perubahan status karantina melalui jendela pop-up.

Bagaimana cara mengetahui apakah ada antarmuka terdaftar NAP QEC dalam sistem?

Buka jendela yang ditinggikan, dan jalankan perintah netsh berikut: "netsh nap client show state". Untuk informasi selengkapnya, lihat Perintah Netsh.

Jika pemohon mengautentikasi ulang, ID koneksi apa yang harus digunakan QEC selama autentikasi ulang?

QEC harus menggunakan ID koneksi yang sama yang digunakan untuk sesi sebelumnya.

Hanya ada satu metode supplikasi EAPHost yang tersedia untuk menampilkan kotak dialog antarmuka pengguna (UI), tetapi metode EAP memiliki beberapa jenis panggilan khusus UI. Metode apa yang harus dipanggil pemohon ketika mendapatkan kode tindakan "EapHostPeerResponseInvokeUI", yang menunjukkan bahwa pemohon harus menampilkan kotak dialog UI?

Tidak ada tindakan yang diperlukan oleh pengguna karena EAPHost tahu fungsi metode mana yang akan dipanggil. Misalnya, ketika kode tindakan EapHostPeerResponseInvokeUI dikembalikan, pemohon memanggil ketiga fungsi ini dalam urutan berikut: EapHostPeerGetUIContext, EapHostPeerInvokeInteractiveUI, dan EapHostPeerSetUIContext.

Apa perbedaan antara BLOB kredensial dan BLOB konfigurasi?

BLOB kredensial hanya berisi data pengguna seperti nama pengguna, kata sandi, dan PIN. BLOB konfigurasi berisi pengaturan yang mengontrol perilaku metode .

Dapatkah saya mengaktifkan pelacakan di sisi klien EAPHost?

Ya. Untuk informasi selengkapnya, lihat Mengaktifkan Pelacakan.