ApplicationPoolIdentity hesabına izinler nasıl atanır


263

Windows Server 2008 işletim sistemindeki IIS 7'de, uygulama havuzları, NetworkService hesabı yerine "ApplicationPoolIdentity" hesabı olarak çalıştırılabilir.

Bu "ApplicationPoolIdentity" hesabına nasıl izinler atayabilirim. Makinede yerel bir kullanıcı olarak görünmüyor. Hiçbir yerde grup olarak görünmüyor. Uzaktan hiçbir yerde göründüğü gibi bir şey yok. Yerel kullanıcılara, gruplara ve yerleşik hesaplara göz attığımda, listede görünmüyor ve listede benzer bir şey görünmüyor. Ne oluyor?

Bu sorunu yaşayan sadece ben değilim: Örnek olarak bkz: IIS 7.5 + Windows 7'de ApplicationPoolIdentity ile İlgili Sorun .


"Bu ne yazık ki, Windows Server 2008 / Windows Vista'daki nesne seçicinin bir kısıtlamasıdır - birkaç kişi daha önce de keşfettiği gibi, icacls gibi komut satırı araçlarını kullanarak uygulama havuzu kimliği için ACL'yi hala değiştirebilirsiniz ."

Yanıtlar:


289

Güncelleme: Orijinal soru Windows Server 2008 içindi, ancak çözüm Windows Server 2008 R2 ve Windows Server 2012 (ve Windows 7 ve 8) için daha kolay. Kullanıcıyı doğrudan yazarak NTFS kullanıcı arayüzünden ekleyebilirsiniz. Adı, IIS APPPOOL \ {app pool name} biçimindedir. Örneğin: IIS APPPOOL \ DefaultAppPool.

IIS APPPOOL\{app pool name}

Not: Aşağıdaki yorumlara göre, dikkat edilmesi gereken iki şey vardır:

  • Dizeyi, arama alanına değil, doğrudan "Kullanıcı veya Grup Seç" seçeneğine girin.
  • Bir etki alanı ortamında , önce konumu yerel bilgisayarınıza ayarlamanız gerekir.

Microsoft Docs makalesine referans: Uygulama Havuzu Kimlikleri> Kaynakları Koruma

Orijinal yanıt: (Windows Server 2008 için) Bu harika bir özellik, ancak belirttiğiniz gibi henüz tam olarak uygulanmadı. Uygulama havuzu kimliğini komut isteminden icacls gibi bir şeyle ekleyebilir, ardından GUI'den yönetebilirsiniz. Örneğin, komut isteminden böyle bir şey çalıştırın:

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

Ardından, Windows Gezgini'nde wwwroot klasörüne gidin ve güvenlik izinlerini düzenleyin. DefaultAppPool adlı bir gruba (grup simgesi) neye benzediğini göreceksiniz. Şimdi izinleri düzenleyebilirsiniz.

Ancak, bunu hiç kullanmanıza gerek yok. İsterseniz kullanabileceğiniz bir bonus. Her uygulama havuzu için özel bir kullanıcı oluşturmanın ve özel kullanıcıyı diske atamanın eski yolunu kullanabilirsiniz. Tam kullanıcı arayüzü desteği var.

Bu SID enjeksiyon yöntemi, tek bir kullanıcı kullanmanıza izin verir, ancak her bir uygulama havuzu için benzersiz kullanıcılar oluşturmak zorunda kalmadan her siteyi birbirinden tamamen yalıtmanıza olanak tanır. Oldukça etkileyici ve UI desteği ile daha da iyi olacak.

Not: Uygulama havuzu kullanıcısını bulamıyorsanız, Uygulama Ana Bilgisayar Yardımcısı Hizmeti adlı Windows hizmetinin çalışıp çalışmadığını kontrol edin. Uygulama havuzu kullanıcılarını Windows hesaplarına eşleyen hizmettir.


1
Garip bir canavardır, çünkü kullanıcının bir grupta yaşadığı bir grup gibi değildir ve bilgisayar hesabı ile birbirinden tamamen farklı olan bir kullanıcı hesabı gibi değildir. Uygulama havuzu hesabı, uygulama havuzu kimliği kullanıcısını 'örtüşür'. Örneğin, Network Service kullanarak 5 uygulama havuzunuz ve özel hesaplar kullanan 5 kişi olabilir, ancak bunlar 10 farklı sistem tarafından yönetilen uygulama havuzu hesabıdır. Avantajları, otomatik olarak yönetildiği ve sistemi temiz bir şekilde kilitlediği c: \ inetpub \ temp \ appPools klasörü ile fark edilir. IIS bunları iyi bir şekilde kullanıyor. Klasörlerde kullanımımız isteğe bağlıdır.
Scott Forsyth - MVP

29
İzinleri düzenlerken doğrudan "Kullanıcı veya Grup Seçin" (arama yapmak yerine) içine "IIS APPPOOL \ DefaultAppPool" girerseniz, bunun sadece iyi olduğunu (Win7 x64 ve Win2k8 R2 x64'te test edilmiştir) tanınacağını unutmayın.
Milan Gardian

5
Win7 ve Win2k8 R2 için haklısın. Win2k8 RTM'de uygulanmadı, ancak R2'de.
Scott Forsyth - MVP

9
Nihayet bu var - Eğer @Milan Gardian yukarıdaki diyor doğrudan gibi uygulama havuzu adını yazarsanız ve yerel makine daha sonra çalışır konum alanını değiştirmek
Ciaran Bruen

4
'Dikkat edilmesi gereken iki şey için' çok teşekkür ederim. Her ikisinde de tökezliyordum ve bu problemlerin ve ihtiyaç duyduğum şeyin nasıl başarılacağının açık ve basit bir açıklamasıydı. Sadece bir utanç, MSDN belgelerinin hiçbiri bu kadar açık değildi.
Ian Grainger

22

From this locationAlanın local machineetki alanına değil, olarak ayarlandığından emin olmanız gerekir .

Ben de aynı sorunu yaşadım ve bir kez iyi çalıştığını değiştirdim.


4

Gerçekten "rol" başına gruplar oluşturuyor olmalısınız ve bu grubun dosya sistemine eriştiğini atamalısınız. Ardından, uygulama havuzunu gerektiği gibi özel gruplara ekleyin. Bu yolla daha sonra uygulama havuzunu kaldırsanız (ve sanal kullanıcı çılgına dönerse ), tüm izinleri yinelemek konusunda endişelenmenize gerek kalmaz, yalnızca yeni uygulama havuzunu mevcut gruba ekleyin.


3

@Scott Forsyth - MVP yanıtını okuduktan sonra Application Host Helper Service'ı yeniden başlatmaya çalıştım. Bu benim için sorunu çözdü.


0

WS8 R2 kullanıyordum ve IIS APPPOOL\DefaultAppPoolWindows Gezgini ile ekleyemedim . Çalıştığı tek yol komut satırı üzerinden oldu:

cacls [DOSYA YOLU] / T / E / G "IIS APPPOOL \ DefaultAppPool": C


2
Garip bir şekilde kabul edilmesi için "IIS AppPool \ DefaultAppPool" yapmak zorunda kaldım. Karışık vakaya dikkat edin - ilk defa yaptığım gibi, büyük harflerin tümü GUI'den kabul edilmedi.
Jeff McJunkin

0

Bu soru msdb veritabanında (msdb'de SQL Gönder Veritabanı Posta saklı yordamını kullanarak) msdb veritabanında nasıl çalıştırılacağıyla ilgiliyse, işte size bazı çalışmalar. "DatabaseMailUserRole" rol üyeliği ile veritabanınızın .net uygulaması kullanıcı adını (.net uygulamanızdaki bağlantı dizinde tanımlanmış olan) msdb kullanıcısına ekleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.