IIS / ASP.NET için tüm kullanıcı hesapları nelerdir ve aralarındaki farklar nelerdir?


283

ASP.NET 4.0 yüklü Windows Server 2008 altında, ilgili kullanıcı hesaplarıyla ilgili bir sürü var ve hangisinin hangisi, nasıl farklılık gösterdiği ve hangisinin GERÇEKTEN benim uygulamamın altında çalıştığını anlayamıyorum. İşte bir liste:

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • ASP.NET v4.0
  • NETWORK_SERVICEkullanıcı
  • YEREL SERVİS.

Ne nedir?


Windows Server 2012'yi ASP.NET 4.0 veya üstü ile mi kullanıyorsunuz?
Kiquenet

Yanıtlar:


433

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_WPGgrubuna 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_IUSRSve IUSRbakı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 DefaultAppPoolyukarıda.

NETWORK SERVICE: -

NETWORK SERVICEHesabın bir Windows 2003 tarihinde tanıtılan kimlik yerleşik-olan NETWORK SERVICEbaş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.configdosyadaki 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 IUSRveya belirli bir özel anonim hesap olarak çalışacak şekilde yapılandırabilirsiniz .

LOCAL SERVICE:

LOCAL SERVICEHesap 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:

resim açıklamasını buraya girin

Web sitesinde, Kimlik Doğrulama özelliğini yapılandırmanız gerekir:

resim açıklamasını buraya girin

Anonim Kimlik Doğrulama girişini sağ tıklayın ve düzenleyin:

resim açıklamasını buraya girin

"Uygulama havuzu kimliği" nin seçildiğinden emin olun :

resim açıklamasını buraya girin

Dosya ve klasör izinlerini uygulamaya geldiğinizde, Uygulama Havuzu kimliğine gereken hakları verirsiniz. Örneğin, ASP.NET v4.0havuz izinleri için uygulama havuzu kimliğini veriyorsanız, bunu Explorer aracılığıyla yapabilirsiniz:

resim açıklamasını buraya girin

"Adları Kontrol Et" düğmesini tıklayın:

resim açıklamasını buraya girin

Veya bunu ICACLS.EXEyardı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?


anonim kimlik doğrulaması ve uygulama havuzu kimliği için aynı kullanıcıyı kullanmayı kabul etmeyin ... eğer bir klasöre takdir izni vermeniz gerekiyorsa ....
giammin

1
@giammin - neden olmasın? Özel bir durumunuz yoksa, her sitenin kendi uygulama havuzunda olması koşuluyla uygulama havuzu kimliklerini kullanmak en güvenli yaklaşımdır. "Otoriteye itiraz" yapmaktan nefret ediyorum, ancak 15 yıldır paylaşılan bir web barındırma mühendisi ve güvenlik görevlisi olan bu yaklaşım, IIS7 + 'da beyinsizdir.
Kev

@Kev sadece bir sitede anonim kullanıcıya yazma izni vermek istemiyorum
giammin

1
Uygulama havuzlarınız IIS AppPool \ <name_of_apppool> kullanılarak daha da belirgin olabilir. İlgili bir notta, uygulama havuzu sanal hesapları oluşturulmadığından IIS Express yalnızca IIS AppPool \ ASP.NET v4.0 ile çalışır.
kevindaub

@ daub815 - IIS Express, Windows oturum açma ve başlatmanız altında çalışacak ve geliştirme ve hata ayıklama sırasında gerektiği gibi kapanma amaçlandığı için farklı çalışır. Gerçekte, Full Fat IIS uygulama havuzlarını veya altyapısını kullanmaz veya bunlara bağımlı değildir. IIS Express'in amacı geliştiricilere gerçek davranışla aynı davranış, lezzet ve yapılandırmayı vermekti çünkü VS'nin oyuncak web sunucusu ciddi şekilde sınırlıydı ...
Kev
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.