Bagikan melalui


Mengonfigurasi Langkah 4: Mengonfigurasi Keamanan Aplikasi

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

  1. Buka Manajer IIS.
  2. Di panel Koneksi , klik Kumpulan Aplikasi.
  3. Di panel Tindakan , klik Tambahkan Kumpulan Aplikasi.
  4. Dalam kotak Nama , ketik nama unik untuk kumpulan aplikasi.
  5. Pilih versi .NET Framework dan Mode alur terkelola.
  6. Klik OK.

Untuk memindahkan aplikasi ke kumpulan aplikasi lain

  1. Buka Manajer IIS.
  2. Di halaman Koneksi , pilih situs web atau aplikasi web yang ingin Anda pindahkan.
  3. Di panel Tindakan , klik Pengaturan Dasar.
  4. Pada dialog Edit Situs , klik Pilih untuk membuka dialog Pilih Kumpulan Aplikasi , lalu pilih kumpulan aplikasi dari menu Kumpulan aplikasi .
  5. 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

  1. Buka Windows Explorer dan navigasikan ke folder atau file.
  2. Klik kanan folder atau file, lalu klik Properti.
  3. Pilih tab Keamanan , lalu klik Edit.
  4. Klik Tambahkan, klik Lokasi, dan pilih server Anda sebagai lokasi untuk mencari.
  5. Dalam kotak Masukkan nama objek untuk dipilih , ketik IIS APPPOOL\applicationPoolName, di mana applicationPoolName adalah identitas kumpulan aplikasi.
  6. 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

  1. Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola.
  2. Di Tampilan Fitur, klik dua kali Tingkat Kepercayaan .NET.
  3. 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 Fullkepercayaan , 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

  1. Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola.
  2. Di Tampilan Fitur, klik dua kali Autentikasi.
  3. Pada halaman Autentikasi , pilih Autentikasi Formulir.
  4. Di panel Tindakan , klik Aktifkan untuk menggunakan autentikasi Formulir dengan pengaturan default.
  5. Di panel Tindakan , klik Edit.
  6. Dalam kotak dialog Edit Pengaturan Autentikasi Formulir , dalam kotak teks URL Masuk , ketik nama halaman tempat klien masuk.
  7. Dalam kotak teks Batas waktu cookie autentikasi (dalam menit), ketik jumlah menit yang ingin Anda gunakan untuk nilai waktu habis.
  8. Dari daftar Mode , pilih mode cookie yang ingin Anda gunakan.
  9. Dalam kotak teks Nama , ketik nama cookie.
  10. Dari daftar Mode perlindungan , pilih mode perlindungan yang ingin Anda gunakan.
  11. Pilih kotak centang Memerlukan SSL .
  12. 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

  1. Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola.
  2. Di Tampilan Fitur, klik dua kali Autentikasi.
  3. Pada halaman Autentikasi , pilih ASP.NET Peniruan.
  4. Di panel Tindakan , klik Aktifkan untuk menggunakan autentikasi peniruan ASP.NET dengan pengaturan default.
  5. Secara opsional, di panel Tindakan , klik Edit untuk mengatur prinsip keamanan.
  6. 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.
  7. Klik OK untuk menyelesaikan atau melanjutkan ke langkah opsional berikutnya untuk mengubah identitas yang akan ditiru.
  8. Secara opsional, klik Atur untuk mengubah Identitas pengguna tertentu .
  9. 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.
  10. Klik OK untuk menutup kotak dialog Atur Kredensial .
  11. 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

  1. Buka Manajer IIS dan navigasi ke tingkat yang ingin Anda kelola.
  2. Di Tampilan Fitur, klik dua kali Kunci Komputer.
  3. Pada halaman Kunci Mesin , pilih metode validasi dari daftar Metode validasi . Metode validasi default adalah SHA1.
  4. Pilih metode enkripsi dari daftar Metode enkripsi . Metode enkripsi default adalah Otomatis.
  5. Secara opsional, konfigurasikan pengaturan untuk kunci validasi dan dekripsi.
  6. 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:

  1. Pengikatan SSL
  2. Memerlukan SSL untuk Situs Anda
  3. Sertifikat Klien

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

  1. Buka Manajer IIS.
  2. Di panel Koneksi , perluas simpul Situs di pohon, lalu klik untuk memilih situs yang ingin Anda tambahkan pengikatannya.
  3. Di panel Tindakan , klik Pengikatan.
  4. Dalam kotak dialog Pengikatan Situs , klik Tambahkan.
  5. Dalam kotak dialog Tambahkan Pengikatan Situs , di daftar Jenis , pilih https.
  6. Dari daftar alamat IP , pilih Semua Tidak Ditetapkan (kecuali ada alamat IP tertentu yang ingin Anda gunakan).
  7. Dalam kotak Port , ketik jumlah port (defaultnya adalah 443).
  8. Dalam kotak Nama host , ketik nama komputer host.
  9. Jika Anda ingin beberapa situs web aman dilayani menggunakan alamat IP yang sama, pilih kotak centang Perlu Indikasi Nama Server .
  10. 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 .
  11. 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

  1. 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 .

  2. Di Tampilan Fitur, klik dua kali Pengaturan SSL.

  3. Pada halaman Pengaturan SSL , pilih Perlu SSL.

  4. 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

  1. 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 .

  2. Di Tampilan Fitur, klik dua kali Pengaturan SSL.

  3. Pada halaman Pengaturan SSL , secara opsional pilih Perlu SSL. Anda tidak memerlukan SSL untuk Mengabaikan atau Menerima sertifikat klien.

  4. 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.
  5. 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