Windows 身份验证概念
此参考概述主题介绍 Windows 身份验证所基于的概念。
身份验证是验证对象或人员身份的过程。 当你对某个对象进行身份验证时,目的就在于验证该对象是否为正版。 对某人进行身份验证时,目的是验证此人是否不是冒名顶替者。
在网络环境中,身份验证是指证明网络应用程序或资源的身份的动作。 通常身份是由使用只有用户知道的密钥(如公钥加密)或共享密钥的加密操作来证明的。 身份验证交换的服务器端会将签名数据和已知的加密密钥相比较来验证身份验证尝试。
将加密密钥存储在安全的中心位置中可以确保身份验证过程可伸缩且可维护。 Active Directory 是用于存储身份信息(包括属于用户的凭据的加密密钥)的推荐和默认技术。 Active Directory 是默认 NTLM 和 Kerberos 实现所必需的。
身份验证技术的范围涉及简单的操作系统登录,或者服务或应用程序登录,此技术基于只有用户知道的内容(如密码)来标识用户,以及更强大的安全机制,此技术使用用户拥有的内容(例如令牌、公钥证书、图片或生物属性)进行标识。 在企业环境中,用户可访问单独一个位置或多个位置中多种服务器类型上的多个应用程序。 鉴于这些原因,身份验证必须支持其他平台和其他 Windows 操作系统的环境。
身份验证和授权:旅行类比
可以通过旅行类比来解释身份验证的工作原理。 开始旅程通常需要完成一些准备工作。 旅行者必须向东道主当局证明其真实身份。 此证明可以采用国籍证明、出生地、个人凭证、照片或任何东道国法律要求的形式。 旅行者的身份通过发放护照进行验证,这类似于由组织(安全主体)颁发和管理的系统帐户。 护照和预定目的地以政府当局颁布的一套规则和条例为基础。
旅程
当旅行者到达国际边境时,边防警卫会要求提供凭据,旅行者出示其护照。 此过程包含两方面:
警卫通过验证护照是否由当地政府信任(至少信任签发护照)的安全机构签发以及护照是否未被修改,对护照进行身份验证。
警卫通过验证人脸是否与护照上的照片匹配,以及其他所需凭据是否完好无损,对旅行者进行身份验证。
如果护照证明有效,并且旅行者证明是其所有者,则身份验证成功,旅行者可以进入边境。
身份验证的基础是安全机构之间的可传递信任;在国际边界进行的身份验证类型基于信任。 当地政府不认识旅行者,但它相信东道国政府认识。 当东道国政府颁发护照时,它也不认识旅行者。 它只是信任颁发出生证明或其他文件的机构。 颁发出生证明的机构反过来又信任签署证书的医生。 医生见证了旅行者的出生,并在证明上盖有直接身份证明的盖章,在本例中为新生儿的脚印。 通过受信任的中介以这种方式传输的信任是可传递的。
可传递信任是 Windows 客户端/服务器体系结构中网络安全的基础。 信任关系在一组域(如域树)中传递,并在域与信任该域的所有域之间形成一种关系。 例如,如果域 A 与域 B 具有可传递信任关系,并且域 B 信任域 C,则域 A 信任域 C。
身份验证和授权之间存在差异。 通过身份验证,系统会证明你就是你所说的你。 通过授权,系统会验证你是否有权执行想要执行的操作。 要在下一步进行边境类比,只需证明旅行者是有效护照的适当所有者,而并不一定需要授权旅行者进入一个国家/地区。 只有在进入的国家/地区授予该特定国家/地区的所有公民进入的无限权限的情况下,特定国家/地区的居民才可以通过简单地出示护照进入另一个国家/地区。
同样,你可以向来自特定域的所有用户授予访问资源的权限。 属于该域的任何用户都有权访问资源,就像加拿大允许美国公民进入加拿大一样。 然而,试图进入巴西或印度的美国公民发现,他们不能仅凭出示护照就进入这些国家,因为这两个国家都要求来访的美国公民持有有效的签证。 因此,身份验证不一定能保证对资源的访问或对使用资源的授权。
凭据
注意
当用户执行本地登录时,他们的凭据在通过网络向标识提供者进行身份验证之前之前,会在本地根据缓存副本进行验证。 如果缓存验证成功,即使设备处于脱机状态,用户也可以访问桌面。 但是,如果用户在云中更改了其密码,则缓存验证程序不会更新,这意味着他们仍然可以使用旧密码访问本地计算机。
护照和可能相关的签证对于旅行者而言是可接受的凭据。 但这些凭据可能并不一定能让旅行者进入或访问一个国家/地区中的所有资源。 例如,参加会议需要其他凭据。 在 Windows 中,可以管理凭据,使帐户持有者能够通过网络访问资源,而无需重复提供其凭据。 这种类型的访问使用户能够通过系统进行一次性验证,以访问他们被授权使用的所有应用程序和数据源,而无需输入另一个帐户标识符或密码。 Windows 平台可通过在操作系统的本地安全机构 (LSA) 中本地缓存用户凭据,来利用跨网络使用单个用户身份(由 Active Directory 维护)的能力。 当用户登录到域时,Windows 身份验证包以透明方式使用凭据在对网络资源进行身份验证时提供单一登录。 有关凭据的详细信息,请参阅 Windows 身份验证中的凭据处理。
旅行者的多重身份验证形式可能是要求携带和出示多个文件来验证其身份,例如护照和会议注册信息。 Windows 可通过智能卡、虚拟智能卡和生物识别技术实现这种形式或身份验证。
安全主体和帐户
在 Windows 中,任何可以启动操作的用户、服务、组或计算机都是安全主体。 安全主体具有帐户,这些帐户可以是计算机的本地帐户或基于域的帐户。 例如,已加入域的 Windows 客户端计算机可以通过与域控制器通信来参与网络域,即使没有用户登录也是如此。 若要启动通信,计算机必须在域中具有活动帐户。 在接受来自计算机的通信之前,域控制器上的本地安全机构对计算机的标识进行身份验证,然后定义计算机的安全上下文,就像对用户的安全主体一样。 此安全上下文定义特定计算机上的用户或服务,或者网络上的用户、服务、组或计算机的标识和功能。 例如,安全上下文定义了可以访问的资源(如文件共享或打印机),以及用户、服务或计算机可以对该资源执行的操作(如读取、写入或修改)。 有关详细信息,请参阅安全主体。
帐户是一种是一种识别请求者(用户或服务)请求访问或资源的方法。 持有真实护照的旅行者在东道国拥有帐户。 用户、用户组、对象和服务都可以具有单个帐户或共享帐户。 帐户可以是组的成员,可以分配有特定的权利和权限。 可以将帐户限制为本地计算机、工作组、网络,或被分配到域的成员身份。
内置帐户和属于其成员的安全组在每个 Windows 版本上都有定义。 通过使用安全组,可以将相同的安全权限分配给许多成功通过身份验证的用户,从而简化访问管理。 根据签发护照的规定,可能需要将旅行者分配到某些组,如商务、旅游或政府。 此过程可确保跨组的所有成员拥有一致的安全权限。 使用安全组分配权限意味着资源的访问控制保持不变,并且易于管理和审核。 通过根据需要从相应的安全组添加和删除需要访问权限的用户,可以将访问控制列表 (ACL) 更改的频率降至最低。
Windows Server 2008 R2 和 Windows 7 中引入了独立的托管服务帐户和虚拟帐户,以提供必要的应用程序(例如 Microsoft Exchange Server 和 Internet Information Services (IIS) ),并隔离其自己的域帐户,同时无需管理员手动管理这些帐户的服务主体名称 (SPN) 和凭据。 Windows Server 2012 中引入的组托管服务帐户在域中提供同样的功能,但也通过多个服务器对功能进行了扩展。 连接到服务器场上托管的服务时,如网络负载平衡,支持相互身份验证的身份验证协议要求服务的所有实例都使用同一主体。
有关帐户的详细信息,请参阅:
委托身份验证
使用旅行类比时,各国/地区可以向官方政府代表团的所有成员提供相同的访问权,只要代表为人熟知。 此委派允许一个成员处理另一个成员的授权。 在 Windows 中,当网络服务接受来自用户的身份验证请求并假定该用户的身份以启动与第二个网络服务的新连接时,将进行委派身份验证。 若要支持委派身份验证,必须建立负责处理客户端身份验证请求的前端或第一层服务器(如 Web 服务器)以及负责存储信息的后端或第 n 层服务器(如大型数据库)。 你可以将设置委派身份验证的权利委托给组织中的用户,以减轻管理员的管理负担。
通过将服务或计算机设置为受信任的委派,可让该服务或计算机完成委派身份验证,接收发出请求的用户的票证,然后访问该用户的信息。 此模型仅将后端服务器上的数据访问限制为提供具有正确访问控制令牌的凭据的用户或服务。 此外,它还允许访问这些后端资源的审核。 通过要求凭借委托给服务器以代表客户端使用的凭据访问所有数据,可以确保服务器不会被泄露,并且可以访问存储在其他服务器上的敏感信息。 委派身份验证对于设计为跨多台计算机使用单一登录功能的多层应用程序非常有用。
域之间的信任关系中的身份验证
大多数拥有多个域的组织都有合法的需求,让用户可以访问位于不同域中的共享资源,就像允许旅行者去国内不同地区旅行一样。 若要控制此访问权限,还需要对一个域中的用户进行身份验证,并授权其使用另一个域中的资源。 若要在不同域中的客户端与服务器之间提供这些身份验证和授权功能,两个域之间必须存在信任。 信任是进行安全的 Active Directory 通信的基础技术,是 Windows Server 网络体系结构中不可或缺的安全组件。
两个域之间存在信任时,每个域的身份验证机制都信任来自其他域的身份验证。 信任通过验证传入的身份验证请求是否来自受信任的机构(受信任的域),来帮助提供对资源域(信任域)中共享资源的受控访问。 通过这种方式,信任可以充当桥梁,仅允许经过验证的身份验证请求在域之间传输。
特定信任传递身份验证请求的方式取决于其配置方式。 信任关系可以是单向的,即提供从受信域到信任域中资源的访问,也可以是双向的,即提供从每个域到另一个域中资源的访问。 信任也可以是非传递性的,在这种情况下,信任仅存在与两个信任合作伙伴域之间,或者是可传递的,在这种情况下,信任会自动扩展到任一合作伙伴信任的任何其他域。
有关信任工作原理的信息,请参阅域和林信任的工作原理。
协议转换
协议转换通过让应用程序在用户身份验证层支持不同的身份验证机制,并通过在后续应用程序层中切换到 Kerberos 协议来提供安全功能(例如相互身份验证和约束委派),从而为应用程序设计人员提供帮助。
有关协议转换的详细信息,请参阅 Kerberos 协议转换和约束委派。
约束委派
约束委派让管理员能够通过限制应用程序服务可以代表用户的范围来指定和加强应用程序信任边界。 可以指定受信任的委派计算机可从中请求资源的特定服务。 限制服务的授权权限的灵活性通过减少不受信任的服务危害的机会来改进应用程序安全设计。
有关约束委派的详细信息,请参阅 Kerberos 约束委派概述。