Ikhtisar Izin IIS7 - ApplicationPoolIdentity

356

Kami baru-baru ini meningkatkan ke IIS7 sebagai server web inti dan saya perlu tinjauan umum dalam hal izin. Sebelumnya, ketika perlu menulis ke sistem file, saya harus memberi pengguna AppPool (Layanan Jaringan) ke direktori atau file.

Di IIS7 saya melihat, sebagai default, pengguna AppPool diatur ke ApplicationPoolIdentity. Jadi ketika saya memeriksa task-manager, saya melihat bahwa akun pengguna yang disebut 'WebSite.com' menjalankan Proses IIS ('Website.com' menjadi nama situs web di IIS)

Namun akun pengguna ini tidak ada jika saya mencoba menggunakannya untuk memberikan izin. Jadi, bagaimana cara saya menentukan pengguna mana yang memberikan izin juga?

Sunting ================================================= =============================

Lihat di bawah untuk masalah dalam cuplikan layar. Situs web kami (www.silverchip.co.uk) beroperasi dengan nama pengguna SilverChip.co.uk. Namun ketika saya menambahkan pemutusan, pengguna ini tidak ada!

masukkan deskripsi gambar di sini

================================= Lihat Gambar AppPool

masukkan deskripsi gambar di sini

LiamB
sumber
2
Sebenarnya informasi microsoft mengenai hal ini sangat baik Application Pool Identities
DanielV

Jawaban:

680

ApplicationPoolIdentity sebenarnya adalah praktik terbaik untuk digunakan di IIS7 +. Ini adalah akun yang dibuat secara dinamis, tidak terprivatisasi. Untuk menambahkan keamanan sistem file untuk kumpulan aplikasi tertentu, lihat "Application Pool Identities" IIS.net . Versi cepat:

Jika kumpulan aplikasi bernama "DefaultAppPool" (cukup ganti teks ini di bawah jika namanya berbeda)

  1. Buka Windows Explorer
  2. Pilih file atau direktori.
  3. Klik kanan file dan pilih "Properties"
  4. Pilih tab "Keamanan"
  5. Klik tombol "Edit" dan kemudian "Add"
  6. Klik tombol "Lokasi" dan pastikan Anda memilih mesin lokal . ( Bukan domain Windows jika server milik salah satunya.)
  7. Masukkan " IIS AppPool \ DefaultAppPool " di kotak teks "Masukkan nama objek untuk memilih:". (Jangan lupa untuk mengubah "DefaultAppPool" di sini menjadi apa pun yang Anda beri nama kumpulan aplikasi Anda.)
  8. Klik tombol "Periksa Nama" dan klik "OK".
Jon Adams
sumber
11
@Pino: Tidak, bukan nama situs web. Gunakan nama kumpulan aplikasi . Setiap situs web ditugaskan ke kumpulan aplikasi. Anda dapat mengetahui yang mana di properti situs dialog Pengaturan Dasar (di IIS7).
Jon Adams
2
@Pino: Dalam hal ini, peran keamanan yang harus Anda gunakan adalah IIS AppPool\silverchip.co.uk. Saya belum pernah mencoba periode dengan nama keamanan - Anda mungkin ingin mengubahnya menjadi sesuatu tanpa tanda baca.
Jon Adams
7
Saya telah mengikuti instruksi Anda seperti yang Anda katakan. Tapi ada satu retasan. Anda harus mengatur properti enable load user profileke truedalam pengaturan kumpulan aplikasi. Dan hanya setelah pengaturan ini saya dapat menjalankan aplikasi. Jadi tolong perbarui instruksi Anda dan tambahkan poin ke-9.
Johnny_D
19
Ingatlah untuk memeriksa bahwa pengaturan server untuk otentikasi anonim juga menggunakan identitas kumpulan Aplikasi. Solusi ini bekerja untuk saya segera setelah saya kembali dari IUSR.
bblue
11
Perhatikan di sini! Anda tidak dapat mencari pengguna menggunakan Userinterface, tetapi Anda harus mengetikkannya. Memeriksa nama adalah satu-satunya hal yang dapat Anda lakukan.
Remco
88

Ingatlah untuk menggunakan nama lokal server, bukan nama domain, saat menyelesaikan nama

IIS AppPool\DefaultAppPool

(hanya pengingat karena ini membuatku tersandung sebentar):masukkan deskripsi gambar di sini

James Toomey
sumber
Yap, saya lupa ini setiap waktu, terima kasih atas pengingat James Toomey!
tjans
30

Memberikan akses ke IIS AppPool \ YourAppPoolName pengguna mungkin tidak cukup dengan konfigurasi standar IIS.

Dalam kasus saya, saya masih memiliki kesalahan HTTP Error 401.3 - Tidak sah setelah menambahkan pengguna AppPool dan itu diperbaiki hanya setelah menambahkan izin ke pengguna IUSR .

Ini diperlukan karena, secara default, akses Anonim dilakukan menggunakan IUSR . Anda dapat mengatur pengguna spesifik lain, Application Pool atau terus menggunakan IUSR, tetapi jangan lupa untuk mengatur izin yang sesuai.

tab otentikasi

Penghargaan untuk jawaban ini: Kesalahan HTTP 401.3 - Tidak sah

Zanon
sumber
3
Ini sangat penting !!! Harus mengubah "Otentikasi Anonim" menjadi "Identitas kumpulan aplikasi" untuk keamanan! Saya yakin ada alasan bagus untuk mengaturnya ke IUSR, tapi saya tidak bisa memikirkan satu pun. Terima kasih!!!
Dan B
Ini telah memperbaiki masalah bagi saya. Mungkin karena versi IIS saya adalah 8 pada Windows Server 2012 R2
myroslav
2
Ini adalah langkah penting yang harus ditambahkan ke jawaban yang diterima. Juga cara paling sederhana adalah mengubah kotak radio ke identitas kumpulan aplikasi
Sourcery
1
Ini masalah saya! Terima kasih!!
Sloan Reynolds
28

Pada Windows Server 2008 (r2) Anda tidak dapat menetapkan identitas kumpulan aplikasi ke folder melalui Properties-> Security. Anda dapat melakukannya melalui prompt perintah admin menggunakan berikut ini:

icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R)
Chris
sumber
1
dapatkah kamu menjelaskan ini sedikit? Apa artinya (R)? Apakah Anda benar-benar memasukkan tanda kurung sudut pada perintah ini?
Kate Gregory
3
Hai Kate, saya menggunakan <> untuk menyatakan "nama apppool Anda di sini", tetapi dibiarkan dengan nama apppool yang sah. Di IIS Manager -> Application Pools Anda harus mencocokkan nama, termasuk ruang. Yang terakhir saya lakukan adalah "IIS AppPool \ ClientName_CompanyName - Intranet". : (R) dalam hal ini memberikan akses baca. Anda juga dapat menggunakan F (penuh), M (memodifikasi), RX (baca + eksekusi) dan W (hanya menulis).
Chris
9
Anda benar-benar dapat menetapkan melalui tab Efek di Properti di Windows Server 2008 R2 sehingga Anda tidak perlu memerlukan solusi ini. Pastikan Anda memiliki prinsip keamanan built-in yang dipilih pada jenis objek dan lokasi.
rism
Jawaban ini berfungsi untuk saya. Jawaban yang dipilih tidak bekerja untuk saya.
Tuyen Nguyen
3
lihat juga respons asli dari jawaban pilih [tautan] serverfault.com/questions/81165/... Untuk Windows Server 2008 (atau edisi Datacenter), Anda cukup banyak harus menggunakan baris perintah untuk memasukkan akun kumpulan aplikasi ke dalam keamanan dialog. Setelah itu ada, Anda dapat mengelolanya, mengubah tingkat izin, untuk subdirektori dll. Juga pertimbangkan: "icacls" c: \ yourdirectory "/ t / grant" IIS AppPool \ DefaultAppPool ":( OI) (CI) (R)" OI warisan-objek, warisan CI-wadah.
secretwep
7

Bagian A: Mengonfigurasi Kumpulan Aplikasi Anda

Misalkan Pool Aplikasi bernama 'MyPool' Buka 'Pengaturan Lanjut' dari Pool Aplikasi dari Manajer IIS

  1. Gulir ke bawah ke 'Identity'. Mencoba mengedit nilai akan memunculkan kotak dialog. Pilih 'Akun bawaan' dan di bawahnya, pilih 'ApplicationPoolIdentity'.

  2. Beberapa baris di bawah 'Identity', Anda akan menemukan 'Load User Profile'. Nilai ini harus ditetapkan ke 'Benar'.

Bagian B: Mengonfigurasi situs web Anda

  1. Nama Situs Web: Nama Situs (hanya sebuah contoh)
  2. Jalur Fisik: C: \ Apapun (contoh saja)
  3. Terhubung dengan ...: Pengguna Aplikasi (otentikasi pass-through) (Pengaturan di atas dapat ditemukan di 'Pengaturan Dasar' situs di IIS Manager)
  4. Setelah mengonfigurasi pengaturan dasar, cari konfigurasi 'Otentikasi' di bawah 'IIS' di konsol utama situs. Buka. Anda harus melihat opsi untuk 'Otentikasi Anonim'. Pastikan itu diaktifkan. Kemudian klik kanan dan 'Edit ...' itu. Pilih 'Application Pool Identity'.

Bagian C: Mengonfigurasi folder Anda

Folder yang dimaksud adalah C: \ Apapun

  1. Buka Properti - Berbagi - Berbagi Tingkat Lanjut - Izin, dan centang 'Bagikan folder ini'
  2. Di kotak dialog yang sama, Anda akan menemukan tombol 'Izin'. Klik itu.
  3. Kotak dialog baru akan terbuka. Klik 'Tambah'.
  4. Kotak dialog baru 'Pilih Pengguna atau Grup' akan terbuka. Di bawah 'Dari lokasi ini' pastikan namanya sama dengan komputer host lokal Anda. Kemudian, di bawah 'Masukkan nama objek', ketik 'IIS AppPool \ MyPool' dan klik 'Periksa Nama' dan kemudian 'Oke'
  5. Berikan izin berbagi penuh untuk pengguna 'MyPool'. Terapkan dan tutup properti folder
  6. Buka properti folder lagi. Kali ini, buka Keamanan - Tingkat Lanjut - Izin, dan klik Tambah. Akan ada opsi 'Pilih Kepala Sekolah' di bagian atas, atau beberapa opsi lain untuk memilih pengguna. Klik itu.
  7. Kotak dialog 'Pilih Pengguna atau Grup' akan terbuka lagi. Ulangi langkah 4.
  8. Berikan semua atau sebanyak mungkin izin yang Anda butuhkan kepada pengguna 'MyPool'.
  9. Centang 'Ganti semua izin objek anak ... "dan Terapkan dan tutup.

Anda sekarang harus dapat menggunakan menelusuri situs web

Dibyodyuti Mondal
sumber
Anda adalah raja hutan! Terima kasih
tno2007
5

Jawaban teratas dari Jon Adams

Inilah cara mengimplementasikan ini untuk orang-orang PowerShell

$IncommingPath = "F:\WebContent"
$Acl = Get-Acl $IncommingPath
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule("IIS AppPool\DefaultAppPool","FullControl","ContainerInherit, ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $IncommingPath $Acl
Chris Mills
sumber
1

Hanya untuk menambah kebingungan, dialog Izin Efektif (Windows Explorer) tidak berfungsi untuk login ini. Saya memiliki situs "Umbo4" menggunakan otentikasi pass-through, dan melihat Izin Efektif pengguna di folder root situs. Tes Periksa Nama menyelesaikan nama "IIS AppPool \ Umbo4", tetapi Izin Efektif menunjukkan bahwa pengguna tidak memiliki izin sama sekali pada folder (semua kotak centang tidak dicentang).

Saya kemudian mengecualikan pengguna ini dari folder secara eksplisit, menggunakan tab Explorer Security. Ini mengakibatkan situs gagal dengan kesalahan HTTP 500.19, seperti yang diharapkan. Namun Izin Efektif tampak persis seperti sebelumnya.

StuartN
sumber
1

Saya memperbaiki semua masalah asp.net saya hanya dengan membuat pengguna baru bernama IUSER dengan kata sandi dan menambahkannya Layanan Jaringan dan Grup Pengguna. Kemudian buat semua situs virtual Anda dan aplikasi atur otentikasi ke IUSER dengan kata sandinya .. atur akses file tingkat tinggi untuk menyertakan IUSER dan BAM, perbaiki setidaknya 3-4 masalah termasuk yang ini ..

Dave

David Granic
sumber