IIS身份验证

Web身份验证工作原理

web身份验证用于web浏览器和web服务器之间的通信,通信流程如下所示:

1、Web浏览器向Web服务器发起请求

2、Web服务器执行身份验证检查。如果身份验证不成功服务器会返回与以下类似的错误信息

  • 您没有权限查看此网页
  • 您无权使用您提供的凭据查看此目录或页,Web浏览器可使用此消息中提供的信息,将该请求作为身份验证的请求重新提交

3、Web浏览器使用服务器的响应来构建包含身份验证信息的新请求

4、Web服务器执行身份验证检查。如果检查成功,Web服务器将最初请求的数据发回Web

浏览器

身份验证方法

1、匿名身份验证

匿名身份验证使用户无需输入用户名或密码便可以访问Web或FTP站点的公共区域。当用户试图连接到公共网站或FTP站点时,Web服务器将连接分配给Windows用户账户IUSR_computername(此处 computername 是运行 IIS 所在的计算机的名称,默认情况下,IUSR_computername 帐户包含在 Windows 用户组 Guests 中)

IUSR_computername账户

1)在安装过程中,将 IUSR_computername 帐户添加到运行 IIS 的计算机上的 Guests 组中。

2)在收到请求时,IIS 在运行任何代码之前先模拟 IUSR_computername 帐户。IIS 可以模拟 IUSR_computername 帐户,因为 IIS 知道该帐户的用户名和密码。

3)在将页面返回到客户端之前,IIS 检查 NTFS 文件和目录权限,查看是否允许 IUSR_computername 帐户访问该文件。

4)如果允许访问,则访问进程(也称为“授权”)完成并给用户提供这些资源。

5)如果不允许访问,IIS 将尝试使用其他验证方法。如果没有作出任何选择,IIS 则向浏览器返回“HTTP 403 访问被拒绝”错误消息。

注意

如果启用了匿名验证,则 IIS 始终尝试先使用匿名验证对用户进行验证,即使启用了其他验证方法,也是如此。可以在 Web 服务器的服务级别或单独虚拟目录和文件级别更改用于 IIS 管理器中匿名验证的帐户。

2、基本身份验证

基本身份验证通过收集用户名和密码等信息进行身份验证

验证过程

1)Internet Explorer Web浏览器显示一个对话框,以使用户输入先前分配的Windows账户用户名和密码(凭据)

2)Web浏览器试图使用用户凭据与服务器建立连接,在通过网络放送明文密码之前该密码采用Base64编码

3)如果用户凭据被拒绝,则Internet Explorer显示一个身份验证对话框以重新输入用户凭据。Internet Explore允许用户进行三次连接尝试,之后连接就会失败并对用户报告错误

4)如果Web服务器证实用户名和密码与有效Microsoft Windows用户账户相符,则建立连接

优点

基本身份验证的优点在于,它是HTTP规范的一部分,并且大多数浏览器均支持该验证

缺点

Web浏览器使用基本身份验证是以未加密的形式传输密码的,通过监视网络上的通信,攻击者或恶意用户可以使用常见工具很容易的截取和解密这些密码。因此,不建议使用基本身份验证,除非确信用户和Web服务器之间的连接是安全的,如专线或安全套接字层(SSL)连接

3、摘要式身份验证

摘要式身份验证提供与基本身份验证相同的功能。但是,摘要式身份验证在通过网络发送用户凭据方面提高了安全性,摘要式身份验证将凭据作为MD5哈希或消息摘要在网络上传送(无法从哈希中解密原始的用户名和密码)

摘要式身份验证的要求

在IIS服务器上启用摘要式身份验证之前,必须满足以下最低要求,只有域管理员才能验证是否打到域控制器要求。如果不知道域控制器是否达到以下要求,请与域管理员联系。

1)所有访问使用摘要式身份验证保护的资源的客户端使用Internet Explorer 5或更高版本

2)用户和运行IIS的服务器必须是同一域的成员,或者由同一域信任

3)用户必须将有效的Windows用户账户存储在域控制器的Activity Directory中

4)域必须拥有运行Windows 2000或更高版本的域控制器

5)运行IIS的计算机必须安装了Windows 2000或更高版本

4、.NET Passport身份验证

Microsoft  .NET Passport是一种用户身份验证服务,站点用户可使用该服务创建单次登录名和密码,从而方便地访问所有启用.NET Passport的网站和服务。启用.NET Passport的站点依靠.NET Passport中央服务器来验证用户,而不是主持和维护它们自己的专用身份验证系统。但是.NET Passport中央服务器并不授权或拒绝特定用户访问单个启用.NET Passport的站点,而是由网站来控制用户权限。

.NET Passport也可以将用户信息存储在.NET Passport服务器上的加密配置文件(也称为“注册”)中。当.NET Passport用户注册参与站点时,就会与该站点共享个人信息以加快注册过程,当.NET Passport用户再次登录到该站点时,其.NET Passport配置文件可允许访问该站点上的个人账户或服务。

.NET Passport单次登录服务与当前Web上基于表单的常用身份验证模型类似。.NET Passport网络拓展了这种模型以用于一组分布式的站点,同时有助于保留成员的保密性和安全性以及适当自定义和署名登录的功能。

5、客户证书验证

客户证书映射是一种在证书和用户账户之间创建映射的方式。在此模型中,用户提供一个证书,系统检查此映射以确定应登录到哪个用户账户。

映射方式

1)使用Active Directory的客户端证书映射身份验证。此身份验证方法要求 IIS 7 服务器是 Active Directory 域的成员,并且用户帐户存储在 Active Directory 中。 由于到 Active Directory 服务器的往返,这种客户端证书身份验证方法降低了性能。

2)IIS客户端证书映射身份验证。此身份验证方法不需要 Active Directory,因此适用于独立服务器。 此客户端证书身份验证方法提高了性能,但需要更多的配置,并且需要访问客户端证书才能创建映射。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值