Windows Kimlik Doğrulaması ile Kullanıcıların Kimliğini Doğrulama (VB)
Microsoft tarafından
Bir MVC uygulaması bağlamında Windows kimlik doğrulamasını nasıl kullanacağınızı öğrenin. Uygulamanızın web yapılandırma dosyasında Windows kimlik doğrulamasını nasıl etkinleştirdiğinizi ve Kimlik doğrulamayı IIS ile nasıl yapılandırabileceğinizi öğrenirsiniz. Son olarak, denetleyici eylemlerine erişimi belirli Windows kullanıcıları veya gruplarıyla sınırlamak için [Yetkilendirme] özniteliğini nasıl kullanacağınızı öğrenirsiniz.
Bu öğreticinin amacı, MVC uygulamalarınızdaki görünümleri parolayla korumak için Internet Bilgi Hizmetleri'nde yerleşik güvenlik özelliklerinden nasıl yararlanabileceğinizi açıklamaktır. Denetleyici eylemlerinin yalnızca belirli Windows kullanıcıları veya belirli Windows gruplarının üyesi kullanıcılar tarafından çağrılmasını nasıl sağlayacağınızı öğrenirsiniz.
Windows kimlik doğrulamasını kullanmak, bir şirket içi web sitesi (intranet sitesi) oluşturuyorsanız ve kullanıcılarınızın web sitesine erişirken standart Windows kullanıcı adlarını ve parolalarını kullanabilmesini istediğinizde anlamlıdır. Dışa dönük bir web sitesi (Bir Internet web sitesi) oluşturuyorsanız, bunun yerine Formkimlik doğrulaması kullanmayı düşünün.
Windows Kimlik Doğrulamasını Etkinleştirme
Yeni bir ASP.NET MVC uygulaması oluşturduğunuzda, Windows kimlik doğrulaması varsayılan olarak etkinleştirilir. Form kimlik doğrulaması, MVC uygulamaları için etkinleştirilmiş varsayılan kimlik doğrulama türüdür. MVC uygulamanızın web yapılandırmasını (web.config) dosyasını değiştirerek Windows kimlik doğrulamasını etkinleştirmelisiniz. <Kimlik doğrulama> bölümünü bulun ve Formlar kimlik doğrulaması yerine Windows'u kullanacak şekilde değiştirin:
<authentication mode="Windows"> </authentication>
Windows kimlik doğrulamasını etkinleştirdiğinizde, web sunucunuz kullanıcıların kimlik doğrulamasorumlusundan sorumlu olur. Genellikle, bir ASP.NET mvc uygulaması oluştururken ve dağıtırken kullandığınız iki farklı web sunucusu türü vardır.
İlk olarak, bir MVC uygulaması geliştirirken Visual Studio ile birlikte ASP.NET Geliştirme Web Sunucusu'nu kullanırsınız. Varsayılan olarak, ASP.NET Geliştirme Web Sunucusu tüm sayfaları geçerli Windows hesabı bağlamında yürütür (Windows'da oturum açmak için kullandığınız hesap ne olursa olsun).
ASP.NET Geliştirme Web Sunucusu da NTLM kimlik doğrulamasını destekler. Çözüm Gezgini penceresinde projenizin adını sağ tıklayarak ve Özellikler'i seçerek NTLM kimlik doğrulamasını etkinleştirebilirsiniz. Ardından, Web sekmesini seçin ve NTLM onay kutusunu işaretleyin (Bkz. Şekil 1).
Şekil 1 – ASP.NET Geliştirme Web Sunucusu için NTLM kimlik doğrulamasını etkinleştirme
Bir üretim web uygulaması için, elde, web sunucusu olarak IIS kullanın. IIS, çeşitli kimlik doğrulama türlerini destekler:
- Temel Kimlik Doğrulama – HTTP 1.0 protokolünün bir parçası olarak tanımlanır. Internet üzerinden açık metin (Base64 kodlanmış) kullanıcı adları ve parolalar gönderir. - Digest Authentication - Internet üzerinden şifre kendisi yerine, bir şifre karma gönderir. - Entegre Windows (NTLM) Kimlik Doğrulaması – Pencereleri kullanarak intranet ortamlarında kullanılacak en iyi kimlik doğrulama türüdür. - Sertifika Kimlik Doğrulaması – İstemci tarafı sertifikası kullanarak kimlik doğrulamasını sağlar. Sertifika, bir Windows kullanıcı hesabına eşler.
Note
Bu farklı kimlik doğrulama türlerinin daha ayrıntılı https://msdn.microsoft.com/library/aa292114(VS.71).aspxbir özeti için bkz.
Belirli bir kimlik doğrulama türünü etkinleştirmek için Internet Information Services Manager'ı kullanabilirsiniz. Her işletim sisteminde her türlü kimlik doğrulamanın kullanılmadığını unutmayın. Ayrıca, Windows Vista ile IIS 7.0 kullanıyorsanız, Internet Bilgi Hizmetleri Yöneticisi'nde görünmeden önce farklı Windows kimlik doğrulama türlerini etkinleştirmeniz gerekir. Denetim Masası, Programlar, Programlar ve Özellikler açık, Windows özelliklerini açıp kapatınve Internet Bilgi Hizmetleri düğümünü genişletin (Bkz. Şekil 2).
Şekil 2 – Windows IIS özelliklerini etkinleştirme
Internet Bilgi Hizmetleri'ni kullanarak farklı kimlik doğrulama türlerini etkinleştirebilir veya devre dışı kullanabilirsiniz. Örneğin, Şekil 3 anonim kimlik doğrulamasını devre dışı bırakmayı ve IIS 7.0 kullanırken Tümleşik Windows (NTLM) kimlik doğrulamasını etkinleştirmeyi göstermektedir.
Şekil 3 – Tümleşik Windows Kimlik Doğrulamasını Etkinleştirme
Windows Kullanıcılarını ve Gruplarını Yetkilendirme
Windows kimlik doğrulamasını etkinleştirdikten sonra, denetleyicilere veya denetleyici eylemlerine erişimi denetlemek için <Yetkilendirme> özniteliğini kullanabilirsiniz. Bu öznitelik, tüm MVC denetleyicisine veya belirli bir denetleyici eylemine uygulanabilir.
Örneğin, Listeleme 1'deki Ev denetleyicisi Index(), CompanySecrets() ve StephenSecrets() adlı üç eylemi ortaya çıkarır. Herkes Index() eylemini çağırabilir. Ancak, yalnızca Windows yerel Yöneticileri grubunun üyeleri CompanySecrets() eylemini çağırabilir. Son olarak, yalnızca Stephen adlı Windows etki alanı kullanıcısı (Redmond etki alanında) StephenSecrets() eylemini başlatabilir.
Listeleme 1 – Denetleyiciler\HomeController.vb
<HandleError()> _ Public Class HomeController Inherits System.Web.Mvc.Controller Function Index() Return View() End Function <Authorize(Roles:="Managers")> _ Function CompanySecrets() Return View() End Function <Authorize(Users:="redmond\swalther")> _ Function StephenSecrets() Return View() End Function End Class
Note
Windows Kullanıcı Hesabı Denetimi (UAC) nedeniyle, Windows Vista veya Windows Server 2008 ile çalışırken, yerel Yöneticiler grubu diğer gruplardan farklı davranacaktır. Bilgisayarınızın <> UAC ayarlarını değiştirmediğiniz sürece Yetkilendirme özniteliği yerel Yöneticiler grubunun bir üyesini doğru şekilde tanımaz.
Doğru izinler olmadan bir denetleyici eylemi çağırmaya çalıştığınızda tam olarak ne olur, kimlik doğrulamanın etkinleştirilen türüne bağlıdır. Varsayılan olarak, ASP.NET Geliştirme Sunucusu'nu kullanırken boş bir sayfa elde edersiniz. Sayfa 401 Yetkili değil HTTP Yanıt Durumu ile servis edilir.
Diğer taraftan, Anonim kimlik doğrulama devre dışı bırakılmış ve Temel kimlik doğrulama etkini ile IIS kullanıyorsanız, korumalı sayfayı her istediğinizde bir giriş iletişim istemi almaya devam emzebilirsiniz (Bkz. Şekil 4).
Şekil 4 – Temel kimlik doğrulama giriş iletişim kutusu
Özet
Bu öğretici, windows kimlik doğrulamasını ASP.NET bir MVC uygulaması bağlamında nasıl kullanabileceğinizi açıklamıştır. Uygulamanızın web yapılandırma dosyasında Windows kimlik doğrulamasını etkinleştirmeyi ve Kimlik Doğrulamayı IIS ile nasıl yapılandırabileceğinizi öğrendiniz. Son olarak, denetleyici eylemlerine erişimi belirli Windows kullanıcıları veya gruplarıyla sınırlamak için <Yetkilendirme> özniteliğini nasıl kullanacağınızı öğrendiniz.