ASPNET中认证安全特征评述

时间:2022-10-26 09:30:02 来源:网友投稿

下面是小编为大家整理的ASPNET中认证安全特征评述,供大家参考。

ASPNET中认证安全特征评述

ASPNET 中认证安全特征评述 Narcisio Tumushabe ,谭冠正(音译) (中南大学计算机科学与信息技术学院, 湖南长沙410083) 摘 要 要: 讨论了服务应用时支持安全的ASP. NET 认证特征,微软的互联网信息服务( IIS) 与ASP.NET 提供了安全模式,使Web 开发者恰当地认证其使用者,并在应用过程中获得正确的安全之本. 三个层次的认证是基于表单的,身份证书与视窗认证. 综述文献仅限于上述三个领域. 关 键 词 词: 表单; 身份证书; 视窗认证 中图分类号: TP 393108 文献标识码: A 文章编号: 1000 - 1646 (2003) 03 - 0250 - 05 安全是开发人员与应用程序架构师首要关注的问题。由于不一致类型的网站有不一致的安全需要,开发人员需要明白需要什么程度的安全运行,并为他们的程序选择适当的安全模式。有些网站公布的信息不来自用户,而是通过搜索引擎等广泛渠道来收集。另外一些网站,可能要收集用户的敏感信息,比如信用卡号码,这些网站需要非常严格的安全措施,以避免来自外部的恶意攻击。

  1 asp.net 安全的基本操作 在 ASP . NET 应用程序的环境中安全的基本操作涉及三步即验证,授权与模拟。验证的过程中认证用户身份,同意或者拒绝请求。这涉及到同意用户凭据(如用户名与密码)与凭证核对。通过身份验证,合法用户对资源的请求将得到满足。接下来一段时间,用户请求资源无需再进行身份验证,直到用户退出这个 WEB应用程序。授权是给予用户访问特定资源的资格。模拟的过程,是使应用程序确认用户的身份,从而获得要求的其他资源。基于模拟的身份,请求资源将被授予或者者拒绝。

  2 ASP.NET 的验证 验证是 Web 应用程序的安全一个重要的特征。在 ASP.NET 中,验证表现在两个层次上, [2 ] 首先, Internet 信息服务( IIS )将执行必要的验证,然后把用户请求发送到 ASP.NET 中,如图 1 所描述的。ASP.NET 应用程序的 Web 服务器基本是 IIS 。因此,每个 ASP.NET 应用程序能够继续利用 IIS 所提供的的安全 性选项。当用户请求特定资源时,这一要求将发送到 IIS 。

  IIS 验证用户的请求,然后把认证用户发送给 ASP.NET 工作进程。

  ASP.NET 工作进程将决定是否模拟验证 IIS 所提供的用户。假如 Web.config 文件中的模仿配置是启用的, ASP.NET工作进程将模拟验证使用者。否则, ASP.NET 将自行验证用户身份。毕竟, ASP.NET 决定用户是否有权访问这些资源。假如他们被同意,ASP. NET 提 供请求的服务; 否者他将一个“ 拒绝登入”的错误讯息传回给用户。

   图 图 1 IIS 与 与 ASP.NET 的安全流程 ASP.NET 通过几种认证机制提供了内置的用户身份验证, [1.4] 它们是基于表单的身份验证,应用程序使用自定义身份验证模式的 Cookie 支持来确保安全;身份证书,应用程序使用微软的身份证书来身份验证,身份证书是微软开发的一个 Web 单点登录技术,还有视窗验证,Web 应用程序使用从集成视窗身份验证中获得的用户名单来验证用户。

   也有些应用程序不使用身份验证,或者自行开发验证机制。在这种情况下, 能够把 ASP. NET 中身份验证模式设置为关闭。本文将简要地涉及基于表单的,身份证书与视窗认证。

  2.1 基于表单的 认证 基于表单的认证验证是用定制逻辑执行来验证用户,运用了 Cookie 而无需担心 Session 管理。这使开发人员获得更多的权限去指定什么文件在网站上可获取与由何人获取,并能够识别的登录页。

  [3] 这一机制将自动重定向未验证用户到登录页,并请他们提供适当的凭据(比如,用户名/密码组合)。假如登录成功,ASP.NET 分配 cookie 给用户,并重定向到他们原先请求的特定资源。此 Cookie同意用户反复访问特定资源,而不必重新执行登录机制。显示如下:

   图 2 表单认证流程 在上图中,首先用户请求资源。这一请求将先到达 IIS,由 IIS 进行用户身份验证的。假如 IIS 启用匿名访问,或者者用户已成功通过验证,IIS 会将把请求转到 ASP.NET 应用程序。ASP.NET 中查看是否有有效的身份验证 cookie 附加请求中。假如有,它意味着用户先前已通过验证。

  ASP.NET 将执行授权检查。假如用户有访问这些资源的权限,将被同意访问。否则返回登入失败的信息。假如提出的请求没有附带任何 Cookie,ASP.NET 将重定向用户登录页面,并要求用户进行身份验证。应用程序代码检查身份证书。假如身份验证通过,ASP.NET 将以附加验证的形式返回 Cookie。假如失败了,用户能够被重定向到登录页并告诉用户,该用户名/密码无效。

  建立基于表单的 认证 通常来说,建立基于表单的认证涉及4个步骤 [2] :

  (一)启用匿名访问IIS(二)配 置 Web.config 文 件 中 的 <authentication> ( 三 ) 设 定 Web.config 文 件 中 的<authorization>(四)创建登录页。

  问 (一)启用匿名访问 IIS :

  这有许多工作要做,由于大多数的用户被认定为非视窗用户,因此他们通过IIS进入ASP. NET ,ASP.NET将始终同意匿名访问登入页面。

  置 (二)配置 Web.config 文件 中的< authentication > Web.config文件包含了一个Web应用程序的等级与身份验证服务的类型等有关信息。该表单验证通过设置Web应用程序的身份验证模式属性为表单来激活 [3] : 置 (三)配置 Web.config 文件 中的< authorization > 为 ASP. NET Web 应用程序添加授权服务。要做到这一点,添加 Web.config文件中的< authorization >:

   如上面所解释,在用户提供了有效的证书后,用户将被重定向到特定的网页。然而,授权在此代码中将拒绝除“Narcis”外所有用户的访问。

  < configuration > < system. web > < authorization > < allow users = ″ Narcis ″ / > < deny users = ″3 ″ / > < / authorization > < / system. web > < / configuration > < authentication mode = ″ Forms ″ > < forms name = ″ Login ″ loginURL = ″ Login. aspx ″ protection = ″ All ″ timeout = ″ 10 ″ path = ″ / ″ / > < / authentication > (四)创建登录页 这是重定向未经验证用户的最后一步,这样他们就能够提供其身份证书,通常是某种形式的用户名与密码,登录到受保护的资源的授权。在登录页,务必通过对比数据库来验证递交的身份证书。有效的用户名与密码能够存储在 web. config 的凭据(credentials)节:

   然而,以明文形式存储密码是很不安全的。此外,在 Web.config 文件中存储数千个用户名与密码也是不现实的。

  [2 .7] 为解决这个问题,用户名与密码都存储在数据库中,这个办法使Web. config文件不再有< credentials >一节。同时Login. Aspx 页面也由于身份证书需比对用户名与密码存储在数据库中而发生一些改变。

  2.2 身份 证书 如前所述,这个验证机制提供了一个集中的认证服务,可为会员提供特有的访问权。在下列情况下使用身份认证:

  [2] (一)用户名/密码数据库或者登入页不易保护;(二)希望提供个性化的内容;(三)该网站将与其他认证网站结合;(四)希望给用户特有的访问权。

  创建身份证书 为了实施这一身份认证模式,务必在服务器上安装身份证书 SDK (软件开发套件)与注册微软身份证书。

  [1,2] 下面的代码设置 Web. config 文件的身份认证模式(authentication)设置为身份证书:

   < authentication mode = ″ Passport ″ > < passport redirectURL = ″ internal ″/ > < / authentication > < credentials passwordFormat = ″ Clear ″ > < user name = ″ Narcis ″ password = ″ nar ″ > < user name = ″ Marion ″ password = ″mar ″ > < user name = ″ Lauren ″ password = ″ lau ″ > < / credentials > 该身份证书的重导向地址(RedirectURL)属性设置为内部(internal),这意味着未经验证的请求能够得到相同的错误信息。redirectURL 的属性还能够是除internal 外的其他字符串,通常是 URL,用来重定位未经验证的请求。

  2.3 视窗认证 这种类型的身份认证可能是最简单的一种。视窗认证可与IIS提供的除匿名身份验证外的几乎所有的验证方法结合(如基本,摘要式,NTLM或者Kerberos身份验证),[2,4] 这里无需写任何代码来验证用户的IIS已经验证自己的Windows凭据。基本上,视窗认证使用IIS的身份验证功能。IIS将先完成它的验证功能,然后由ASP.NET决定是否给予授权或者拒绝服务。

  这种机制通常是在用户是Windows域与通过身份验证的用户时使用,代码执行在安全性与用户的Windows帐户相同的环境中。[4]当用户请求具体的资源,这一要求将前往IIS。IIS中对用户进行身份验证与发放安全令牌给它。然后,将通过认证的要求与安全令牌转发给ASP.NET中。假如模拟启用, ASP.NET模拟用户使用安全令牌重视,并在Web.config文件的“授权< authorization >”一节中的查看使用者是否被授权访问的资源。假如获得批准, ASP.NET将通过IIS发送用户所要求的资源,否则,它发出的错误讯息给使用者。

  设置 视窗认证 视窗认证的唯一的步骤是在 Web.config 文件中设置身份验证模式为Windows 与拒绝存取匿名用户,如下所示:

   模拟只有在代码是在相同的安全环境中的用户帐户才能启用。同样,这也要在做配置文件中完成。

  2.4 结束语 ASP.NET 安全认证是 Web 应用程序安全的最要紧特征之一。它分为三个不一致的内置服务:基于表单的,身份认证与视窗认证。基于表单的认证与身份认< authentication mode = ″ Windows ″ > ⋯⋯ < / authentication > < authorization > < deny users = ″ ? ″ / > < / authorization > 证不要求用户为 Windows 用户。在视窗认证是为 Windows 域用户设计的。基于表单的认证提供了未经认证的用户登录页面,要求他们提供凭据,并将对这些证书进行验证。假如用户无权访问特定的资源,它将把拒绝存取信息返回到用户。在身份认证中,身份的 SDK 只是在服务器上安装与注册微软身份证书,提供了一个由 Microsoft 提供登入凭证的访问会员网站的简单的机制。视窗是最方便使用的,由于它不需要写任何代码进行验证。

  参考文献: [1] Bell ,J . , et al ,2001 ,ASP. NET Programmer’s Reference ,Wrox Press Ltd. ,USA. [2] Chilakala ,V. ,2001 ,Microsoft ASP. NET Security ,Microsoft Support WebCasts. [3] Gonzales ,J . ,2002 ,15 Seconds : Using Forms Authentication in ASP. NET Part 1 [4] Kercher ,J . ,2001 ,Authentication in ASP. NET : . NET, Security Guidance ,MSDN Magazine August 2001. [5] Lassan ,R. ,Smith , E. ,2002 ,ASP. NET Bible ,Hungry ,Minds Inc. ,USA. [6] Leinecker , R. , 2002 ,Using ASP. NET ,Que Corporation , Indiana. [7] NET Framework Developer’s Guide : ASP. NET Web.Application Security ,Link. [8] Kieley ,J . ,2001 ,Migrating to ASP. NET : Key Consid2eration ,MSDN Magazine November 2001. An overview of authentication security features in ASP. NET Narcisio Tumushabe , TAN Guan-zheng (School of Computer Science and Information Technology , Central South University , Changsha 410083 , China) Abstract : This article discusses the authentication feature of the ASP. NET to support security when designing a server application. Both Microsoft Internet Information Services ( IIS) and ASP. NET provide security models that will allow web developers to authenticate the your users appropriately and obtain the correct security context within the application. Three levels of authentication covered are the Formsbased , passport and windows authentications. The article literature is limited to these three areas. Key words : Forms2based; passport ; windows authentication CLC number : TP 393 1 08 Document code : A Article ID : 1000 - 1646 (2003) 03 - 0250 - 05 Security is one of the primary concerns forboth developers and application architect s. As there are lot s of different types of websites with varying security needs , the developers need to know how the security works and choose the appropriate security model for their applications. Some websites collect no information from the users and publish the information that is available widely such as search engine. There are other sites that may need to collect sensitive information f rom their users like credit card numbers. These websites need muchst ronger security implementation to avoid malicious attacks f rom external entities. 1 Fundamental Operations of ASP. NET Security Security in the context of ASP. NET application involves 3 fundamental operations namely Authentication , Authorization and Impersonation. Authentication is the process of validating the identity of a user to allow or deny a request .This involves accepting credentials ( e. g. username and password) from the users and validating it against ad...

推荐访问:标签 评述 特征