ernet Explorer 5.0 或更高版本的客户端以及特定的服务器配置。
• 集成的 Windows 身份验证。集成的 Windows 身份验证(Kerberos 或 NTLM,具体取决于客户端和服务器配置)使用与用户 Internet Explorer Web 浏览器的加密交换来确认用户标识。只有 Internet Explorer 支持这种验证(Netscape Navigator 不支持)。所以,这种验证一般只能在 Intranet 方案中使用,因为您能够控制 Intranet 中所用的客户端软件。如果禁用匿名访问,或拒绝通过 Windows 文件系统权限进行匿名访问,那么这种验证只能由 Web 服务器使用。
• 证书身份验证。证书身份验证使用客户端证书明确地识别用户。客户端证书由用户的浏览器(或客户端应用程序)传递到 Web 服务器。(如果是 Web 服务,则由 Web 服务客户端通过 HttpWebRequest 对象的ClientCertificates 属性来传递证书。)Web 服务器从证书中提取用户标识。该方法依赖用户计算机上安装的客户端证书,所以它一般在 Intranet 或 Extranet 方案中使用,因为您熟悉并能控制 Intranet 和 Extranet 中的用户群。IIS 在收到客户端证书后,可以将证书映射到 Windows 帐户。
• 匿名身份验证。如果不需要对客户端进行身份验证(或者您实现自定义的身份验证方案),则可以配置 IIS 进行匿名身份验证。在这种情况下,Web 服务器创建 Windows 访问令牌来表示使用同一个匿名(或来宾)帐户的所有匿名用户。默认匿名帐户是 IUSR_MACHINENAME,其中 MACHINENAME 是在安装时为计算机指定的 NetBIOS 名称。
• Passport 身份验证。在这种身份验证模式下,ASP.NET使用 Microsoft Passport 的集中式身份验证服务。ASP.NET提供方便的包装对 Microsoft Passport 软件开发工具包 (SDK) 提供的功能进行包装,该 SDK 必须安装在 Web 服务器上。
• 窗体身份验证。此方法使用客户端重定向将没有经过身份验证的用户转发到指定的 HTML 窗体,用户可以在该窗体中输入证书(通常是用户名和密码)。然后,系统对这些证书进行验证,生成身份验证票并将其返回客户端。身份验证票上有用户标识,您还可以选择在身份验证票上列出用户在会话期间所属的角色。
有时,窗体身份验证仅用于 Web 站点的个性化处理。在这种情况下,您几乎不用编写任何自定义代码,因为 ASP.NET用简单的配置自动处理这一过程的大部分工作。在个性化处理方案中,cookie 只需要保留用户名。
注:窗体身份验证以明文形式向 Web 服务器发送用户名和密码。因此,应该将窗体身份验证与 SSL 保护的信道结合使用。为了对后续请求中传输的身份验证 cookie 不间断地提供保护,您应该考虑在应用程序内的所有页上使用 SSL,而不仅仅是在登录页上使用 SSL。
• 无“无”表示不希望对用户进行身份验证,或者使用的是自定义的身份验证协议。
更多信息
有关ASP.NET身份验证的更多详细信息,请参阅“ASP.NET 安全性”。
企业服务身份验证
企业服务身份验证的通过基础的“远程过程调用”(RPC) 传输基础结构来执行的,该基础结构使用操作系统的“安全服务提供程序接口”(SSPI)。可以使用 Kerberos 或 NTLM 身份验证对企业服务应用程序客户端进行身份验证。
可以在库应用程序或服务器应用程序中承载服务组件。库应用程序是在客户端进程内承载的,因此,它们采用客户端的标识。服务器应用程序在单独的服务器进程内运行,它们有自己的标识。有关标识的详细信息,请参阅本章内下文中的“标识和主体”一节。
传入的对服务组件的调用可以在以下级别进行身份验证:
• 默认:使用安全包的默认身份验证级别。
• 无:不执行身份验证。
• 连接:仅在连接时进行身份验证。
• 调用:每次开始远程过程调用时进行身份验证。
• 数据包:鉴定并验证是否已收到所有调用数据。
• 数据包完整性:验证数据在传输过程中是否被修改过。
• 数据包保密性:验证并加密数据包,包括数据和发送者的标识及签名。
更多信息
有关 Enterprise Services 身份验证的详细信息,请参阅“企业服务安全性”。
SQL Server 身份验证
SQL Server 既可以使用 Windows 身份验证(NTLM 或 Kerberos)对用户进行身份验证,也可以使用其内置的身份验证方案(称为 SQL 身份验证)对用户进行身份验证。共有以下两个可用选项:
• SQL Server 和 Windows.客户端可以使用 SQL Server 身份验证或 Windows 身份验证连接到 Microsoft SQL Server 的实例。有时,这也称为混合模式的身份验证。
• 仅使用 Windows。用户必须使用 Windows 身份验证连接到 Microsoft SQL Server 的实例。
更多信息
关于每种方法的优点,请参阅“数据访问安全性”。
授权
Windows 2000上 的 .NET Framework 提供了下列授权选项:
• ASP.NET 授权选项
• Enterprise Services 授权
• SQL Server 授权
ASP.NET 授权选项
ASP.NET授权选项可供 ASP.NET Web 应用程序、Web服务和远程组件使用。 ASP.NET 提供下面的授权选项:
• URL 授权.这是通过计算机配置文件和应用程序配置文件中的设置来配置的授权机制。 URL 授权使您可以限制对应用程序的“统一资源标识符”(URI) 名称空间中的特定文件和文件夹的访问。例如,您可以选择拒绝或允许指定的用户对特定文件或文件夹(通过 URL 寻址)的访问。您
• 集成的 Windows 身份验证。集成的 Windows 身份验证(Kerberos 或 NTLM,具体取决于客户端和服务器配置)使用与用户 Internet Explorer Web 浏览器的加密交换来确认用户标识。只有 Internet Explorer 支持这种验证(Netscape Navigator 不支持)。所以,这种验证一般只能在 Intranet 方案中使用,因为您能够控制 Intranet 中所用的客户端软件。如果禁用匿名访问,或拒绝通过 Windows 文件系统权限进行匿名访问,那么这种验证只能由 Web 服务器使用。
• 证书身份验证。证书身份验证使用客户端证书明确地识别用户。客户端证书由用户的浏览器(或客户端应用程序)传递到 Web 服务器。(如果是 Web 服务,则由 Web 服务客户端通过 HttpWebRequest 对象的ClientCertificates 属性来传递证书。)Web 服务器从证书中提取用户标识。该方法依赖用户计算机上安装的客户端证书,所以它一般在 Intranet 或 Extranet 方案中使用,因为您熟悉并能控制 Intranet 和 Extranet 中的用户群。IIS 在收到客户端证书后,可以将证书映射到 Windows 帐户。
• 匿名身份验证。如果不需要对客户端进行身份验证(或者您实现自定义的身份验证方案),则可以配置 IIS 进行匿名身份验证。在这种情况下,Web 服务器创建 Windows 访问令牌来表示使用同一个匿名(或来宾)帐户的所有匿名用户。默认匿名帐户是 IUSR_MACHINENAME,其中 MACHINENAME 是在安装时为计算机指定的 NetBIOS 名称。
• Passport 身份验证。在这种身份验证模式下,ASP.NET使用 Microsoft Passport 的集中式身份验证服务。ASP.NET提供方便的包装对 Microsoft Passport 软件开发工具包 (SDK) 提供的功能进行包装,该 SDK 必须安装在 Web 服务器上。
• 窗体身份验证。此方法使用客户端重定向将没有经过身份验证的用户转发到指定的 HTML 窗体,用户可以在该窗体中输入证书(通常是用户名和密码)。然后,系统对这些证书进行验证,生成身份验证票并将其返回客户端。身份验证票上有用户标识,您还可以选择在身份验证票上列出用户在会话期间所属的角色。
有时,窗体身份验证仅用于 Web 站点的个性化处理。在这种情况下,您几乎不用编写任何自定义代码,因为 ASP.NET用简单的配置自动处理这一过程的大部分工作。在个性化处理方案中,cookie 只需要保留用户名。
注:窗体身份验证以明文形式向 Web 服务器发送用户名和密码。因此,应该将窗体身份验证与 SSL 保护的信道结合使用。为了对后续请求中传输的身份验证 cookie 不间断地提供保护,您应该考虑在应用程序内的所有页上使用 SSL,而不仅仅是在登录页上使用 SSL。
• 无“无”表示不希望对用户进行身份验证,或者使用的是自定义的身份验证协议。
更多信息
有关ASP.NET身份验证的更多详细信息,请参阅“ASP.NET 安全性”。
企业服务身份验证
企业服务身份验证的通过基础的“远程过程调用”(RPC) 传输基础结构来执行的,该基础结构使用操作系统的“安全服务提供程序接口”(SSPI)。可以使用 Kerberos 或 NTLM 身份验证对企业服务应用程序客户端进行身份验证。
可以在库应用程序或服务器应用程序中承载服务组件。库应用程序是在客户端进程内承载的,因此,它们采用客户端的标识。服务器应用程序在单独的服务器进程内运行,它们有自己的标识。有关标识的详细信息,请参阅本章内下文中的“标识和主体”一节。
传入的对服务组件的调用可以在以下级别进行身份验证:
• 默认:使用安全包的默认身份验证级别。
• 无:不执行身份验证。
• 连接:仅在连接时进行身份验证。
• 调用:每次开始远程过程调用时进行身份验证。
• 数据包:鉴定并验证是否已收到所有调用数据。
• 数据包完整性:验证数据在传输过程中是否被修改过。
• 数据包保密性:验证并加密数据包,包括数据和发送者的标识及签名。
更多信息
有关 Enterprise Services 身份验证的详细信息,请参阅“企业服务安全性”。
SQL Server 身份验证
SQL Server 既可以使用 Windows 身份验证(NTLM 或 Kerberos)对用户进行身份验证,也可以使用其内置的身份验证方案(称为 SQL 身份验证)对用户进行身份验证。共有以下两个可用选项:
• SQL Server 和 Windows.客户端可以使用 SQL Server 身份验证或 Windows 身份验证连接到 Microsoft SQL Server 的实例。有时,这也称为混合模式的身份验证。
• 仅使用 Windows。用户必须使用 Windows 身份验证连接到 Microsoft SQL Server 的实例。
更多信息
关于每种方法的优点,请参阅“数据访问安全性”。
授权
Windows 2000上 的 .NET Framework 提供了下列授权选项:
• ASP.NET 授权选项
• Enterprise Services 授权
• SQL Server 授权
ASP.NET 授权选项
ASP.NET授权选项可供 ASP.NET Web 应用程序、Web服务和远程组件使用。 ASP.NET 提供下面的授权选项:
• URL 授权.这是通过计算机配置文件和应用程序配置文件中的设置来配置的授权机制。 URL 授权使您可以限制对应用程序的“统一资源标识符”(URI) 名称空间中的特定文件和文件夹的访问。例如,您可以选择拒绝或允许指定的用户对特定文件或文件夹(通过 URL 寻址)的访问。您
| 对此文章发表了评论 |

