手动配置联合服务器场的服务帐户

如果你想要在 Active Directory 联合身份验证服务 (AD FS) 中配置联合服务器场环境,则必须在该服务器场将驻留的 Active Directory 域服务 (AD DS) 中创建和配置专用服务帐户。 然后配置服务器场中的每个联合服务器以使用此帐户。 当你想要允许企业网络上的客户端计算机使用 Windows 集成身份验证对 AD FS 场中的任一联合服务器进行身份验证时,必须在你的组织中完成以下任务。

重要

从 AD FS 3.0 (Windows Server 2012 R2) 起,AD FS 支持将组托管服务帐户 (gMSA) 用作服务帐户。 这是建议的选项,因为通过该选项,不再需要随时间推移管理服务帐户密码。 本文档介绍使用传统服务帐户的另一种情况,例如在仍运行 Windows Server 2008 R2 或更低版本的域功能级别 (DFL) 的域中使用传统服务帐户。

注意

你只能针对整个联合服务器场执行一次此过程中的任务。 以后,当你使用 AD FS 联合服务器配置向导创建联合服务器时,必须在场中每台联合服务器上的“服务帐户”向导页中指定与此相同的帐户。

创建一个专用服务帐户

  1. 在位于标识提供程序组织中的 Active Directory 林中创建一个专用的用户/服务帐户。 此帐户是要在服务器场方案中工作以及要在每个联合服务器上允许通过身份验证的 Kerberos 身份验证协议所必需的。 仅针对联合服务器场的目的使用此帐户。

  2. 编辑用户帐户属性,并选中“密码永不过期”复选框。 这一操作确保此服务帐户的功能不会因为域密码更改要求而被中断。

    注意

    为此专用帐户使用网络服务帐户将会在通过 Windows 集成身份验证尝试访问时导致随机失败,因为 Kerberos 票证不能从一台服务器到另一台服务器上进行验证。

设置服务帐户的 SPN

  1. 因为 AD FS 应用程序池的应用程序池标识作为域用户/服务帐户运行,所以必须使用 Setspn.exe 命令行工具在域中为该帐户配置服务主体名称 (SPN)。 默认情况下,Setspn.exe 安装在运行 Windows Server 2008 的计算机上。 在加入到用户/服务帐户所在的同一个域的计算机上运行以下命令:

    setspn -a host/<server name> <service account>
    

    例如,如果所有联合服务器聚集在域名系统 (DNS) 主机名称 fs.fabrikam.com 下,并且分配给 AD FS 应用程序池的服务帐户名称名为 adfs2farm,则在此情况下,键入如下所示的命令,然后按 Enter:

    setspn -a host/fs.fabrikam.com adfs2farm
    

    有必要为此帐户只完成一次该任务。

  2. 在 AD FS 应用程序池标识更改为服务帐户后,请设置 SQL Server 数据库上的访问控制列表 (ACL) 以允许读取此新帐户,以便 AD FS 应用程序池可以读取策略数据。