Pertanyaan Cara menetapkan izin ke akun ApplicationPoolIdentity


Di IIS 7 pada Windows Server 2008, kumpulan aplikasi dapat dijalankan sebagai akun "ApplicationPoolIdentity" alih-alih akun NetworkService.

Bagaimana cara memberikan izin ke akun "ApplicationPoolIdentity" ini. Itu tidak muncul sebagai pengguna lokal di mesin. Itu tidak muncul sebagai grup di mana saja. Tidak ada yang seperti itu muncul di mana saja. Ketika saya menelusuri pengguna lokal, grup, dan akun bawaan, tidak muncul dalam daftar, dan tidak ada yang serupa muncul dalam daftar. Apa yang sedang terjadi?

Saya bukan satu-satunya dengan masalah ini: lihat Masalah dengan ApplicationPoolIdentity di IIS 7.5 + Windows 7 untuk sebuah contoh.


"Sayangnya ini adalah keterbatasan pemetik objek pada Windows Server 2008 / Windows Vista - karena beberapa orang telah menemukannya, Anda masih dapat memanipulasi ACL untuk identitas kolam aplikasi menggunakan alat baris perintah seperti icacls. "


252
2017-11-03 21:52






Jawaban:


Memperbarui: Pertanyaan aslinya adalah untuk Windows Server 2008, tetapi solusinya lebih mudah untuk Windows Server 2008 R2 dan Windows Server 2012 (dan Windows 7 dan 8). Anda dapat menambahkan pengguna melalui UI NTFS dengan mengetiknya secara langsung. Nama ini dalam format IIS APPPOOL \ {nama kumpulan aplikasi}. Misalnya: IIS APPPOOL \ DefaultAppPool.

IIS APPPOOL\{app pool name}

Catatan: Per komentar di bawah ini, ada dua hal yang harus diperhatikan:

  • Masukkan string langsung ke "Pilih Pengguna atau Grup" dan bukan di bidang pencarian.
  • Di lingkungan domain Anda perlu mengatur Lokasi ke komputer lokal Anda terlebih dahulu.

Referensi artikel Microsoft Documents: Aplikasi Identitas Kolam Renang> Mengamankan Sumber Daya

Tanggapan asli: (untuk Windows Server 2008) Ini adalah fitur hebat, tetapi seperti yang Anda sebutkan itu belum sepenuhnya diimplementasikan. Anda dapat menambahkan identitas kolam aplikasi dari command prompt dengan sesuatu seperti icacls, kemudian Anda dapat mengelolanya dari GUI. Sebagai contoh, jalankan sesuatu seperti ini dari command prompt:

icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)

Kemudian, di Windows Explorer, buka folder wwwroot dan edit izin keamanan. Anda akan melihat apa yang tampak seperti grup (ikon grup) yang disebut DefaultAppPool. Anda sekarang dapat mengedit izin.

Namun, Anda tidak perlu menggunakan ini sama sekali. Ini bonus yang bisa Anda gunakan jika Anda mau. Anda dapat menggunakan cara lama untuk membuat pengguna khusus per kumpulan aplikasi dan menetapkan pengguna khusus ke disk. Yang memiliki dukungan UI penuh.

Metode injeksi SID ini bagus karena memungkinkan Anda untuk menggunakan satu pengguna tetapi sepenuhnya mengisolasi setiap situs dari satu sama lain tanpa harus membuat pengguna unik untuk setiap kumpulan aplikasi. Cukup mengesankan, dan itu akan lebih baik lagi dengan dukungan UI.

Catatan: Jika Anda tidak dapat menemukan aplikasi pengguna kolam, periksa untuk melihat apakah layanan Windows yang disebut Layanan Pembantu Aplikasi Aplikasi sedang berjalan. Ini adalah layanan yang memetakan aplikasi pengguna kolam ke akun Windows.


281
2017-11-04 03:07



Ini adalah jenis binatang aneh karena itu bukan seperti kelompok di mana pengguna tinggal dalam grup, dan itu tidak seperti akun komputer vs akun pengguna yang benar-benar berbeda satu sama lain. Akun pool aplikasi 'tumpang tindih' dengan pengguna identitas pool aplikasi. Misalnya, Anda dapat memiliki 5 kumpulan aplikasi menggunakan Layanan Jaringan dan 5 lainnya menggunakan akun khusus, tetapi mereka adalah 10 akun kumpulan aplikasi yang dikelola sistem yang berbeda. Kelebihannya diperhatikan dengan folder c: \ inetpub \ temp \ appPools tempat dikelola secara otomatis dan mengunci sistem dengan bersih. IIS memanfaatkannya dengan baik. Penggunaan kami pada folder adalah opsional. - Scott Forsyth - MVP
Perhatikan bahwa jika Anda memasukkan "IIS APPPOOL \ DefaultAppPool" langsung ke "Pilih Pengguna atau Grup" (alih-alih mencarinya) saat mengedit izin, itu akan dikenali dengan baik (diuji pada Win7 x64 dan Win2k8 R2 x64). - Milan Gardian
Anda benar untuk Win7 dan R2 Win2k8. Itu tidak diimplementasikan dalam Win2k8 RTM, tetapi dalam R2. - Scott Forsyth - MVP
Akhirnya dapatkan ini - jika Anda mengetikkan nama kolam aplikasi secara langsung seperti @Milan Gardian katakan di atas dan mengubah bidang lokasi ke mesin lokal, maka berfungsi - Ciaran Bruen
Terima kasih banyak atas 'dua hal yang harus diperhatikan'. Saya tersandung pada kedua hal ini, dan ini adalah penjelasan yang jelas dan sederhana tentang masalah dan bagaimana mencapai apa yang saya butuhkan. Ini hanya memalukan dari dokumentasi MSDN adalah ini jelas. - Ian Grainger


Anda harus memastikan bahwa bidang 'Dari lokasi ini' diatur ke mesin lokal dan bukan domain.

Saya memiliki masalah yang sama dan setelah saya mengubah itu bekerja dengan baik.


21
2017-08-01 13:29





Anda harus benar-benar membuat grup per "peran" dan menugaskan grup tersebut mengakses sistem file. Kemudian tambahkan kumpulan aplikasi ke grup peran khusus yang diperlukan. Dengan cara ini bahkan jika Anda menghapus kolam aplikasi nanti (dan pengguna virtual pergi poof), Anda tidak perlu khawatir tentang mengulangi semua izin, Anda cukup menambahkan kumpulan aplikasi pengganti ke grup yang ada.


4
2018-06-14 17:42





Setelah membaca @Scott Forsyth - jawaban MVP saya mencoba me-restart Layanan Pembantu Aplikasi Web. Itu memecahkan masalah bagi saya.


3
2017-12-04 11:05





Saya menjalankan WS8 R2 dan saya tidak dapat menambahkan IIS APPPOOL\DefaultAppPool melalui Windows Explorer. Satu-satunya cara kerjanya adalah melalui baris perintah:

cacls [FILE PATH] / T / E / G "IIS APPPOOL \ DefaultAppPool": C


0
2018-03-19 14:46



Anehnya, saya harus melakukan "IIS AppPool \ DefaultAppPool" agar dapat diterima. Perhatikan kasus campuran - semua huruf besar, seperti yang saya lakukan pertama kali, tidak diterima dari GUI. - Jeff McJunkin


Jika pertanyaan ini adalah tentang bagaimana mengeksekusi _sp_send_dbmail di database msdb (menggunakan prosedur SQL mengirim Database Mail yang tersimpan di msdb), berikut ini beberapa pekerjaan. Tambahkan nama pengguna .net dari database Anda (yang didefinisikan pada string koneksi Anda di aplikasi .net Anda) ke pengguna msdb dengan keanggotaan "DatabaseMailUserRole"


0
2017-07-25 00:50