Ini adalah pertanyaan yang sangat bagus dan sayangnya banyak pengembang tidak mengajukan cukup pertanyaan tentang keamanan IIS / ASP.NET dalam konteks menjadi pengembang web dan mengatur IIS. Jadi begini ....
Untuk menutupi identitas yang tercantum:
IIS_IUSRS:
Ini analog dengan IIS_WPG
grup IIS6 lama . Ini adalah grup bawaan dengan keamanannya dikonfigurasi sehingga setiap anggota grup ini dapat bertindak sebagai identitas kumpulan aplikasi.
IUSR:
Akun ini analog dengan IUSR_<MACHINE_NAME>
akun lokal lama yang merupakan pengguna anonim default untuk situs web IIS5 dan IIS6 (yaitu yang dikonfigurasi melalui tab Keamanan Direktori properti situs).
Untuk informasi lebih lanjut tentang IIS_IUSRS
dan IUSR
lihat:
Memahami Akun Pengguna dan Grup yang Terpasang di IIS 7
DefaultAppPool:
Jika kumpulan aplikasi dikonfigurasikan untuk dijalankan menggunakan fitur Application Pool Identity, maka akun "disintesis" disebut IIS AppPool\<pool name>
akan dibuat dengan cepat untuk digunakan sebagai identitas kumpulan. Dalam hal ini akan ada akun yang disintesis yang IIS AppPool\DefaultAppPool
dibuat untuk masa pakai pool. Jika Anda menghapus kumpulan maka akun ini tidak akan ada lagi. Saat menerapkan izin ke file dan folder, ini harus ditambahkan menggunakan IIS AppPool\<pool name>
. Anda juga tidak akan melihat akun kumpulan ini di Pengelola Pengguna komputer Anda. Lihat yang berikut untuk informasi lebih lanjut:
Identitas Kumpulan Aplikasi
ASP.NET v4.0:
-
Ini akan menjadi Application Pool Identity untuk Pool Aplikasi ASP.NET v4.0. Lihat di DefaultAppPool
atas.
NETWORK SERVICE:
-
The NETWORK SERVICE
akun adalah built-in identitas diperkenalkan pada Windows 2003. NETWORK SERVICE
adalah rekening pribadi rendah di mana Anda dapat menjalankan aplikasi renang Anda dan website. Situs web yang berjalan di kumpulan Windows 2003 masih dapat menyamar sebagai akun anonim situs (IUSR_ atau apa pun yang Anda konfigurasikan sebagai identitas anonim).
Di ASP.NET sebelum Windows 2008 Anda bisa meminta ASP.NET menjalankan permintaan di bawah akun Pool Aplikasi (biasanya NETWORK SERVICE
). Atau Anda dapat mengkonfigurasi ASP.NET untuk menyamar sebagai akun anonim situs melalui <identity impersonate="true" />
pengaturan dalam web.config
file secara lokal (jika pengaturan itu dikunci maka perlu dilakukan oleh admin dalam machine.config
file).
Pengaturan <identity impersonate="true">
adalah umum di lingkungan hosting bersama di mana kumpulan aplikasi bersama digunakan (bersama dengan pengaturan kepercayaan parsial untuk mencegah pembatalan akun palsu).
Di kontrol peniruan IIS7.x / ASP.NET sekarang dikonfigurasi melalui fitur konfigurasi otentikasi situs. Jadi, Anda dapat mengonfigurasi untuk dijalankan sebagai identitas kumpulan, IUSR
atau akun anonim khusus khusus.
LOCAL SERVICE:
The LOCAL SERVICE
account built-in akun yang digunakan oleh manajer layanan kontrol. Ini memiliki sekumpulan hak minimum di komputer lokal. Ini memiliki cakupan penggunaan yang cukup terbatas:
Akun Layanan Lokal
LOCAL SYSTEM:
Anda tidak bertanya tentang yang satu ini tetapi saya menambahkan untuk kelengkapan. Ini adalah akun bawaan lokal. Ini memiliki hak istimewa dan kepercayaan yang cukup luas. Anda tidak boleh mengonfigurasi situs web atau kumpulan aplikasi untuk dijalankan di bawah identitas ini.
Akun Sistem Lokal
Dalam praktek:
Dalam praktiknya pendekatan yang lebih disukai untuk mengamankan situs web (jika situs mendapatkan kumpulan aplikasinya sendiri - yang merupakan default untuk situs baru di MMC IIS7) adalah berjalan di bawah Application Pool Identity
. Ini berarti mengatur Identitas situs di Pengaturan Lanjutan Pool Aplikasi untuk Application Pool Identity
:
Di situs web Anda harus mengkonfigurasi fitur Otentikasi:
Klik kanan dan edit entri Anonim Authentication:
Pastikan "Identitas kumpulan aplikasi" dipilih:
Ketika Anda datang untuk menerapkan izin file dan folder, Anda memberikan identitas Application Pool hak apa pun yang diperlukan. Misalnya jika Anda memberikan identitas kumpulan aplikasi untuk ASP.NET v4.0
izin kumpulan maka Anda bisa melakukan ini melalui Explorer:
Klik tombol "Periksa Nama":
Atau Anda dapat melakukan ini menggunakan ICACLS.EXE
utilitas:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ ASP.NET v4.0" :( CI) (OI) (M)
... atau ... jika kumpulan aplikasi situs Anda dipanggil, BobsCatPicBlog
maka:
icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ BobsCatPicBlog" :( CI) (OI) (M)
Saya harap ini membantu membereskan semuanya.
Memperbarui:
Saya baru saja menemukan jawaban yang sangat baik dari tahun 2009 yang berisi banyak informasi bermanfaat, layak dibaca:
Perbedaan antara akun 'Sistem Lokal' dan akun 'Layanan Jaringan'?