Bu çok iyi bir soru ve ne yazık ki birçok geliştirici, bir web geliştiricisi olmak ve IIS'yi kurmak bağlamında IIS / ASP.NET güvenliği hakkında yeterli soru sormuyor. İşte gidiyor ....
Listelenen kimlikleri kapsamak için:
IIS_IUSRS:
Bu, eski IIS6 IIS_WPG
grubuna benzer . Bu grubun herhangi bir üyesinin uygulama havuzu kimliği olarak işlev görebileceği şekilde yapılandırılmış güvenliği olan yerleşik bir gruptur.
IUSR:
Bu hesap, IUSR_<MACHINE_NAME>
IIS5 ve IIS6 web siteleri için varsayılan anonim kullanıcı olan eski yerel hesaba (ör. Bir sitenin özelliklerinin Dizin Güvenliği sekmesi aracılığıyla yapılandırılmış olan) benzer.
Hakkında daha fazla bilgi için IIS_IUSRS
ve IUSR
bakın:
IIS 7'de Yerleşik Kullanıcı ve Grup Hesaplarını Anlama
DefaultAppPool:
Bir uygulama havuzu Uygulama Havuzu Kimliği özelliği kullanılarak çalışacak şekilde yapılandırılırsa IIS AppPool\<pool name>
, havuz kimliği olarak kullanılacak anında "sentezlenmiş" bir hesap oluşturulur. Bu durumda IIS AppPool\DefaultAppPool
, havuzun ömrü boyunca yaratılan sentezlenmiş bir hesap olacaktır . Havuzu silerseniz, bu hesap artık mevcut olmayacaktır. Dosyalara ve klasörlere izinler uygulanırken bunlar kullanılarak eklenmelidir IIS AppPool\<pool name>
. Bu havuz hesaplarını bilgisayarınızın Kullanıcı Yöneticisi'nde de görmezsiniz. Daha fazla bilgi için aşağıdakilere bakın:
Uygulama Havuzu Kimlikleri
ASP.NET v4.0:
-
Bu, ASP.NET v4.0 Uygulama Havuzu için Uygulama Havuzu Kimliği olacaktır. Bkz DefaultAppPool
yukarıda.
NETWORK SERVICE:
-
NETWORK SERVICE
Hesabın bir Windows 2003 tarihinde tanıtılan kimlik yerleşik-olan NETWORK SERVICE
başvurunuzun havuzları ve web sitelerini çalıştırabilirsiniz altında düşük ayrıcalıklı hesabıdır. Windows 2003 havuzunda çalışan bir web sitesi yine de sitenin anonim hesabını taklit edebilir (IUSR_ veya anonim kimlik olarak yapılandırdığınız her şey).
Windows 2008'den önceki ASP.NET'te, ASP.NET'in Uygulama Havuzu hesabı altında istekleri yürütmesini sağlayabilirsiniz (genellikle NETWORK SERVICE
). Alternatif olarak, ASP.NET'i sitenin anonim hesabını yerel olarak dosyadaki <identity impersonate="true" />
ayar aracılığıyla taklit edecek şekilde yapılandırabilirsiniz web.config
(bu ayar kilitliyse, machine.config
dosyadaki bir yönetici tarafından yapılması gerekir ).
<identity impersonate="true">
Paylaşılan uygulama havuzlarının kullanıldığı paylaşılan barındırma ortamlarında ayar ortaktır (taklit edilen hesabın çözülmesini önlemek için kısmi güven ayarlarıyla birlikte).
IIS7.x / ASP.NET'te kimliğe bürünme denetimi artık bir sitenin Kimlik Doğrulaması yapılandırma özelliği ile yapılandırılmıştır. Böylece havuz kimliği IUSR
veya belirli bir özel anonim hesap olarak çalışacak şekilde yapılandırabilirsiniz .
LOCAL SERVICE:
LOCAL SERVICE
Hesap yerleşik bir hizmet denetimi yöneticisi tarafından kullanılan hesabın olduğunu. Yerel bilgisayarda en düşük ayrıcalıklara sahiptir. Oldukça sınırlı bir kullanım alanına sahiptir:
LocalService Hesabı
LOCAL SYSTEM:
Bunu sormadın ama tamlık için ekliyorum. Bu yerel bir yerleşik hesaptır. Oldukça geniş ayrıcalıklara ve güvene sahiptir. Bir web sitesini veya uygulama havuzunu bu kimlik altında çalışacak şekilde asla yapılandırmamalısınız.
LocalSystem Hesabı
Uygulamada:
Uygulamada, bir web sitesinin güvenliğini sağlamak için tercih edilen yaklaşım (site kendi uygulama havuzunu alırsa - IIS7'nin MMC'sindeki yeni bir site için varsayılan değer) altında çalışmaktır Application Pool Identity
. Bu, Uygulama Havuzu'nun Gelişmiş Ayarlarında sitenin Kimliğini şu şekilde ayarlamak anlamına gelir Application Pool Identity
:
Web sitesinde, Kimlik Doğrulama özelliğini yapılandırmanız gerekir:
Anonim Kimlik Doğrulama girişini sağ tıklayın ve düzenleyin:
"Uygulama havuzu kimliği" nin seçildiğinden emin olun :
Dosya ve klasör izinlerini uygulamaya geldiğinizde, Uygulama Havuzu kimliğine gereken hakları verirsiniz. Örneğin, ASP.NET v4.0
havuz izinleri için uygulama havuzu kimliğini veriyorsanız, bunu Explorer aracılığıyla yapabilirsiniz:
"Adları Kontrol Et" düğmesini tıklayın:
Veya bunu ICACLS.EXE
yardımcı programı kullanarak yapabilirsiniz :
icacls c: \ wwwroot \ sitem / "IIS AppPool \ ASP.NET v4.0" :( CI) (OI) (M)
... veya ... sitenizin uygulama havuzu çağrılırsa BobsCatPicBlog
:
icacls c: \ wwwroot \ sitem / "IIS AppPool \ BobsCatPicBlog" :( CI) (OI) (M)
Umarım bu bir şeyleri temizlemeye yardımcı olur.
Güncelleme:
Ben sadece iyi okumaya değer bir sürü yararlı bilgi içeren 2009 bu mükemmel cevap çarptı:
'Yerel Sistem' hesabı ile 'Ağ Hizmeti' hesabı arasındaki fark nedir?