IIS服务中五种身份验证

转载:http://os.51cto.com/art/201005/202380.htm

作为微软最经典的Web服务之一的IIS服务有大致上五种Web身份认证方法。身份认证时保障IIS服务安全的根本,所以熟练并且灵活的掌握IIS服务身份认证方法是十分重要的。

【51CTO独家特稿】微软IIS服务是一项经典的Web服务,可以为广大用户提供信息发布和资源共享功能。身份认证是保证IIS服务安全的基础机制,IIS支持以下5种 Web 身份认证方法:

推荐专题:IIS服务“讲武堂”

一、匿名身份认证

如果启用了匿名访问,访问站点时,不要求提供经过身份认证的用户凭据。当需要让大家公开访问那些没有安全要求的信息时,使用此选项最合适。IIS 创建 IUSR_ComputerName 帐户(其中 ComputerName 是正在运行 IIS服务器的名称),用来在匿名用户请求 Web 内容时对他们进行身份认证。此帐户授予用户本地登录权限。用户可以将匿名用户访问重置为使用任何有效的 Windows 帐户。用户可以为不同的网站、虚拟目录、物理目录和文件建立不同的匿名帐户。如果基于 Windows Server 2003 的计算机是独立服务器,则 IUSR_ComputerName 帐户位于本地服务器上。如果该服务器是域控制器,则 IUSR_ComputerName 帐户是针对该域定义的。

二、基本身份认证(Basic)

使用基本身份认证可限制对 NTFS 格式的 Web 服务器上文件的访问。使用基本身份认证,用户必须输入凭据,而且访问是基于用户 ID 的。用户 ID 和密码都以明文形式在网络间进行发送。要使用基本身份认证,请授予每个用户进行本地登录的权限,为了使管理更加容易,请将每个用户都添加到可以访问所需文件的组中。因为用户凭据是使用 Base64 编码技术编码的,但它们在通过网络传输时不经过加密,所以基本身份认证被认为是一种不安全的身份认证方式。

三、Windows 集成身份认证

Windows 集成身份认证比基本身份认证安全,而且在用户具有 Windows 域帐户的内部网环境中能很好地发挥作用。在集成 Windows 身份认证中,浏览器尝试使用当前用户在域登录过程中使用的凭据,如果此尝试失败,就会提示该用户输入用户名和密码。如果用户使用集成 Windows 身份认证,则用户的密码将不传送到服务器。如果用户作为域用户登录到本地计算机,则此用户在访问该域中的网络计算机时不必再次进行身份认证。集成身份认证以前称为 NTLM 或 Windows NT 质询/响应身份认证,此方法以 Kerberos 票证的形式通过网络向用户发送身份认证信息,并提供较高的安全级别。Windows 集成身份认证使用 Kerberos 版本 5 和 NTLM 身份认证。注意:如果选择了多个身份认证选项,IIS服务 会首先尝试协商最安全的方法,然后它按可用身份认证协议的列表向下逐个试用其他协议,直到找到客户端和服务器都支持的某种共有的身份认证协议。

四、摘要式身份认证

摘要式身份认证需要用户 ID 和密码,可提供中等的安全级别,如果用户要允许从公共网络访问安全信息,则可以使用这种方法。这种方法与基本身份认证提供的功能相同。摘要式身份认证克服了基本身份认证的许多缺点。在使用摘要式身份认证时,密码不是以明文形式发送的。另外,用户可以通过代理服务器使用摘要式身份认证。摘要式身份认证使用一种质询/响应机制(集成 Windows 身份认证使用的机制),其中的密码是以加密形式发送的。

要使用摘要式身份认证,必须满足下述要求:

用户和 IIS 服务器必须是同一个域的成员或被同一个域信任。

用户必须有一个存储在域控制器上 Active Directory 中的有效 Windows 用户帐户。

该域必须使用 Microsoft Windows 2000 或更高版本的域控制器。

必须将 IISSuba.dll 文件安装到域控制器上。此文件会在 Windows 2000 或 Windows Server 2003 的安装过程中自动复制。

必须将所有用户帐户配置为选择“使用可逆的加密保存密码”帐户选项。要选择此帐户选项,必须重置或重新输入密码。

五、Microsoft .NET Passport 身份认证

.NET Passport 身份认证提供了单一登录安全性,为用户提供对 Internet 上各种服务的访问权限。如果选择此选项,对 IIS服务 的请求必须在查询字符串或 Cookie 中包含有效的 .NET Passport 凭据。如果 IIS服务 不检测 .NET Passport 凭据,请求就会被重定向到 .NET Passport 登录页。并且,如果选择此选项,所有其他身份认证方法都将不可用。

时间: 2024-08-03 22:33:31

IIS服务中五种身份验证的相关文章

php中五种常见的设计模式

设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides Design(俗称 “四人帮”).所介绍的设计模式背后的核心概念非常简单.经过多年的软件开发实践,Gamma 等人发现了某些具有固定设计的模式,就像建筑师设计房子和建筑物一样,可以为浴室的位置或厨房的构造方式开发模板.使用这些模板或者说设计模式 意味着可以更快地设计更好的建筑物.同样的概念也适用于软件. 设计模式不仅代表着更快开发健壮

window10家庭版解决IIS中万维网服务的安全性中无Windows身份验证

首先在左下角输入cmd搜索->命令提示符->以管理员身份运行->然后复制下面一段命令: dism /online /norestart /add-package:%SystemRoot%\servicing\Packages\Microsoft-Windows-IIS-WebServer-AddOn-2-Package~31bf3856ad364e35~amd64~~10.0.16299.15.mum 然后回车. 注意:如果显示下面的问题: 尝试打开时出错 - C:\Windows\se

ASP.NET 中通过Form身份验证 来模拟Windows 域服务身份验证的方法

This step-by-step article demonstrates how an ASP.NET   application can use Forms authentication to permit users to authenticate   against the Active Directory by using the Lightweight Directory Access Protocol   (LDAP). After the user is authenticat

asp.net core中使用cookie身份验证

配置 在 Startup.ConfigureServices 方法中,创建具有 AddAuthentication 和 AddCookie 方法的身份验证中间件服务: services.AddAuthentication(Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => { // Cookie settings o

Linux中五种常见的I/O模型

一般来说,程序进行输入操作有两步:等.搬迁 . 在Linux下,共有五种I/O模型,下面就逐一介绍: 1>.阻塞I/O(使用比较广) 应用程序调用一个I/O函数,如果数据木有准备好,就会导致应用程序阻塞,直到数据准备好了,从内核拷贝到用户空间(进程的缓存),I/O函数返回成功. 如一个进程调用recvform,然后系统调用并不返回直到有数据包到达本地系统,然后完成数据拷贝. 2>.非阻塞I/O(极浪费CPU资源,不常使用) 我们把一个套接口设置为非阻塞,就是告诉内核,当请求的I/O操作无法完成

RFC7619 -- IKEv2中的NULL身份验证方法

摘要 本文为IKEv2指定NULL身份验证方法和ID_NULL标识有效负载ID类型.这允许两个IKE对等体建立单侧认证或相互不认证的IKE会话. 适用于那些对等方不愿意或无法进行自身身份验证或识别的情形.这可确保IKEv2可用于机会安全(也称为机会加密),以抵御普遍监控攻击,而无需牺牲匿名性???. 1. 简介 虽然对等方使用的身份验证方法可能不同,但是没有方法可以让一方或双方保持未经身份验证和匿名. 本文档扩展了身份验证方法,以支持未经身份验证的匿名IKE会话. 在某些情况下,相互认证是不需要

ASP.NET中的Forms身份验证模式

Forms身份验证:通过应用程序设置的登录界面进行用户身份验证,若验证成功则调转到验证之前请求的url. 原理图: 原文地址:https://www.cnblogs.com/JDotNet/p/3451263.html

IIS Web站点配置Windows身份验证

今天在IIS中配置web站点的,使用Windows身份认证,怎么设置也不起作用,默认配置文件是这样的: <authentication mode="Windows" /> 但是我们还必须加上禁止匿名用户登录,才能实现Windows身份认证登陆功能,正确的配置应该是这样的: <authentication mode="Windows" /> <authorization>   <deny users="?"

C++ 中 五种基本的内存分配方式

栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量.函数参数等.在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用.和堆一样,用户栈在程序执行期间可以动态地扩展和收缩. 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete.如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收.堆可以动态地扩展和收缩. 自由存储区,就是那些由 malloc