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 Keith Newman dan Robert McMurray
Dalam fase membangun situs web ASP.NET Anda ini, Anda mengonfigurasi pengaturan keamanan yang tersedia di IIS. Bagian berikut membahas pengaturan keamanan umum untuk aplikasi ASP.NET:
4.1. Mengisolasi Aplikasi Web
Terapkan rekomendasi berikut untuk mengisolasi situs web dan aplikasi web di server Anda.
- Gunakan satu kumpulan aplikasi per situs web atau aplikasi web.
- Batasi akses ke folder situs dan file ke identitas kumpulan aplikasi.
- Siapkan folder temp ASP.NET terpisah per situs dan hanya berikan akses ke identitas kumpulan aplikasi.
- Pastikan untuk mengatur ACL (daftar kontrol akses) pada setiap akar situs untuk hanya mengizinkan akses ke identitas kumpulan aplikasi.
Jika Anda memiliki lebih dari satu aplikasi per kumpulan aplikasi, pertimbangkan untuk membuat kumpulan aplikasi yang cukup dan memindahkan beberapa aplikasi ke kumpulan baru.
Untuk membuat kumpulan aplikasi
- Buka Manajer IIS.
- Di panel Koneksi , klik Kumpulan Aplikasi.
- Di panel Tindakan , klik Tambahkan Kumpulan Aplikasi.
- Dalam kotak Nama , ketik nama unik untuk kumpulan aplikasi.
- Pilih versi .NET Framework dan Mode alur terkelola.
- Klik OK.
Untuk memindahkan aplikasi ke kumpulan aplikasi lain
- Buka Manajer IIS.
- Di halaman Koneksi , pilih situs web atau aplikasi web yang ingin Anda pindahkan.
- Di panel Tindakan , klik Pengaturan Dasar.
- Pada dialog Edit Situs , klik Pilih untuk membuka dialog Pilih Kumpulan Aplikasi , lalu pilih kumpulan aplikasi dari menu Kumpulan aplikasi .
- Klik OK untuk menutup dialog Pilih Kumpulan Aplikasi , dan klik OK untuk menutup menu Edit Situs .
Untuk menambahkan identitas kumpulan aplikasi ke folder atau file ACL
- Buka Windows Explorer dan navigasikan ke folder atau file.
- Klik kanan folder atau file, lalu klik Properti.
- Pilih tab Keamanan , lalu klik Edit.
- Klik Tambahkan, klik Lokasi, dan pilih server Anda sebagai lokasi untuk mencari.
- Dalam kotak Masukkan nama objek untuk dipilih , ketik IIS APPPOOL\applicationPoolName, di mana applicationPoolName adalah identitas kumpulan aplikasi.
- Klik OK, klik OK, dan klik OK lagi untuk menutup dialog.
4.2. Tingkat Kepercayaan .NET
Bagian ini menjelaskan cara mengatur tingkat kepercayaan aplikasi dengan menggunakan UI Manajer IIS atau baris perintah.
Untuk mengatur tingkat kepercayaan dengan menggunakan UI
- Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola.
- Di Tampilan Fitur, klik dua kali Tingkat Kepercayaan .NET.
- Pada halaman Tingkat Kepercayaan .NET , pilih tingkat kepercayaan dari daftar turun bawah Tingkat kepercayaan , lalu klik Terapkan di panel Tindakan .
Untuk mengatur tingkat kepercayaan dengan menggunakan baris perintah
Untuk mengatur tingkat kepercayaan, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:trust /level:Full|High|Medium|Low|Minimal
Atribut level menggunakan salah satu dari lima nilai yang sesuai dengan file kebijakan CAS yang telah dikonfigurasi sebelumnya. Misalnya, untuk mengatur tingkat Full
kepercayaan , ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:trust /level:Full
Catatan
Saat Anda menggunakan Appcmd.exe untuk mengonfigurasi elemen kepercayaan di tingkat global di IIS 8, tentukan /commit:WEBROOT
dalam perintah sehingga perubahan konfigurasi dilakukan pada file Web.config root alih-alih ApplicationHost.config.
4.3. Autentikasi .NET
Dalam Merencanakan Situs Web ASP.NET di IIS, Anda membuat keputusan desain tentang mode autentikasi apa yang tepat untuk aplikasi Anda.
Autentikasi Formulir ASP.NET
Bagian ini menjelaskan cara mengonfigurasi autentikasi formulir ASP.NET dengan menggunakan UI Manajer IIS atau baris perintah.
Untuk mengonfigurasi autentikasi formulir dengan menggunakan UI
- Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola.
- Di Tampilan Fitur, klik dua kali Autentikasi.
- Pada halaman Autentikasi , pilih Autentikasi Formulir.
- Di panel Tindakan , klik Aktifkan untuk menggunakan autentikasi Formulir dengan pengaturan default.
- Di panel Tindakan , klik Edit.
- Dalam kotak dialog Edit Pengaturan Autentikasi Formulir , dalam kotak teks URL Masuk , ketik nama halaman tempat klien masuk.
- Dalam kotak teks Batas waktu cookie autentikasi (dalam menit), ketik jumlah menit yang ingin Anda gunakan untuk nilai waktu habis.
- Dari daftar Mode , pilih mode cookie yang ingin Anda gunakan.
- Dalam kotak teks Nama , ketik nama cookie.
- Dari daftar Mode perlindungan , pilih mode perlindungan yang ingin Anda gunakan.
- Pilih kotak centang Memerlukan SSL .
- Pilih kotak centang Perpanjang kedaluwarsa cookie pada setiap permintaan , lalu klik OK.
Untuk mengonfigurasi autentikasi formulir dengan menggunakan baris perintah
Untuk mengaktifkan autentikasi formulir, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:system.web/authentication /mode:None|Windows|Passport|Forms
Secara default, IIS 8 mengatur mode
atribut ke Windows
, yang menonaktifkan autentikasi Formulir. Jika Anda mengatur atribut ke Forms
, Anda mengaktifkan autentikasi Formulir. Misalnya, untuk mengaktifkan autentikasi Formulir, ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:system.web/authentication /mode:Forms
Catatan
Saat Anda menggunakan Appcmd.exe untuk mengonfigurasi elemen autentikasi di tingkat global di IIS 8, tentukan /commit:WEBROOT
dalam perintah sehingga perubahan konfigurasi dilakukan pada file Web.config root alih-alih ApplicationHost.config.
Untuk menentukan URL masuk untuk autentikasi Formulir, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.loginURL:string
Variabel forms.loginURL:string
adalah nama halaman tempat klien masuk. Nilai defaultnya adalah Login.aspx. Misalnya, untuk menentukan URL masuk untuk autentikasi Formulir, ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.loginURL:login.aspx
Catatan
Saat Anda menggunakan Appcmd.exe untuk mengonfigurasi elemen autentikasi di tingkat global di IIS 8, tentukan /commit:WEBROOT
dalam perintah sehingga perubahan konfigurasi dilakukan pada file Web.config root alih-alih ApplicationHost.config.
Untuk menentukan batas waktu autentikasi untuk autentikasi Formulir, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.timeout:TimeSpan
Variabel forms.timeout:TimeSpan
adalah waktu dalam menit ketika cookie yang digunakan untuk autentikasi kedaluwarsa. Nilai defaultnya adalah 30 menit. Misalnya, untuk menentukan batas waktu autentikasi untuk autentikasi Formulir, ketik berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.timeout:30
Catatan
Saat Anda menggunakan Appcmd.exe untuk mengonfigurasi elemen autentikasi di tingkat global di IIS 8, Anda harus menentukan /commit:WEBROOT
dalam perintah sehingga perubahan konfigurasi dilakukan pada file Web.config root alih-alih ApplicationHost.config.
Untuk mengonfigurasi nama cookie untuk autentikasi Formulir, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.name:string
Variabel forms.name:string
adalah nama cookie yang digunakan untuk autentikasi Formulir. Nilai defaultnya adalah . ASPXAUTH. Misalnya, untuk mengonfigurasi nama cookie untuk autentikasi Formulir, ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.name:.ASPXUTH
Untuk mengonfigurasi mode cookie untuk autentikasi Formulir, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.cookieless:UseUri|UseCookies|AutoDetect|UseDeviceProfile
Nilai defaultnya untuk forms.cookieless
adalah UseDeviceProfile
. Misalnya, untuk mengonfigurasi mode cookie untuk autentikasi Formulir untuk menggunakan pengaturan Gunakan Profil Perangkat, ketik berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.cookieless:UseDeviceProfile
Untuk mengonfigurasi mode perlindungan cookie untuk autentikasi Formulir, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.protection:All|None|Encryption|Validation
Nilai defaultnya untuk forms.protection
adalah All
. Misalnya, untuk mengonfigurasi mode perlindungan cookie untuk autentikasi Formulir untuk menggunakan pengaturan Enkripsi dan Validasi, ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.protection:All
Untuk mewajibkan SSL untuk cookie autentikasi, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.requireSSL:true|false
Nilai defaultnya untuk forms.requireSSL
adalah false
. Jika Anda mengatur atribut ini ke true
, Anda memerlukan SSL. Misalnya, untuk mewajibkan SSL untuk cookie autentikasi, ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.requireSSL:true
Untuk menyimpan konten yang sering diminta, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.slidingExpiration:true|false
Nilai defaultnya untuk forms.slidingExpiration
adalah true
. Misalnya, untuk menyimpan konten yang sering diminta, ketik berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:system.web/authentication /forms.slidingExpiration:true
autentikasi peniruan ASP.NET
Untuk mengonfigurasi Autentikasi Peniruan Dengan menggunakan UI
- Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola.
- Di Tampilan Fitur, klik dua kali Autentikasi.
- Pada halaman Autentikasi , pilih ASP.NET Peniruan.
- Di panel Tindakan , klik Aktifkan untuk menggunakan autentikasi peniruan ASP.NET dengan pengaturan default.
- Secara opsional, di panel Tindakan , klik Edit untuk mengatur prinsip keamanan.
- Dalam kotak dialog Edit ASP.NET Pengaturan Peniruan Identitas, pilih Pengguna tertentu atau Pengguna terautentikasi. Apa pun yang Anda putuskan, IIS menggunakan identitas ini untuk konteks keamanan aplikasi ASP.NET. Secara default, IIS 8 diatur untuk meniru pengguna yang diautentikasi.
- Klik OK untuk menyelesaikan atau melanjutkan ke langkah opsional berikutnya untuk mengubah identitas yang akan ditiru.
- Secara opsional, klik Atur untuk mengubah Identitas pengguna tertentu .
- Dalam kotak dialog Atur Kredensial , masukkan nama akun pengguna yang sudah ada di Nama pengguna , kata sandi yang terkait dengan akun pengguna tersebut di Kata Sandi, lalu nilai yang sama persis di Konfirmasi kata sandi untuk akun baru yang harus digunakan IIS untuk akses anonim.
- Klik OK untuk menutup kotak dialog Atur Kredensial .
- Klik OK untuk menutup kotak dialog Edit ASP.NET Pengaturan Peniruan .
Untuk mengonfigurasi Autentikasi Peniruan Dengan menggunakan baris perintah
Untuk mengaktifkan atau menonaktifkan peniruan ASP.NET, gunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:identity /impersonate:true|false
Secara default, IIS mengatur impersonate
atribut ke false
, yang menonaktifkan autentikasi peniruan ASP.NET. Jika Anda mengatur atribut ke true
, Anda mengaktifkan autentikasi peniruan ASP.NET. Misalnya, untuk mengaktifkan autentikasi peniruan ASP.NET, ketik berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:identity /impersonate:true
Secara opsional, Anda dapat mengatur akun untuk IIS untuk meniru, menggunakan sintaks berikut:
appcmd set config /commit:WEBROOT /section:identity /userName:string /password:string
Variabel userName:string
adalah akun yang digunakan IIS untuk meniru dan variabelnya password:string
adalah kata sandi. Misalnya, untuk menggunakan akun bernama Moe for IIS untuk meniru, ketik berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config /commit:WEBROOT /section:identity /userName: Moe /password:pass@word1
Catatan
Saat Anda menggunakan Appcmd.exe untuk mengonfigurasi elemen identitas di tingkat global di IIS 8, tentukan /commit:WEBROOT
dalam perintah sehingga perubahan konfigurasi dilakukan pada file Web.config akar alih-alih ApplicationHost.config.
4.4. Pengaturan Kunci Mesin
Bagian ini menjelaskan cara membuat kunci komputer untuk aplikasi ASP.NET Anda dengan menggunakan UI Manajer IIS.
Untuk menghasilkan kunci komputer dengan menggunakan UI
- Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola.
- Di Tampilan Fitur, klik dua kali Kunci Komputer.
- Pada halaman Kunci Mesin , pilih metode validasi dari daftar Metode validasi . Metode validasi default adalah SHA1.
- Pilih metode enkripsi dari daftar Metode enkripsi . Metode enkripsi default adalah Otomatis.
- Secara opsional, konfigurasikan pengaturan untuk kunci validasi dan dekripsi.
- Di panel Tindakan , klik Hasilkan Kunci, lalu klik Terapkan.
4.5. Komunikasi TLS/SSL
Bagian ini menjelaskan cara mengonfigurasi keamanan TLS/SSL untuk aplikasi Anda.
Setelah mendapatkan sertifikat server dari otoritas sertifikasi (CA), bekerja melalui prosedur di bagian berikut:
Pengikatan SSL
Bagian ini menjelaskan cara menambahkan pengikatan SSL ke situs Anda dengan menggunakan UI Manajer IIS atau baris perintah.
Untuk menambahkan pengikatan SSL ke situs dengan menggunakan UI
- Buka Manajer IIS.
- Di panel Koneksi , perluas simpul Situs di pohon, lalu klik untuk memilih situs yang ingin Anda tambahkan pengikatannya.
- Di panel Tindakan , klik Pengikatan.
- Dalam kotak dialog Pengikatan Situs , klik Tambahkan.
- Dalam kotak dialog Tambahkan Pengikatan Situs , di daftar Jenis , pilih https.
- Dari daftar alamat IP , pilih Semua Tidak Ditetapkan (kecuali ada alamat IP tertentu yang ingin Anda gunakan).
- Dalam kotak Port , ketik jumlah port (defaultnya adalah 443).
- Dalam kotak Nama host , ketik nama komputer host.
- Jika Anda ingin beberapa situs web aman dilayani menggunakan alamat IP yang sama, pilih kotak centang Perlu Indikasi Nama Server .
- Dari daftar sertifikat SSL , pilih sertifikat untuk situs web Anda. Jika sertifikat Anda tidak muncul dalam daftar, klik Pilih dan cari sertifikat menggunakan kotak dialog Pilih Sertifikat .
- Klik OK.
Untuk menambahkan pengikatan SSL ke situs dengan menggunakan baris perintah
Untuk menambahkan pengikatan ke situs, gunakan sintaks berikut:
appcmd set site /site.name:string /+bindings.[protocol='string', bindingInformation='string']
Variabel site.name:string
adalah nama situs yang ingin Anda tambahkan pengikatannya. Variabel protocol='string'
adalah protokol yang ingin Anda gunakan, dan variabelnya bindingInformation='string'
adalah kombinasi alamat IP, port, dan header host.
Misalnya, untuk mengonfigurasi situs bernama contoso agar memiliki pengikatan HTTPS untuk semua alamat IP, pada port 443, tanpa header host, ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set site /site.name:contoso /+bindings.[protocol='https', bindingInformation='*:443:']
Memerlukan SSL untuk Situs Anda
Bagian ini menjelaskan cara mewajibkan SSL untuk situs web Anda dengan menggunakan UI Manajer IIS atau baris perintah.
Untuk mewajibkan SSL menggunakan UI
Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola. Pastikan Anda berada di tingkat situs, aplikasi, atau direktori; Pengaturan SSL tidak tersedia di tingkat server.
Catatan
Jika Anda ingin mengonfigurasi SSL di tingkat file, navigasikan ke file dalam Tampilan Konten lalu klik Beralih ke Tampilan Fitur di panel Tindakan .
Di Tampilan Fitur, klik dua kali Pengaturan SSL.
Pada halaman Pengaturan SSL , pilih Perlu SSL.
Di panel Tindakan , klik Terapkan.
Untuk mewajibkan SSL menggunakan baris perintah
Untuk memerlukan SSL, gunakan sintaks berikut:
appcmd set config "site|URL" /section:access /sslFlags:Ssl /commit:APPHOST
Variabelnya site|URL
adalah situs, aplikasi, direktori virtual, atau file tempat Anda ingin IIS 8 memerlukan SSL. Misalnya, untuk mewajibkan SSL untuk Situs Web Default, ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config "Default Web Site" /section:access /sslFlags:Ssl /commit:APPHOST
Untuk mewajibkan SSL untuk file iisstart.htm pada Situs Web Default, ketik berikut ini pada perintah, lalu tekan ENTER:
appcmd set config "http://localhost/iisstart.htm" /section:access /sslFlags:Ssl /commit:APPHOST
Sertifikat Klien
Untuk menentukan sertifikat klien dengan menggunakan UI
Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola. Pastikan Anda berada di tingkat situs, aplikasi, atau direktori; Pengaturan SSL tidak tersedia di tingkat server.
Catatan
Jika Anda ingin mengonfigurasi SSL di tingkat file, navigasikan ke file dalam Tampilan Konten lalu klik Beralih ke Tampilan Fitur di panel Tindakan .
Di Tampilan Fitur, klik dua kali Pengaturan SSL.
Pada halaman Pengaturan SSL , secara opsional pilih Perlu SSL. Anda tidak memerlukan SSL untuk Mengabaikan atau Menerima sertifikat klien.
Pada halaman Pengaturan SSL , di area Sertifikat klien , gunakan salah satu prosedur berikut ini:
- Pilih Abaikan jika Anda tidak ingin menerima sertifikat klien meskipun klien menyajikannya.
- Pilih Terima untuk menerima sertifikat klien.
- Pilih Wajibkan untuk mewajibkan sertifikat klien. Untuk menggunakan Memerlukan Sertifikat Klien, Anda harus mengaktifkan Memerlukan SSL.
Di panel Tindakan , klik Terapkan.
Untuk menentukan sertifikat klien dengan menggunakan baris perintah
Untuk menentukan apakah akan menggunakan sertifikat klien, gunakan sintaks berikut:
appcmd set config "site|URL" /section:access /sslFlags:Ssl|SslNegotiateCert|SslRequireCert /commit:APPHOST
Variabelnya site|URL
adalah situs, aplikasi, direktori virtual, atau file tempat Anda ingin IIS mengaktifkan sertifikat klien. Misalnya, untuk menerima sertifikat klien untuk Situs Web Default, ketik yang berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config "Default Web Site" /section:access /sslFlags:SslNegotiateCert /commit:APPHOST
Untuk menerima sertifikat klien untuk file iisstart.htm di Situs Web Default, ketik berikut ini pada perintah, lalu tekan ENTER:
appcmd set config "http://localhost/iisstart.htm" /section:access /sslFlags:SslNegotiateCert /commit:APPHOST
Anda dapat menentukan satu atau beberapa nilai untuk atribut sslFlags. Jika Anda menginginkan lebih dari satu nilai, pisahkan setiap nilai dengan koma (,). Misalnya, untuk menentukan persyaratan untuk sertifikat SSL dan klien di Situs Web Default, ketik berikut ini di prompt perintah, lalu tekan ENTER:
appcmd set config "Default Web Site" /section:access /sslFlags:Ssl,SslRequireCert /commit:APPHOST