“Uygulama Havuzu Kimliği” Uygulama Havuzu için nasıl bir rol oynar?


16

IIS 7.5 güvenliği hakkında konuşurken, AFAIK:

Uygulama Havuzu Kimliği, web uygulamamın kim olarak çalışacağına karar verir .

Kimlik Doğrulama Yöntemi karar verir kime istemciler olarak doğrulanır.

Ben böyle yapılandırılmış bir sanal klasör var:

  • Anonim Kimlik Doğrulama'yı tüm istemcilerin IUSR olarak doğrulanması beklentisiyle kullanıyorum .
  • IUSR'a klasörün tam denetimini veriyorum.
  • Uygulama Havuzu Kimliğim, klasör için herhangi bir izni olmayan XXX hesabı olarak ayarlandı. (Bunu kasten ayarladım)

Ama o klasördeki dosyalara göz atamadığım ortaya çıkıyor. XXX hesabına bu klasöre erişim izni verdikten sonra işler iyi gidiyor.

Peki, Uygulama Havuzu Kimliği anonim kimlik doğrulamasında hangi rolü oynar? App Pool Identity hesabına klasöre erişim izni vermem beklenmiyor. Anonim Kimlik Doğrulamanın yeterli olacağını düşündüm.

Teşekkürler.

Yanıtlar:


18

Burada aşırı yüklü terimler ve IIS 7 ile 7.5 arasında bir değişiklik var.

Uygulama Havuzu Kimliği ve Uygulama Havuzu Hesabı

Uygulama Havuzu kimliğiyle başlayalım (küçük harf I, diğer adıyla Uygulama Havuzu Hesabı ):

Anlattığım gibi, Uygulama Havuzu Hesabı , bir Uygulama Havuzunu önyüklemek için kullanılan hesap ve Uygulama Havuzunun başkasını taklit etmediği zaman aldığı kimliğidir.

Bu nedenle, Uygulama Havuzuna hangi kimliği verirseniz verin, içerik klasöründeki dosyaları okuyabilmesi gerekir : özellikle herhangi bir web.config dosyasını (IIS yapılandırmasının bir parçasını oluşturan) ve App Pool yapıyor olacak).

Bir klasöre erişemezse, orada önemli bir (oyun değiştiren) web.config dosyası olabileceğini varsayar ve bir hata görüntüler. Bu nedenle, Uygulama Havuzu Hesabı'nın tüm içerik klasörlerine Okuma erişimi gerekir.

ApplicationPoolIdentity

Uygulama Havuzu Hesabını (uygulama havuzunun kimliği) Uygulama Havuzu Kimliğinden neden farklılaştırmalıyım? Özel sermayeli olarak kullanılan ApplicationPoolIdentity yeni bir hesap türü - yönetilen hizmet hesabı - IIS 7.5 / Windows 2008 R2'de tanıtıldı ve varsayılan olarak ayarlandı ve Windows 2008 SP2'den de kullanılabilir (ancak varsayılan değil).

Bkz . IIS.Net'te Uygulama Havuzu Kimlikleri

GUI kullanarak R2 altında bir web sitesi oluşturduğunuzda:

  • söz konusu web sitesini barındırmak için bir Uygulama Havuzu oluşturulacak ve
  • hesap türü Ağ Hizmeti (2008 varsayılanı), Yerel Hizmet veya Yerel Sistem yerine ApplicationPoolIdentity olacaktır.

2008 RTM ile, varsayılan Uygulama Havuzu hesabı Ağ Hizmeti artı benzersiz bir uygulama havuzu kimliği / benzersizleştiricisiydi; yeni R2 / SP2 AppPoolIdentity hesap türü , Ağ Hizmeti benzeri bir hesaptır (yani kutudan çıkarken bilgisayar), ancak aynı kutu içinde başka bir Uygulama Havuzunun kimliğine bürünülmesini önler.

Orijinal soruya geri dön:

  • Uygulama havuzu hesabı tanımlar uygulama olarak çalışır Başkasının kimliğine bürünüyor değilken

  • Kimlik doğrulama yöntemi , istemcilerin kimliğini nasıl doğrulayacağınızı açıklar (onları taklit etmek için)

  • Anonim kullanıcı hesabı kimlik doğrulaması olmayan bir istek için bir kullanıcı kimliğine bürünüyor olduğu gibi kaçacaksan tanımlar - IUSR böyle bir kullanıcıdır.

Bu arada, IIS 7.5 ile Anonim kullanıcı hesabını Uygulama Havuzu Kimliği (Anonim kimlik doğrulama yönteminin özellikleri) olarak ayarlayabilirsiniz; bu, belirli bir web sitesinin içeriğini ayırmayı ve korumayı daha kolay hale getirebilir.

Ad biçimi için IIS AppPool \ YourSiteName kullanarak izinleri ayarlayın. (ayrıca bu gönderiye bakınız )


4

ASP.NET'te yaygın olarak karıştırılan iki şey görüyorsunuz:

  1. "kullanıcı kimliği" - Bir kullanıcı hesabının kimlik doğrulamasının aslında hem II'ler hem de ASP.NET altında çalışan hesap veya kimlikle ilgisi yoktur. Anonim kimlik doğrulama, herhangi bir kullanıcının, istemci tarayıcısına bir kullanıcı adı ve parola sorgusu sağlamadan herkese açık herhangi bir içeriğe erişmesine olanak tanır. IIS'de varsayılan olarak kimlik doğrulaması yapılan anonim IUSR hesabı yalnızca genel web sitesi içeriğine erişim uygular. Temel II'ler veya ASP.NET hizmetleri tarafından kullanılan işlemleri veya kaynakları etkilemez.
  2. "uygulama kimliği" - Bu, sunucuda gerçekte "WindowsIdentity" hesabıdır ve IIS ve ASP.NET'in arkasında çalışır. Bu, havuza II'ler tarafından atanan ve ASP.NET'e verilen Uygulama Havuzu Kimliği hesabıdır. ASP.NET işleminiz varsayılan olarak bu Uygulama Havuzu Kimliği hesabı (II'nin 7.5 ve sonraki sürümlerinde sanal hesap olarak adlandırılır) altında çalışır.

Açıklama: İlk olarak, ASP.NET'teki "kimlik doğrulama" yalnızca web.config dosyasında genellikle II.'nin ASP.NET'e kullanıcı belirteci olarak sade bir HttpContext nesnesi olarak geçirilen belirli bir kullanıcı hesabında oturum açan bir olaydır ... yani geçerli oturum veya geçerli kullanıcının bağlamı. Aslında ASP.NET işlemini çalıştıran WindowsIdentity değişmez, sadece bir kullanıcı kimliği belirteci geçirir. HttpContext kullanarak kodunuz, web sitenizin çeşitli bölümlerinde veritabanı haklarını saklamak için bu kimliği veya adı kullanabilir. Ancak ASP.NET'in dosya erişimini etkilemez, çünkü ASP.NET'i II'ler altında çalıştıran gerçek uygulama "işlem" hesabının kimliğini etkilemez veya değiştirmez.

ASP.NET'e II tarafından iletilen herhangi bir simgeyi taklit etmesini ve daha sonra bu hesap kimliği altında çalışmasını söyleyen "Kimliğe Bürünme" yapana kadar bu gerçekleşmez. Web.config dosyasında kimliğe bürünme özelliğini ayarlayabilirsiniz. ASP.NET'te kimliğe bürünme özelliğini etkinleştirdiğinizde, WindowsIdentity, kimlik doğrulamalı hesabın IIS'den ASP.NET'e geçirildiği çalışan işlemle değiştirilir ve daha sonra elbette bu kullanıcı hesabına hangi hakları atadığınıza bağlı olarak dosyalara erişebilirsiniz. Bunun geçici ve ASP.NET'in ne zaman gerçekleştiğini not etmek, mevcut II sürümlerinde bulunan belirli bir Uygulama Havuzuna atanan Uygulama Havuzu Kimliği hesabını içeren varsayılan işlem kimliğine geri dönebilir.

II'ler yalnızca ASP.NET'te açık kimlik doğrulaması ayarlanmamış düz anonim kullanıcı hesabını kullandığında, IIs varsayılan olarak web sitesinin atanmış Uygulama Havuzu'nun Uygulama Havuzu Kimliği hesabını başlatır ve bunu ASP.NET'e ve onu çalıştıran çalışan işlemine geçirir. Bu Uygulama Havuzu kimlik hesabı IIS için tüm istekleri işler ve o site için ASP.NET'i çalıştırır.

II'ler bu kurulum altında başlatıldığında ve bir kullanıcı tarafından erişildiğinde, aslında web sayfalarına ve diğer temel kaynaklara erişimi belirleyen anonim IUSR hesabının varsayılan olarak sahne arkasında kimlik doğrulaması yapar. Ancak bu hesap ASP.NET'e aktarılmaz. Ve IIS'nin çalıştığı ve ASP.NET'in altında çalıştığı Uygulama Havuzu Kimliği'ni etkilemez.

Web.config dosyasında Kimliğe Bürünme'yi "true" olarak ayarlarsanız VE genel erişim için II'lerde varsayılan anonim IUSR hesabını kullanıyorsanız VE web.config dosyasındaki (Windows kullanmak yerine) anonymousAuthentication özelliğini açıkça true olarak ayarlarsınız. veya diğer giriş hesabı), II'ler Uygulama Havuzu Kimliğini atar ve II'ler ve ASP.NET artık uygulama işlemlerini anonim IUSR kimlik doğrulamalı ve kimliğine bürünmüş hesap olarak çalıştırır.

Bunu yaptığınızda ASP.NET ve işlemleri şimdi IUSR hesabı altında çalışacaktır .... yani ASP.NET'in uygulama süreci, WindowsIdentity hesabını IUSR hesabı olarak çalıştıracaktır. Artık bu anonim IUSR hesabına ve hesabın erişmesini istediğiniz klasörlere okuma / yazma erişimi uygulayabilirsiniz. (Not: varsayılan işlem hesabını, havuz için Uygulama Havuzu hesabını, hakları ve bu klasörlere eklediğinizden emin olun. Bu, Microsoft'un önerisine göre)

İyi şanslar!


2

Oyunda iki kimlik doğrulama içeriği vardır. Web sunucusu işlemi (web isteklerinizi işleyen) Uygulama Havuzu Kimliği kullanıcısı olarak çalışır. Sanal ana bilgisayarınız için bir istek geldiğinde, uygulama havuzu varsayılan olarak IUSR olan belirli sitenin "Anonim Kimlik Doğrulama Kimlik Bilgileri" nde listelenen kullanıcıyı taklit eder.

Web sitenizden çalıştırılan tüm komut dosyaları IUSR olarak çalışır, ancak günlüğe kaydetme ve diğer bazı işlevler Uygulama Havuzu Kullanıcısı olarak çalışır (varsayılan Ağ Hizmeti - bu özel bir sanal uygulama havuzu kullanıcısı kullanmak için yakın zamanda değiştirilmiş olmasına rağmen). Uygulama Havuzu Kimliği (Ağ Hizmeti), denetim komut dosyasına teslim edilmeden önce istek yığınında belirli denetimler yapıldığından, dizininizdeki dosyaları listeleyebilmelidir.

Havuz başına bir site çalıştırmak ve Uygulama Havuzu Kimliğini web sitenizin Anonim kullanıcısıyla aynı kullanıcı olarak çalışacak şekilde ayarlamak iyi bir uygulamadır. Anonim Kullanıcı bağlamından (IUSR) ayrılmak ve Uygulama Havuzu Kimliğinin kendilerine ait ayrıcalıkları yükseltmek mümkündür.

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.