Windows Kimlik Doğrulaması ile Kullanıcıların Kimliğini Doğrulama (VB)

Microsoft tarafından

MVC uygulaması bağlamında Windows kimlik doğrulamasını kullanmayı öğrenin. Uygulamanızın web yapılandırma dosyasında Windows kimlik doğrulamasını etkinleştirmeyi ve IIS ile kimlik doğrulamasını yapılandırmayı öğreneceksiniz. Son olarak, denetleyici eylemlerine erişimi belirli Windows kullanıcıları veya gruplarıyla kısıtlamak için [Authorize] özniteliğini kullanmayı öğreneceksiniz.

Bu öğreticinin amacı, MVC uygulamalarınızdaki görünümleri parolayla korumak için Internet Information Services'te yerleşik olarak bulunan 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 olan kullanıcılar tarafından çağrılmasına nasıl izin vereceğinizi öğrenirsiniz.

Windows kimlik doğrulamasını kullanmak, şirket içi bir web sitesi (intranet sitesi) oluştururken ve kullanıcılarınızın web sitesine erişirken standart Windows kullanıcı adlarını ve parolalarını kullanabilmesini istediğinizde mantıklıdır. Dışarıya yönelik bir web sitesi (İnternet web sitesi) oluşturuyorsanız bunun yerine Forms kimlik doğrulamasını kullanmayı göz önünde bulundurun.

Windows Kimlik Doğrulamasını Etkinleştirme

Yeni bir ASP.NET MVC uygulaması oluşturduğunuzda, Windows kimlik doğrulaması varsayılan olarak etkinleştirilmez. Forms kimlik doğrulaması, MVC uygulamaları için etkinleştirilen varsayılan kimlik doğrulama türüdür. MVC uygulamanızın web yapılandırması (web.config) dosyasını değiştirerek Windows kimlik doğrulamasını etkinleştirmeniz gerekir. <Kimlik doğrulama bölümünü bulun ve forms kimlik doğrulaması> yerine Windows'u kullanacak şekilde değiştirin:

<authentication mode="Windows">

</authentication>

Windows kimlik doğrulamasını etkinleştirdiğinizde, kullanıcıların kimliğini doğrulamak web sunucunuzdan sorumludur. 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'da bulunan 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 (Windows'ta oturum açmak için kullandığınız hesap) yürütür.

ASP.NET Geliştirme Web Sunucusu, NTLM kimlik doğrulamasını da destekler. Çözüm Gezgini penceresinde projenizin adına sağ tıklayıp Ö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

clip_image002

Bir üretim web uygulaması için, diğer yandan, web sunucunuz olarak IIS kullanırsınız. IIS aşağıdakiler de dahil olmak üzere çeşitli kimlik doğrulama türlerini destekler:

  • Temel Kimlik Doğrulaması – HTTP 1.0 protokolünün bir parçası olarak tanımlanır. Kullanıcı adlarını ve parolaları İnternet genelinde düz metin (Base64 kodlanmış) olarak gönderir. - Özet Kimlik Doğrulaması – İnternet üzerinden parolanın kendisi yerine bir parola karması gönderir. - Tümleşik Windows (NTLM) Kimlik Doğrulaması – Windows kullanan intranet ortamlarında kullanılacak en iyi kimlik doğrulaması türü. - Sertifika Kimlik Doğrulaması – İstemci tarafı sertifikası kullanarak kimlik doğrulamasını etkinleştirir. Sertifika bir Windows kullanıcı hesabıyla eşler.

Not

Bu farklı kimlik doğrulama türlerine daha ayrıntılı bir genel bakış için bkz https://msdn.microsoft.com/library/aa292114(VS.71).aspx. .

Belirli bir kimlik doğrulama türünü etkinleştirmek için Internet Information Services Yöneticisi'ni kullanabilirsiniz. Her işletim sistemi söz konusu olduğunda tüm kimlik doğrulama türlerinin kullanılamadığını unutmayın. Ayrıca, Windows Vista ile IIS 7.0 kullanıyorsanız, Internet Information Services Manager'da görünmeden önce farklı Windows kimlik doğrulaması türlerini etkinleştirmeniz gerekir. Denetim Masası, Programlar, Programlar ve Özellikler'i açın, Windows özelliklerini açın veya kapatın ve Internet Information Services düğümünü genişletin (bkz. Şekil 2).

Şekil 2 – Windows IIS özelliklerini etkinleştirme

clip_image004

Internet Information Services'i kullanarak farklı kimlik doğrulama türlerini etkinleştirebilir veya devre dışı bırakabilirsiniz. Örneğin, Şekil 3'de, IIS 7.0 kullanırken anonim kimlik doğrulamasının devre dışı bırakılması ve Tümleşik Windows (NTLM) kimlik doğrulamasının etkinleştirilmesi gösterilmektedir.

Şekil 3 – Tümleşik Windows Kimlik Doğrulamasını Etkinleştirme

clip_image006

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 Authorize> özniteliğini kullanabilirsiniz<. Bu öznitelik, MVC denetleyicisinin tamamına veya belirli bir denetleyici eylemine uygulanabilir.

Örneğin, Liste 1'deki Giriş denetleyicisi Index(), CompanySecrets() ve StephenSecrets() adlı üç eylemi kullanıma sunar. Herkes Index() eylemini çağırabilir. Ancak yalnızca Windows yerel Yöneticiler grubunun üyeleri CompanySecrets() eylemini çağırabilir. Son olarak, Yalnızca Stephen adlı Windows etki alanı kullanıcısı (Redmond etki alanında) StephenSecrets() eylemini çağırabilir.

Listeleme 1 – Controllers\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

Not

Windows Kullanıcı Hesabı Denetimi (UAC) nedeniyle, Windows Vista veya Windows Server 2008 ile çalışırken, yerel Yöneticiler grubu diğer gruplardan farklı davranır. Bilgisayarınızın <UAC ayarlarını değiştirmediğiniz sürece Authorize> özniteliği yerel Administrators grubunun bir üyesini doğru şekilde tanımaz.

Doğru izinler olmadan bir denetleyici eylemini çağırmaya çalıştığınızda tam olarak ne olacağı, etkinleştirilen kimlik doğrulama türüne bağlıdır. Varsayılan olarak, ASP.NET Geliştirme Sunucusu'nu kullanırken boş bir sayfa alırsınız. Sayfa 401 Yetkili Değil HTTP Yanıt Durumu ile sunulur.

Öte yandan, Anonim kimlik doğrulaması devre dışı bırakılmış ve Temel kimlik doğrulaması etkin olarak IIS kullanıyorsanız, korumalı sayfayı her istediğinizde oturum açma iletişim kutusu istemi almaya devam edin (bkz. Şekil 4).

Şekil 4 – Temel kimlik doğrulaması oturum açma iletişim kutusu

clip_image008

Özet

Bu öğreticide, ASP.NET MVC uygulaması bağlamında Windows kimlik doğrulamasını nasıl kullanabileceğiniz açıklanmıştır. Uygulamanızın web yapılandırma dosyasında Windows kimlik doğrulamasını etkinleştirmeyi ve IIS ile kimlik doğrulamasını yapılandırmayı öğrendinsiniz. Son olarak, denetleyici eylemlerine erişimi belirli Windows kullanıcıları veya gruplarıyla kısıtlamak için Authorize> özniteliğini kullanmayı <öğrendiniz.