Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Microsoft
Pelajari cara menggunakan autentikasi Windows dalam konteks aplikasi MVC. Anda mempelajari cara mengaktifkan autentikasi Windows dalam file konfigurasi web aplikasi Anda dan cara mengonfigurasi autentikasi dengan IIS. Terakhir, Anda mempelajari cara menggunakan atribut [Otorisasi] untuk membatasi akses ke tindakan pengontrol kepada pengguna atau grup Windows tertentu.
Tujuan dari tutorial ini adalah untuk menjelaskan bagaimana Anda dapat memanfaatkan fitur keamanan yang disertakan dalam Layanan Informasi Internet untuk melindungi tampilan dalam aplikasi MVC Anda dengan kata sandi. Anda mempelajari cara mengizinkan tindakan pengontrol dipanggil hanya oleh pengguna atau pengguna Windows tertentu yang merupakan anggota grup Windows tertentu.
Menggunakan autentikasi Windows masuk akal ketika Anda membangun situs web perusahaan internal (situs intranet) dan Anda ingin pengguna Anda dapat menggunakan nama pengguna dan kata sandi Windows standar mereka saat mengakses situs web. Jika Anda membangun situs web yang menghadap keluar (situs web Internet) pertimbangkan untuk menggunakan autentikasi Formulir sebagai gantinya.
Mengaktifkan Autentikasi Windows
Ketika Anda membuat aplikasi MVC ASP.NET baru, autentikasi Windows tidak diaktifkan secara default. Autentikasi formulir adalah jenis autentikasi default yang diaktifkan untuk aplikasi MVC. Anda harus mengaktifkan autentikasi Windows dengan memodifikasi file konfigurasi web (web.config) aplikasi MVC Anda. Temukan bagian <autentikasi> dan ubah untuk menggunakan Windows alih-alih autentikasi Formulir seperti ini:
<authentication mode="Windows">
</authentication>
Ketika Anda mengaktifkan autentikasi Windows, server web Anda menjadi bertanggung jawab untuk mengautentikasi pengguna. Biasanya, ada dua jenis server web berbeda yang Anda gunakan saat membuat dan menyebarkan aplikasi MVC ASP.NET.
Pertama, saat mengembangkan aplikasi MVC, Anda menggunakan ASP.NET Development Web Server yang disertakan dengan Visual Studio. Secara default, ASP.NET Development Web Server menjalankan semua halaman dalam konteks akun Windows saat ini (akun apa pun yang Anda gunakan untuk masuk ke Windows).
ASP.NET Development Web Server juga mendukung autentikasi NTLM. Anda dapat mengaktifkan autentikasi NTLM dengan mengklik kanan nama proyek Anda di jendela Penjelajah Solusi dan memilih Properti. Selanjutnya, pilih tab Web dan centang kotak centang NTLM (lihat Gambar 1).
Gambar 1 - Mengaktifkan autentikasi NTLM untuk Server Web Pengembangan ASP.NET
Untuk aplikasi web produksi, di sisi lain, Anda menggunakan IIS sebagai server web Anda. IIS mendukung beberapa jenis autentikasi termasuk:
- Autentikasi Dasar – Didefinisikan sebagai bagian dari protokol HTTP 1.0. Mengirim nama pengguna dan kata sandi dalam teks yang jelas (dikodekan Base64) di internet. - Autentikasi Hash - Mengirim hash kata sandi, alih-alih kata sandi itu sendiri, di internet. - Autentikasi Windows Terintegrasi (NTLM) - Jenis autentikasi terbaik untuk digunakan di lingkungan intranet menggunakan windows. - Autentikasi Sertifikat – Memungkinkan autentikasi menggunakan sertifikat sisi klien. Sertifikat memetakan ke akun pengguna Windows.
Catatan
Untuk gambaran umum yang lebih rinci tentang berbagai jenis autentikasi ini, lihat https://msdn.microsoft.com/library/aa292114(VS.71).aspx.
Anda dapat menggunakan Pengelola Layanan Informasi Internet untuk mengaktifkan jenis autentikasi tertentu. Ketahuilah bahwa semua jenis autentikasi tidak tersedia dalam kasus setiap sistem operasi. Selain itu, jika Anda menggunakan IIS 7.0 dengan Windows Vista, Anda harus mengaktifkan berbagai jenis autentikasi Windows sebelum muncul di Pengelola Layanan Informasi Internet. Buka Panel Kontrol, Program, Program dan Fitur, Aktifkan atau nonaktifkan fitur Windows, dan perluas simpul Layanan Informasi Internet (lihat Gambar 2).
Gambar 2 – Mengaktifkan fitur Windows IIS
Dengan menggunakan Layanan Informasi Internet, Anda dapat mengaktifkan atau menonaktifkan berbagai jenis autentikasi. Misalnya, Gambar 3 menggambarkan menonaktifkan autentikasi anonim dan mengaktifkan autentikasi Windows Terintegrasi (NTLM) saat menggunakan IIS 7.0.
Gambar 3 - Mengaktifkan Autentikasi Windows Terintegrasi
Mengotorisasi Pengguna dan Grup Windows
Setelah mengaktifkan autentikasi Windows, Anda dapat menggunakan <atribut Otorisasi> untuk mengontrol akses ke pengontrol atau tindakan pengontrol. Atribut ini dapat diterapkan ke seluruh pengontrol MVC atau tindakan pengontrol tertentu.
Misalnya, pengontrol Home di Listing 1 memaparkan tiga tindakan bernama Index(), CompanySecrets(), dan StephenSecrets(). Siapa pun dapat memanggil tindakan Index(). Namun, hanya anggota grup Manajer lokal Windows yang dapat memanggil tindakan CompanySecrets(). Terakhir, hanya pengguna domain Windows bernama Stephen (di domain Redmond) yang dapat memanggil tindakan StephenSecrets().
Daftar 1 – Controllers\HomeController.vb
<HandleError()> _
Public Class HomeController
Inherits System.Web.Mvc.Controller
Function Index()
Return View()
End Function
<Authorize(Roles:="Managers")> _
Function CompanySecrets()
Return View()
End Function
<Authorize(Users:="redmond\swalther")> _
Function StephenSecrets()
Return View()
End Function
End Class
Catatan
Karena Kontrol Akun Pengguna Windows (UAC), saat bekerja dengan Windows Vista atau Windows Server 2008, grup Administrator lokal akan berperilaku berbeda dari grup lain. Atribut <Otorisasi> tidak akan mengenali anggota grup Administrator lokal dengan benar kecuali Anda mengubah pengaturan UAC komputer Anda.
Persis apa yang terjadi ketika Anda mencoba memanggil tindakan pengontrol tanpa menjadi izin yang tepat tergantung pada jenis autentikasi yang diaktifkan. Secara default, saat menggunakan ASP.NET Development Server, Anda cukup mendapatkan halaman kosong. Halaman dilayani dengan Status Respons HTTP 401 Tidak Sah .
Jika, di sisi lain, Anda menggunakan IIS dengan autentikasi Anonim dinonaktifkan dan Autentikasi dasar diaktifkan, maka Anda terus mendapatkan permintaan dialog masuk setiap kali Anda meminta halaman yang dilindungi (lihat Gambar 4).
Gambar 4 – Dialog masuk autentikasi dasar
Ringkasan
Tutorial ini menjelaskan bagaimana Anda dapat menggunakan autentikasi Windows dalam konteks aplikasi MVC ASP.NET. Anda mempelajari cara mengaktifkan autentikasi Windows dalam file konfigurasi web aplikasi Anda dan cara mengonfigurasi autentikasi dengan IIS. Terakhir, Anda mempelajari cara menggunakan <atribut Otorisasi> untuk membatasi akses ke tindakan pengontrol kepada pengguna atau grup Windows tertentu.