联合身份验证服务是可以独立于其他 AD FS 角色服务安装的 Active Directory 联合身份验证服务 (AD FS) 的角色服务。联合身份验证服务充当安全令牌服务。在计算机上安装联合身份验证服务角色服务将使该计算机成为联合服务器。还使该计算机上的“管理工具”菜单中可以使用 Active Directory 联合身份验证服务管理单元。有关 AD FS 管理单元的详细信息,请参阅使用 Active Directory 联合身份验证服务管理单元

联合身份验证服务设计用于使用 Active Directory 域服务 (AD DS) 提供令牌来响应对安全令牌的请求。这样,Active Directory 域和林可以充当:

  • 可以与符合标准的帐户伙伴和资源伙伴联合的标识提供方。作为标识提供方,联合身份验证服务可以在 Internet 上规划 Active Directory 身份,以便在符合标准的服务提供方与应用程序进行交互。

  • 可以与符合标准的帐户伙伴和资源伙伴联合的服务提供方。作为服务提供方,联合身份验证服务可以允许其他组织中的身份访问伙伴的基于 Windows 和基于 ASP.NET 的应用程序。

  • 符合 WS 联合身份验证被动请求者配置文件 (WS-F PRP) 规范的应用程序的安全令牌提供方。

作为帐户伙伴,联合身份验证服务允许用户访问伙伴组织的资源。响应资源伙伴的请求时,联合身份验证服务收集用户凭据并根据 AD DS 或 Active Directory 轻型目录服务 (AD LDS) 的一个实例验证这些用户凭据。联合身份验证服务可以根据用户帐户的轻型目录访问协议 (LDAP) 属性填充一组组织声明。然后,组织声明映射到资源伙伴的相应声明并封装到由联合身份验证服务的令牌签名证书签名的安全令牌中。生成的安全令牌作为对资源伙伴的原始请求的响应张贴。然后,资源伙伴使用令牌允许用户的访问。

作为资源伙伴,联合身份验证服务所起的作用相反。用户尝试访问受 AD FS 保护的应用程序时,联合身份验证服务确定应对用户进行身份验证的帐户伙伴。然后将身份验证请求发送到该伙伴。在为用户返回安全令牌时,联合身份验证服务验证该令牌是否已由伙伴正确地签名。然后从令牌中提取声明。声明映射到组织声明,并应用特定应用程序的筛选策略。筛选的组织声明封装到由联合身份验证服务的令牌签名证书签名的或由 Web 应用程序的 Kerberos 会话密钥保护的安全令牌中。生成的安全令牌张贴回原始应用程序的统一资源定位器 (URL)。然后,应用程序使用令牌允许用户的访问。

AD FS 使用 WS-F PRP 协议在由联合身份验证服务颁发给 Web 应用程序的安全令牌中携带声明。有关 WS-F PRP 规范的详细信息,请参阅AD FS 的资源

这些声明最初是从帐户存储(AD DS 或 AD LDS 帐户存储)填充的。联合身份验证服务根据提供的凭据来颁发令牌。帐户存储验证用户的凭据之后,会根据信任策略的规则生成用户的声明。联合身份验证服务将入站声明映射到适合资源伙伴的出站声明中。生成的声明映射添加到颁发给资源伙伴的安全令牌中。有关声明的详细信息,请参阅了解声明

联合身份验证服务验证令牌之后,身份验证 Cookie 将发送到并写入客户端浏览器。每次必须对客户端进行身份验证时,联合身份验证服务都会使用此 Cookie,这样客户端就不必再次输入凭据。这会启用单一登录 (SSO)。有关 Cookie 的详细信息,请参阅了解 AD FS 所使用的 Cookie

联合身份验证服务网页

联合身份验证服务提供一个网页来提示用户选择用户可以进行身份验证的相应帐户伙伴。联合身份验证服务还提供一个网页来提示输入用户凭据,例如基于表单的身份验证的用户名和密码。还提供一个网页来支持 Windows 集成身份验证。

在网页后面,联合身份验证服务提供一项 Microsoft ASP.NET Web 服务来处理客户端或联合服务器代理的请求。联合服务器代理位于外围网络中。该代理充当 Internet 客户端与 intranet 中的联合身份验证服务之间的中介。有关联合服务器代理角色的详细信息,请参阅了解联合身份验证服务代理角色服务

联合身份验证服务响应两种基本的请求类型:

  • 颁发安全令牌的请求

  • 检索信任策略数据的请求

帐户伙伴发现

帐户伙伴发现过程是指如果配置了多个帐户伙伴,用户可以标识在进行身份验证时首选的帐户伙伴。联合服务器以下拉框的形式为客户端浏览器提供此选项,其中包含在信任策略中配置的帐户伙伴名。

若要避开帐户伙伴发现,可以使用的一种机制是在对所访问资源的查询字符串中加入 whr 参数,例如:

https://webserver/testapp/testpage.aspx?whr=urn:federation:<accountpartner>

其中 <accountpartner> 表示客户端的帐户伙伴领域。

使用 whr 参数时,资源联合服务器会删除该参数并将 Cookie 写入客户端浏览器,以便记住此设置,供以后的请求使用。然后,请求像未提供该参数一样进行操作。


目录