ISA Server 2004 Service Pack 2 kullanılarak yayımlanan bir Web sitesine bağlandığınızda hata kodu 403 veya 500

Bu makalede, Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2) kullanılarak yayımlanan bir Web sitesine bağlanmaya çalışıldığında oluşan bir hatanın çözümü sağlanır.

Şunlar için geçerlidir: Windows Server 2003
Özgün KB numarası: 912122

Önemli

Bu makale, güvenlik ayarlarını düşürmeye veya bilgisayardaki güvenlik özelliklerini kapatmaya yardımcı olduğunu gösteren bilgiler içerir. Belirli bir soruna geçici bir çözüm bulmak için bu değişiklikleri yapabilirsiniz. Bu değişiklikleri yapmadan önce, bu geçici çözümü kendi ortamınızda uygulamayla ilişkili riskleri değerlendirmenizi öneririz. Bu geçici çözümü uygularsanız sisteminizi korumaya yardımcı olmak için uygun ek adımları uygulayın.

Belirtiler

Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 (SP2) kullanılarak yayımlanan bir Web sitesine bağlanmaya çalıştığınızda bir hata iletisi alırsınız. ISA Server Web dinleyicisinde Temel kimlik doğrulaması etkinleştirildiyse aşağıdaki hata iletisini alırsınız:

Hata Kodu: 403 Yasak.
Sayfa güvenli bir kanal (Güvenli Yuva Katmanı (SSL) üzerinden görüntülenmelidir. Sunucu yöneticisine başvurun. (12211)

ISA Server Web dinleyicisinde RADIUS kimlik doğrulaması veya Microsoft Outlook Web Access Forms-Based kimlik doğrulaması (Cookie-auth) etkinse, aşağıdaki hata iletisini alırsınız:

Hata Kodu: 500 İç Sunucu Hatası.
bir iç hata oluştu. (1359)

Neden

Bu sorun, aşağıdaki koşulların tümü doğruysa oluşur:

  • ISA Server 2004 Web dinleyicisinde aşağıdaki kimlik doğrulama yöntemlerinden herhangi biri etkindir:

    • Basic
    • RADIUS
    • Outlook Web Access Forms-Based
  • ISA Server 2004 Web dinleyicisi HTTP trafiğini dinleyecek şekilde yapılandırılmıştır.

  • Web dinleyicisi için Tüm kullanıcıların kimlik doğrulamasını iste onay kutusu seçilidir veya Web yayımlama kuralları varsayılan Tüm kullanıcılar kullanıcı kümesi dışında bir kullanıcı kümesine uygulanır.

  • Yayımlanan Web sitesine HTTPS yerine HTTP kullanarak bağlanırsınız.

Bu sorun, ISA Server 2004 SP2'de bulunan bir güvenlik değişikliği nedeniyle oluşur. HTTP'den HTTP'ye köprü oluşturmayı kullandığınızda, Web dinleyicisi aşağıdaki kimlik bilgilerinden birini veya daha fazlasını istemek üzere yapılandırılmışsa, ISA Server 2004 SP2 dış HTTP bağlantı noktasında trafiği etkinleştirmez:

  • Basic
  • RADIUS
  • Outlook Web Access Forms-Based

Bu tür kimlik bilgilerinin şifrelenmesi gerektiğinden bu davranış oluşur. Bu kimlik bilgileri HTTP üzerinden düz metin olarak gönderilmemelidir.

ISA Server 2004 SP2'den önceki ISA Server 2004 sürümleri için kimlik bilgilerini düz metin olarak girmeniz istenir. Bu davranış, dış Güvenli Yuva Katmanı (SSL) hızlandırıcısı veya şifrelenmiş tünel gibi başka bir ağ güvenliği biçimi uygulamadıysanız kimlik bilgilerinin ağ üzerinden düz metin olarak iletilmesine neden olabilir. ISA Server bu tür güvenlik sağlamaz.

ISA Server 2004 SP2, kimlik bilgilerini düz metin olarak girmenizi engeller. Bunu yapmaya çalıştığınızda bir hata iletisi alırsınız.

Geçici Çözüm

Uyarı

Bu geçici çözüm, bilgisayarınızın veya ağınızın kötü amaçlı kullanıcılar veya virüs gibi kötü amaçlı yazılımlar tarafından yapılan saldırılara karşı daha savunmasız olmasını sağlayabilir. Bu geçici çözümü önermeyiz, ancak bu geçici çözümü kendi takdirinize bağlı olarak uygulayabilmeniz için bu bilgileri sağlıyoruz. Bu çözümü kullanmak kendi sorumluluğunuzdadır.

Bu sorunu geçici olarak çözmek için ISA Server 2004 SP2'yi ISA Server 2004'ün önceki sürümleri gibi davranacak şekilde yapılandırın.

Bunu yapmak için, yapılandırmayı değiştirmek istediğiniz ISA Server 2004'te aşağıdaki betiği çalıştırın. Betik, ISA Server 2004 dizisinin kökü altında ayarlanan yeni bir satıcı parametrelerinde AllowAskBasicAuthOverNonSecureConnection adlı bir değer ayarlar.

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna zımni garantiler, satılabilirlik veya belirli bir amaca uygunluk da dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' Copyright (c) Microsoft Corporation. All rights reserved.
' THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE
' RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE
' USER. USE AND REDISTRIBUTION OF THIS CODE, WITH OR WITHOUT MODIFICATION, IS
' HEREBY PERMITTED.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' This script adds a new VendorParametersSets under the array root.
' add a new VendorParametersSet and add a value name "AllowAskBasicAuthOverNonSecureConnection" set to 1.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub AddAllowAskBasicAuthOverNonSecureConnection()

    ' Create the root object.
    Dim root  ' The FPCLib.FPC root object
    Set root = CreateObject("FPC.Root")

    ' Declare the other objects that are required.
    Dim array       ' An FPCArray object
    Dim VendorSets  ' An FPCVendorParametersSets collection
    Dim VendorSet   ' An FPCVendorParametersSet object

    ' Get references to the array object
    ' and the network rules collection.
    Set array = root.GetContainingArray
    Set VendorSets = array.VendorParametersSets

    On Error Resume Next
    Set VendorSet = VendorSets.Item( "{143F5698-103B-12D4-FF34-1F34767DEabc}" )

    If Err.Number <> 0 Then
        Err.Clear

        ' Add the item
        Set VendorSet = VendorSets.Add( "{143F5698-103B-12D4-FF34-1F34767DEabc}" )
        CheckError
        WScript.Echo "New VendorSet added... " & VendorSet.Name

    Else
        WScript.Echo "Existing VendorSet found... value- " &  VendorSet.Value("AllowAskBasicAuthOverNonSecureConnection")
    End If

    if VendorSet.Value("AllowAskBasicAuthOverNonSecureConnection") <> 1 Then

        Err.Clear
        VendorSet.Value("AllowAskBasicAuthOverNonSecureConnection") = 1

        If Err.Number <> 0 Then
            CheckError
        Else
            VendorSets.Save false, true
            CheckError

            If Err.Number = 0 Then
                WScript.Echo "Done, saved!"
            End If
        End If
    Else
        WScript.Echo "Done, no change!"
    End If

End Sub

Sub CheckError()

    If Err.Number <> 0 Then
        WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
        Err.Clear
    End If

End Sub

AddAllowAskBasicAuthOverNonSecureConnection