快捷搜索:   nginx

NET框架下注意.NET Remoting 安全性


  体系结构
  图 1 显示在 ASP.NET 中驻留远程对象时的基本 .NET Remoting 体系结构。如果主要关心安全性问题,那么建议使用 ASP.NET 主机和 HTTP通道进行通信,因为它允许远程对象利用 ASP.NET和 IIS 提供的基本安全服务。
  
  有关可能使用的主机和通道类型范围的详细信息以及比较信息,请参见本章后面的“选择一个主机进程” 。
   
  
  IIS 中的设置控制所使用的 HTTP 身份验证类型。
  
  通用的 HTTP 标头用于对请求进行身份验证。可通过配置远程对象代理为客户端提供凭据,也可以使用默认凭据。
  
  不能使用表单或 Passport 身份验证,因为通道没有提供允许客户端访问 Cookies 的方法,而这是这两种身份验证机制的一个要求。另外,表单和 Passport 身份验证需要重定向到要求客户端交互的登录页面。远程的服务器端对象可用于非交互式的场合。
  
  • 授权功能。使用标准的 ASP.NET 授权方法对客户端进行授权。
  
  可配置的授权选项包括:
  
  • URL 授权。
  
  • 文件授权(它需要特定的配置。有关说明,请见本章后面的“使用文件授权”)。
  
  编程授权选项包括:
  
  • 用户权限要求(说明性和命令性的)。
  
  • 使用 IPrincipal.IsInRole 进行明确的角色检查。
  
  
  • 安全通信功能。应该使用 SSL(和/或 IPSec)保护客户端和服务器之间数据传输的安全。
  .NET Remoting 网关守卫
  ASP.NET 驻留的远程对象使用的授权点(或者网关守卫)包括:
  
  • IIS。如果关闭了匿名身份验证,则 IIS只允许来自特定用户的请求,即它可以在其自己的域或受信任的域中验证这些用户的身份。 IIS 还提供 IP 地址和 DNS 过滤功能。
  
  • ASP.NET
  
  • UrlAuthorizationModule。可以配置应用程序 Web.config 中的< authorization> 元素,控制哪些用户和用户组可以访问应用程序。授权是以存储在 HttpContext.User 中的 IPrincipal 对象为基础。
  
  • FileAuthorizationModule。FileAuthorizationModule 可用于远程组件,但这需要进行特定的配置。有关说明,请参见本章后面的“使用文件授权”。
  
  注要进行文件授权,并不要求使用模拟功能。
  
  FileAuthorizationModule 类只对请求的文件或 URI(例如,.rem 和 .soap)执行访问检查,而不对在远程对象中通过代码访问的文件执行访问检查。
  
  • 用户权限要求和明确的角色检查。除了使用 IIS 和 ASP.NET 可配置的网关守卫外,还可以将用户权限要求(以说明性方式或命令性方式)用作附加的细分访问控制机制。通过使用用户权限检查,您可以根据各个用户的标识和组成员身份(由附加到当前线程的IPrincipal 对象定义)控制对类、方法或个别代码块的访问。
  
  注用于请求角色成员身份的用户权限检查与调用IPrincipal.IsInRole 来测试角色成员身份不同。如果调用者不是指定角色的成员,则前者会出现异常错误,而后者只返回一个布尔值来确认角色成员身份。
  
  利用 Windows 身份验证,ASP.NET 能自动将一个代表已验证身份用户的WindowsPrincipal 对象连接到当前的 Web 请求(使用 HttpContext.User)。
  
  身份验证
  在结合使用 Remoting 和 ASP.NET Web 应用程序客户端时,就会在 Web 应用程序和远程对象主机上进行身份验证。远程对象主机可以使用的身份验证选项取决于主机类型。
  
  驻留在 ASP.NET 中
  当对象驻留在 ASP.NET 中时,可以使用 HTTP 通道在客户端代理和服务器之间传递方法调用。HTTP 通道使用 HTTP 协议对服务器的远程对象代理进行身份验证。
  
  以下列表说明在 ASP.NET 中驻留对象时可以使用的一组身份验证选项:
  
  • IIS身份验证选项。匿名、基本、摘要、Windows 集成和证书。
  
  • ASP.NET 身份验证选项。Windows 身份验证或无(用于自定义的身份验证实现)。
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论