本文提供了一个解决方案,用于解决尝试使用 Microsoft Internet 安全性和加速 (ISA) Server 2004 Service Pack 2 (SP2)连接到发布的网站时发生的错误。
适用于: Windows Server 2003
原始 KB 数: 912122
重要
本文包含的信息介绍了如何帮助降低安全设置或如何关闭计算机上的安全功能。 可以进行这些更改来解决特定问题。 在进行这些更改之前,建议评估在特定环境中实现此解决方法相关的风险。 如果实现此解决方法,请采取任何适当的其他步骤来帮助保护系统。
现象
尝试使用 Microsoft Internet 安全和加速 (ISA) Server 2004 Service Pack 2 (SP2) 连接到发布的网站时,会收到错误消息。 如果 ISA 服务器 Web 侦听器已启用基本身份验证,则会收到以下错误消息:
错误代码:403 禁止访问。
必须通过安全通道(安全套接字层(SSL)查看页面。 请联系服务器管理员。 (12211)
如果 ISA 服务器 Web 侦听器已启用 RADIUS 身份验证或Microsoft启用了基于 Outlook Web Access Forms 的身份验证(Cookie-auth),则会收到以下错误消息:
错误代码:500 内部服务器错误。
发生内部错误。 (1359)
原因
如果满足以下所有条件,则会出现此问题:
ISA Server 2004 Web 侦听器已启用以下任一身份验证方法:
- 基本
- RADIUS
- Outlook Web Access Forms-Based
ISA Server 2004 Web 侦听器配置为侦听 HTTP 流量。
对于 Web 侦听器或 Web 发布规则,已选中“要求所有用户进行身份验证”复选框,该复选框适用于默认的所有用户集以外的用户集。
使用 HTTP 而不是使用 HTTPS 连接到已发布的网站。
发生此问题的原因是 ISA Server 2004 SP2 中包含的安全修改。 使用 HTTP 到 HTTP 桥接时,如果 Web 侦听器配置为请求以下一种或多种凭据,ISA Server 2004 SP2 不会在外部 HTTP 端口上启用流量:
- 基本
- RADIUS
- Outlook Web Access Forms-Based
发生此行为的原因是应加密这些类型的凭据。 不应通过 HTTP 以明文形式发送这些凭据。
对于早于 ISA Server 2004 SP2 的 ISA Server 2004 版本,系统会提示你以明文形式输入凭据。 如果尚未实现某种其他类型的网络安全,例如外部安全套接字层(SSL)加速器或加密隧道,则此行为可能会导致凭据以明文形式通过网络传输。 ISA 服务器不提供这些形式的安全性。
ISA Server 2004 SP2 可防止以明文形式输入凭据。 尝试执行此操作时,会收到错误消息。
解决方法
警告
此解决方法可能会使计算机或网络更容易受到恶意用户或恶意软件(如病毒)的攻击。 我们不建议使用此解决方法,而是提供此信息,以便你可以自行实施此解决方法。 如果使用此解决方法,需自行承担风险。
若要解决此问题,请将 ISA Server 2004 SP2 配置为与早期版本的 ISA Server 2004 类似。
为此,请在要更改配置的 ISA Server 2004 上运行以下脚本。 该脚本在 ISA Server 2004 数组根目录下设置的新供应商参数中设置名为 AllowAskBasicAuthOverNonSecureConnection 的值。
Microsoft 提供的编程示例仅用于进行说明,而不提供明示或默示担保。 这包括但不限于适销性或对特定用途的适用性的默示担保。 本文假设您熟悉正在演示的编程语言和用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能,但他们不会修改这些示例以提供新增功能或构建步骤以满足你的特定需要。
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' 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