Memanggil DLL Ekstensi
Catatan
Layanan Autentikasi Internet (IAS) diganti namanya menjadi Network Policy Server (NPS) yang dimulai dengan Windows Server 2008. Konten topik ini berlaku untuk IAS dan NPS. Di seluruh teks, NPS digunakan untuk merujuk ke semua versi layanan, termasuk versi yang awalnya disebut sebagai IAS.
DLL Ekstensi NPS harus mengekspor setidaknya salah satu fungsi panggilan balik berikut: RadiusExtensionProcess, RadiusExtensionProcessEx, atau RadiusExtensionProcess2. NPS memanggil fungsi ini untuk setiap paket autentikasi atau akuntansi yang valid yang diterimanya dari Network Access Server (NAS). NPS memanggil fungsi-fungsi ini di setiap DLL yang tercantum di bawah kunci registri Parameter NPS. DLL dipanggil dalam urutan di mana mereka terdaftar.
Jika DLL Ekstensi NPS mengekspor lebih dari salah satu fungsi di atas, NPS hanya memanggil salah satunya: fungsi terbaru yang didukung oleh sistem operasi.
Catatan
IAS awalnya hanya mendukung RadiusExtensionProcess. IAS juga mendukung RadiusExtensionProcessEx. IAS (dan NPS selanjutnya) mendukung juga RadiusExtensionProcess2.
DLL Ekstensi NPS juga dapat mengekspor fungsi RadiusExtensionInit dan RadiusExtensionTerm . Jika ada, NPS memanggil fungsi-fungsi ini ketika layanan dimulai dan berhenti, masing-masing.
Fungsi Panggilan Balik RadiusExtensionProcess
Dalam DLL Ekstensi Autentikasi, RadiusExtensionProcess menerima semua atribut yang diterima oleh NPS dalam permintaan autentikasi atau akuntansi. Dengan menggunakan atribut ini, fungsi dapat melakukan validasi tambahan, memverifikasi otorisasi pengguna, atau mengirim rekaman akuntansi ke server status pusat.
Dalam DLL Ekstensi Otorisasi, RadiusExtensionProcess menerima semua atribut yang dihasilkan oleh layanan otorisasi NPS. Ini adalah atribut yang dikembalikan dalam paket Access-Accept.
Setelah memanggil RadiusExtensionProcess, tindakan yang dilakukan oleh NPS tergantung pada nilai pengembalian RadiusExtensionProcess, dan nilai yang dikembalikan dalam parameter pfAction . Nilai-nilai ini tercantum dalam tabel berikut.
pfAction | DLL Ekstensi Autentikasi | DLL Ekstensi Otorisasi |
---|---|---|
Terima | Melewati DLL Ekstensi Autentikasi lebih lanjut dan juga melewati mekanisme autentikasi NPS. | Terima tidak diperbolehkan. |
Tolak | Melewati DLL Ekstensi Autentikasi lebih lanjut dan juga melewati mekanisme autentikasi NPS. Access-Reject paket dikirim. | Melewati DLL Ekstensi Otorisasi lebih lanjut. |
Lanjutkan | Paket dikirim ke DLL Ekstensi Autentikasi berikutnya atau ke mekanisme autentikasi NPS jika tidak ada lagi DLL Ekstensi Autentikasi yang tercantum dalam registri. | Paket dikirim ke DLL Ekstensi Otorisasi berikutnya atau ke log akuntansi NPS jika tidak ada lagi DLL Ekstensi Otorisasi yang tercantum dalam registri. |
Untuk semua DLL Ekstensi, jika RadiusExtensionProcess mengembalikan kesalahan, paket akan dibuang. Paket yang dibuang karena kesalahan tidak diproses oleh log akuntansi NPS.
Jika terjadi kesalahan, NPS memposting peristiwa kesalahan umum ke Log Peristiwa. Disarankan agar DLL Ekstensi menyediakan pengelogan kesalahan tambahan.
Untuk informasi selengkapnya dan diagram yang mewakili proses sebelumnya, lihat Tentang Ekstensi NPS.
RadiusExtensionProcess harus mengembalikan kesalahan jika tidak dapat memverifikasi penerimaan atau penolakan paket. Situasi ini mungkin muncul jika masalah jaringan mencegah RadiusExtensionProcess berkomunikasi dengan database autentikasi penggunanya.
Saat memproses paket akuntansi, parameter pfAction adalah NULL, sehingga pfAction tidak dapat diatur. Mengembalikan kesalahan dari fungsi RadiusExtensionProcess saat memproses permintaan akuntansi menyebabkan permintaan dibuang oleh NPS.
Catatan
Setelah menerima, NPS tidak memanggil RadiusExtensionProcess di DLL yang tersisa dalam urutan. Karena beberapa fungsi autentikasi juga dapat menerapkan otorisasi, melompati fungsi autentikasi tersebut dapat menyebabkan otorisasi dihilangkan. Jika instans RadiusExtensionProcess mengembalikan Terima, penting untuk tidak membuat asumsi tentang otorisasi yang diambil.
Jika Lanjutkan atau Terima dikembalikan, profil yang sesuai dengan realm dikirim kembali dalam paket Access-Accept.
DLL Ekstensi Autentikasi harus dirancang untuk berdampingan dengan penyedia autentikasi NPS bawaan dan dengan DLL Ekstensi lainnya. Jika ekstensi hanya berlaku untuk database pengguna tertentu (misalnya Windows Active Directory), maka ekstensi harus memverifikasi atribut ratProvider yang diteruskan dalam parameter pAttrs , sebelum memproses permintaan. Atribut ratProvider akan menjadi salah satu daftar atribut yang ditujukkan oleh parameter pAttrs .
DLL ekstensi tidak boleh menolak permintaan karena atribut yang diperlukan hilang. Misalnya, jika ekstensi autentikasi memerlukan atribut User-Password, ratUserPassword, dan atribut tidak ada, ekstensi harus mengembalikan tindakan raContinue untuk memberi ekstensi dan penyedia lain kesempatan untuk memproses permintaan.
NPS memanggil fungsi RadiusExtensionProcess setelah keputusan untuk menggunakan database autentikasi tertentu dibuat, tetapi sebelum pengguna diautentikasi. Oleh karena itu, informasi tentang database autentikasi mana yang akan digunakan tersedia untuk fungsi, sehingga fungsi dapat memeriksa otorisasi pengguna dalam database autentikasi yang sesuai. NPS mendukung berbagai database autentikasi termasuk Windows Active Directory.
Fungsi Panggilan Balik RadiusExtensionProcessEx
DLL Ekstensi NPS dapat mengekspor RadiusExtensionProcessEx alih-alih, atau selain, RadiusExtensionProcess. Fungsi ini memungkinkan DLL untuk menambahkan atribut otorisasi tambahan ke respons autentikasi.
Informasi yang sama yang dijelaskan di bagian Fungsi Panggilan Balik RadiusExtensionProcess berlaku untuk fungsi RadiusExtensionProcessEx .
RadiusExtensionProcessEx tidak dapat mengubah atau menghapus salah satu atribut yang ada. Jika skenario muncul di mana DLL harus memodifikasi atau menghapus atribut, satu-satunya opsi adalah menggunakan antarmuka pengguna NPS untuk memastikan bahwa atribut tidak ada. Secara default, tidak ada atribut otorisasi yang ada. Apa pun yang ada harus ditambahkan melalui antarmuka pengguna.
Jika beberapa DLL Otorisasi dikonfigurasi dan beberapa DLL ini mengimplementasikan RadiusExtensionProcessEx, fungsi RadiusExtensionProcess/Ex dalam DLL tertentu tidak menerima atribut dari DLL Otorisasi yang sebelumnya disebut. Ini hanya menerima atribut yang dihasilkan oleh layanan otorisasi NPS.
Fungsi Panggilan Balik RadiusExtensionProcess2
DLL Ekstensi NPS juga dapat mengekspor RadiusExtensionProcess2 alih-alih, atau selain itu, RadiusExtensionProcess dan RadiusExtensionProcessEx. Fungsi ini memungkinkan DLL untuk menambahkan, memodifikasi, dan menghapus atribut ke dan dari permintaan atau respons autentikasi.
Informasi yang sama yang dijelaskan di bagian Fungsi Panggilan Balik RadiusExtensionProcessEx berlaku untuk fungsi RadiusExtensionProcess2 , dengan pengecualian berikut:
- Dalam DLL Otorisasi, RadiusExtensionProcess2 menerima atribut yang dihasilkan oleh layanan otorisasi NPS dan atribut yang dihasilkan dari sebelumnya yang disebut DLL Otorisasi.
- RadiusExtensionProcess2 tidak memiliki parameter pfAction . RadiusExtensionProcess2 menetapkan disposisi akhir permintaan menggunakan fungsi SetResponseType yang disediakan dalam struktur RADIUS_EXTENSION_CONTROL_BLOCK .
- NPS selalu memanggil fungsi RadiusExtensionProcess2 di DLL yang tersisa terlepas dari apakah fungsi di DLL sebelumnya mengembalikan Terima.
Topik terkait