Cara menetapkan izin ke akun ApplicationPoolIdentity


263

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

Bagaimana cara menetapkan izin untuk akun "ApplicationPoolIdentity" ini. Itu tidak muncul sebagai pengguna lokal di mesin. Itu tidak muncul sebagai grup di mana pun. Tidak ada yang seperti itu muncul di mana saja. Ketika saya mencari pengguna lokal, grup, dan akun bawaan, itu tidak muncul dalam daftar, juga 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 sebagai contoh.


"Sayangnya ini adalah batasan dari objek picker di Windows Server 2008 / Windows Vista - karena beberapa orang telah menemukannya, Anda masih dapat memanipulasi ACL untuk identitas app-pool menggunakan alat baris perintah seperti icacls ."

Jawaban:


289

Pembaruan: 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}. Sebagai contoh: 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.
  • Dalam lingkungan domain Anda perlu mengatur Lokasi ke komputer lokal Anda terlebih dahulu.

Referensi ke artikel Microsoft Documents: Application Pool Identities> Mengamankan Sumber Daya

Respons asli: (untuk Windows Server 2008) Ini adalah fitur hebat, tetapi seperti yang Anda sebutkan itu belum sepenuhnya diimplementasikan. Anda dapat menambahkan identitas kumpulan aplikasi dari prompt perintah dengan sesuatu seperti icacls, lalu Anda dapat mengelolanya dari GUI. Misalnya, 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 adalah bonus yang dapat Anda gunakan jika Anda mau. Anda dapat menggunakan cara lama untuk membuat pengguna khusus per kelompok aplikasi dan menetapkan pengguna khusus ke disk. Itu 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 yang unik untuk setiap kumpulan aplikasi. Cukup mengesankan, dan akan lebih baik lagi dengan dukungan UI.

Catatan: Jika Anda tidak dapat menemukan pengguna kumpulan aplikasi, periksa untuk melihat apakah layanan Windows yang disebut Application Host Helper Service sedang berjalan. Ini adalah layanan yang memetakan pengguna kumpulan aplikasi ke akun Windows.


1
Ini adalah jenis binatang aneh karena tidak seperti grup tempat pengguna tinggal dalam grup, dan tidak seperti akun komputer vs. akun pengguna yang sangat berbeda satu sama lain. Akun kumpulan aplikasi 'tumpang tindih' dengan pengguna identitas kumpulan 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. Keuntungannya diperhatikan dengan folder c: \ inetpub \ temp \ appPools di mana ia dikelola secara otomatis dan mengunci sistem dengan bersih. IIS memanfaatkan mereka dengan baik. Penggunaan kami pada folder adalah opsional.
Scott Forsyth - MVP

29
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

5
Anda benar untuk Win7 dan Win2k8 R2. Itu tidak diimplementasikan dalam Win2k8 RTM, tetapi dalam R2.
Scott Forsyth - MVP

9
Akhirnya mendapatkan ini - jika Anda mengetik nama kumpulan aplikasi langsung seperti @Milan Gardian mengatakan di atas dan mengubah bidang lokasi ke mesin lokal maka itu berfungsi
Ciaran Bruen

4
Terima kasih banyak untuk '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. Sayang sekali tidak ada dokumentasi MSDN yang jelas ini.
Ian Grainger

22

Anda harus memastikan bahwa From this locationbidang diatur ke local machinedan bukan domain.

Saya memiliki masalah yang sama dan begitu saya berubah itu bekerja dengan baik.


4

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


3

Setelah membaca @Scott Forsyth - jawaban MVP saya mencoba memulai kembali Layanan Host Helper Service. Itu memecahkan masalah bagi saya.


0

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

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


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

0

Jika pertanyaan ini adalah tentang bagaimana menjalankan _sp_send_dbmail dalam database msdb (menggunakan SQL send Database Mail yang disimpan prosedur dalam msdb), berikut adalah beberapa solusi. Tambahkan nama pengguna aplikasi .net dari basis data Anda (yang ditentukan pada string koneksi Anda di aplikasi .net Anda) ke pengguna msdb dengan keanggotaan peran "DatabaseMailUserRole"

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.