Active Directory 联合身份验证服务 (AD FS) 使用帐户存储登录用户,并为这些用户提取安全声明。可以为单一联合身份验证服务配置多个帐户存储。还可以定义其优先顺序。联合身份验证服务使用轻型目录访问协议 (LDAP) 与帐户存储进行通信。AD FS 支持下列两种帐户存储:
-
Active Directory 域服务 (AD DS)
-
Active Directory 轻型目录服务 (AD LDS)
AD FS 可以与 AD DS 的企业级部署或 AD LDS 的实例一起使用。与 AD DS 一起使用时,AD FS 可以利用 AD DS 中强大的身份验证技术,包括 Kerberos、X.509 数字证书和智能卡。与 AD LDS 一起使用时,AD FS 将 LDAP 绑定作为对用户进行身份验证的一种方式。
AD DS 帐户存储
AD FS 与 AD DS 紧密集成。AD FS 检索用户属性,并根据 AD DS 对用户进行身份验证。AD FS 还使用 Windows 集成身份验证和 AD DS 创建的安全令牌。
用户要登录到 AD DS,用户名必须使用用户主体名称 (UPN) 格式 (user@adatum.com) 或安全帐户管理器 (SAM) 帐户名格式 (adatum\user)。
访问令牌是用户登录时生成的。它们包含用户的安全标识符 (SID) 和用户所属的任何组。会将访问令牌的一个副本指定给用户启动的每个进程。
用户登录并进行模拟之后,将从访问令牌枚举用户 SID。然后,SID 映射到组织组声明。
小心 | |
在帐户联合身份验证服务中启用 Windows 信任选项时,您会将实际的 SID 通过 Internet 发送给资源伙伴组织,这可能存在安全风险。这些 SID 是在 AD FS 安全声明标记语言 (SAML) 令牌中进行打包的。因此,请仅在使用具有林信任的联合 Web SSO 时启用此选项。此设计的目的是在同一组织内建立安全通信。 |
使用联合身份验证服务帐户执行对象的 LDAP 搜索时,可以从 AD DS 中定义的用户对象属性提取电子邮件声明、公用名声明和自定义声明。
联合身份验证服务帐户必须具有访问该用户对象的权限。如果该用户对象与联合身份验证服务帐户驻留在不同的域中,前一个域必须具有对后一个域的 AD DS 域信任。
无法直接确定任何给定的用户名在 AD DS 中以及 AD DS(直接或间接)信任的所有目录中是否存在。只有登录尝试因为策略限制而失败,AD DS 才会返回权威性失败。策略限制失败的示例如下:
-
帐户已禁用。
-
帐户密码已过期。
-
不允许帐户登录到此计算机。
-
帐户有登录时间限制,不允许在此时登录。
否则,AD DS 帐户存储登录失败始终不具有权威,将尝试下一个优先顺序的帐户存储。有关帐户存储登录失败的详细信息,请参阅AD FS 疑难解答。
AD LDS 帐户存储
AD LDS 为启用目录的应用程序提供数据存储和检索,没有 AD DS 所需的依存关系。AD LDS 提供的许多功能都与 AD DS 相同,但是无需部署域或域控制器。与 AD FS 使用 AD DS 帐户存储信息的方式相似,AD FS 也可以检索用户属性及使用 AD LDS 对用户进行身份验证。
注意 | |
AD FS 不能对帐户名中包含括号的 AD LDS 帐户进行身份验证。用户名中包含左括号的帐户会导致 LDAP 搜索因为用户名生成的 LDAP 筛选器无效而失败。 |
联合身份验证服务帐户获得用于为对象执行 LDAP 搜索的声明。有关详细信息,请参阅了解声明。该过程包含两个步骤:
-
首先,联合身份验证服务帐户通过搜索其已配置属性等于提供的用户名的对象找到该用户对象。联合身份验证服务帐户使用 Kerberos 身份验证或 NTLM 加密来保护此通信。
注意 此过程要求 AD LDS 服务器加入的域信任联合身份验证服务所属的域。
-
然后,通过找到的用户对象和提供的密码的 LDAP 绑定,对用户凭据进行验证。如果为信任策略中的 AD LDS 帐户存储属性配置了传输层安全性和安全套接字层 (TLS/SSL),将保护用户凭据。
重要 强烈建议通过 TLS/SSL 或其他手段 [例如 Internet 协议安全性 (IPSec)] 保护 AD LDS 服务器与联合服务器之间的通信。
如果对提供的用户名的 LDAP 查询返回多个对象,将认为身份验证失败。
如果已配置用户帐户,则首先会在 AD LDS 帐户存储中查找该用户帐户,然后按顺序配置其他 LDAP 存储。如果任何存储找到该用户帐户,则它会进行该用户的权威登录,且不会调用任何其他帐户存储来处理该用户登录请求。
确定用户登录请求的优先顺序
某个用户通过 AD FS 客户端对 AD DS 或 AD LDS 做出登录请求时,该请求会立即传递给指定的帐户存储。但是,如果未指定帐户存储统一资源标识符 (URI),则联合身份验证服务将按照优先顺序尝试使用每个存储登录用户。下列情况将返回身份验证结果:
-
只配置一个存储,并且返回凭据验证信息。
-
登录请求中指定了存储 URI,并且返回凭据验证信息。
-
其中一个存储的身份验证结果具有权威。
-
其中一个存储的身份验证成功。
禁用帐户存储
可以将每个帐户存储标记为已启用或已禁用。如果帐户存储禁用,则不会参与任何与帐户存储有关的操作。其声明源自当前禁用的帐户存储的 Cookie 将被放弃或删除,客户端将被定向到登录页。