在 Windows Server 2012 R2 中为 AD FS 设置实验室环境

本主题概述了配置可用于完成以下演练指南中的演练的测试环境的步骤:

注释

不建议在同一计算机上安装 Web 服务器和联合服务器。

若要设置此测试环境,请完成以下步骤:

  1. 步骤 1:配置域控制器(DC1)

  2. 步骤 2:使用设备注册服务配置联合服务器 (ADFS1)

  3. 步骤 3:配置 Web 服务器(WebServ1)和基于声明的示例应用程序

  4. 步骤 4:配置客户端计算机(Client1)

步骤 1:配置域控制器(DC1)

出于此测试环境的目的,可以调用根 Active Directory 域 contoso.com ,并将 pass@word1 指定为管理员密码。

  • 安装 AD DS 角色服务并安装 Active Directory 域服务(AD DS),使计算机成为 Windows Server 2012 R2 中的域控制器。 此操作在创建域控制器的过程中会升级 AD DS 架构。 有关详细信息和分步说明,请参阅https://technet.microsoft.com/library/hh472162.aspx

创建测试 Active Directory 帐户

域控制器正常运行后,可以在此域中创建一个测试组并测试用户帐户,并将该用户帐户添加到组帐户。 你可以使用这些帐户来完成本主题前面部分中引用的操作实例指南中的演练。

创建以下帐户:

  • 用户:具有以下凭据的 Robert Hatley :用户名: RobertH 和密码: P@ssword

  • 组: 财务

有关如何在 Active Directory 中创建用户和组帐户的信息,请参阅 https://technet.microsoft.com/library/cc783323%28v.aspx

Robert Hatley 帐户添加到 财务 组。 有关如何将用户添加到 Active Directory 中的组的信息,请参阅 https://technet.microsoft.com/library/cc737130%28v=ws.10%29.aspx

创建 GMSA 帐户

在安装和配置 Active Directory 联合身份验证服务 (AD FS) 期间需要组托管服务帐户 (GMSA) 帐户。

创建 GMSA 帐户
  1. 打开 Windows PowerShell 命令窗口并键入:

    Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
    New-ADServiceAccount FsGmsa -DNSHostName adfs1.contoso.com -ServicePrincipalNames http/adfs1.contoso.com
    
    

步骤 2:使用设备注册服务配置联合服务器 (ADFS1)

若要设置另一个虚拟机,请安装 Windows Server 2012 R2 并将其连接到域 contoso.com。 在你已将其加入到域后设置计算机,然后继续进行安装和配置 AD FS 角色。

有关视频,请参阅 Active Directory 联合身份验证服务操作方法视频系列:安装 AD FS 服务器场。

安装服务器 SSL 证书

必须在本地计算机存储中的 ADFS1 服务器上安装服务器安全套接字层(SSL)证书。 证书必须具有以下属性:

  • 主题名称(CN):adfs1.contoso.com

  • 主题备用名称(DNS):adfs1.contoso.com

  • 主题备用名称(DNS):enterpriseregistration.contoso.com

有关设置 SSL 证书的详细信息,请参阅 使用企业 CA 在域中的网站上配置 SSL/TLS

Active Directory 联合身份验证服务 How-To 视频系列:更新证书。

安装 AD FS 服务器角色

安装联合身份验证服务角色服务
  1. 使用域管理员帐户 administrator@contoso.com登录到服务器。

  2. 启动“服务器管理器”。 若要启动服务器管理器,请在 Windows“开始”屏幕上单击“服务器管理器”,或在 Windows 桌面上的 Windows 任务栏上单击“服务器管理器”。 在仪表板页上“欢迎”磁贴的“快速启动”选项卡上,单击“添加角色和功能”。 或者,可以在“管理”菜单上单击“添加角色和功能”。

  3. “开始之前 ”页上,单击“ 下一步”。

  4. “选择安装类型 ”页上,单击 “基于角色”或“基于功能”的安装,然后单击“ 下一步”。

  5. 在“ 选择目标服务器 ”页上,单击“ 从服务器池中选择服务器”,验证是否选择了目标计算机,然后单击“ 下一步”。

  6. “选择服务器角色 ”页上,单击 “Active Directory 联合身份验证服务”,然后单击“ 下一步”。

  7. “选择功能 ”页上,单击“ 下一步”。

  8. Active Directory 联合身份验证服务(AD FS) 页上,单击“ 下一步”。

  9. 验证 “确认安装选择 ”页上的信息后,选中“ 根据需要自动重启目标服务器 ”复选框,然后单击“ 安装”。

  10. “安装进度 ”页上,验证是否已正确安装所有内容,然后单击“ 关闭”。

配置联合服务器

下一步是配置联合服务器。

配置联盟服务器
  1. 在“服务器管理器 仪表板 ”页上,单击“ 通知” 标志,然后单击 服务器上的“配置联合身份验证服务”。

    此时会打开 Active Directory 联合身份验证服务配置向导

  2. “欢迎 ”页上,选择“ 在联合服务器场中创建第一个联合服务器”,然后单击“ 下一步”。

  3. “连接到 AD DS”页面上,为已加入contoso.com Active Directory 域的此计算机指定具有域管理员权限的帐户,然后单击“下一步”

  4. “指定服务属性 ”页上执行以下作,然后单击“ 下一步” :

    • 导入之前获取的 SSL 证书。 此证书是所需的服务身份验证证书。 浏览到你的 SSL 证书的位置。

    • 若要为联合身份验证服务提供名称,请键入 adfs1.contoso.com。 此值与在 Active Directory 证书服务(AD CS)中注册 SSL 证书时提供的值相同。

    • 若要为联合身份验证服务提供显示名称,请键入 Contoso Corporation

  5. 在“ 指定服务帐户 ”页上,选择 “使用现有的域用户帐户或组托管服务帐户”,然后指定创建域控制器时创建的 GMSA 帐户 fsgmsa

  6. 在“ 指定配置数据库 ”页上, 选择“使用此 Windows 内部数据库在此服务器上创建数据库”,然后单击“ 下一步”。

  7. 在“ 审阅选项” 页上,验证配置选择,然后单击“ 下一步”。

  8. “先决条件检查 ”页上,验证所有先决条件检查是否已成功完成,然后单击“ 配置”。

  9. “结果 ”页上,查看结果,检查配置是否已成功完成,然后单击 完成联合身份验证服务部署所需的后续步骤

配置设备注册服务

下一步是在 ADFS1 服务器上配置设备注册服务。 有关视频,请参阅 Active Directory 联合身份验证服务 How-To 视频系列:启用设备注册服务

为 Windows Server 2012 RTM 配置设备注册服务
  1. 重要

    以下步骤适用于 Windows Server 2012 R2 RTM 版本。

    打开 Windows PowerShell 命令窗口并键入:

    Initialize-ADDeviceRegistration
    

    系统提示输入服务帐户时,键入 contoso\fsgmsa$

    现在运行 Windows PowerShell cmdlet。

    Enable-AdfsDeviceRegistration
    
  2. 在 ADFS1 服务器上,在 AD FS 管理控制台 中,导航到 身份验证策略。 选择 “编辑全局主身份验证”。 选中 “启用设备身份验证”旁边的复选框,然后单击“ 确定”。

将主机(A)和别名(CNAME)资源记录添加到 DNS

在 DC1 上,必须确保为设备注册服务创建以下域名系统(DNS)记录。

类型 地址
adfs1 主机 (A) AD FS 服务器的 IP 地址
enterpriseregistration 别名 (CNAME) adfs1.contoso.com

你可以使用以下过程为联合服务器和设备注册服务将主机 (A) 资源记录添加到公司 DNS 名称服务器。

管理员组中的成员身份或等效项是完成此过程的最低要求。 若要查看有关使用适合的帐户和组成员身份的详细信息,请参阅“https://go.microsoft.com/fwlink/?LinkId=83477”本地默认组和域默认组 (https://go.microsoft.com/fwlink/p/?LinkId=83477) 中的超链接。

为联合服务器将主机 (A) 和别名 (CNAME) 资源记录添加到 DNS
  1. 在 DC1 上,从“服务器管理器”中,在“工具”菜单上,单击“DNS”以打开 DNS 管理单元。

  2. 在控制台树中,依次展开 DC1、向前查找区域、右键单击 contoso.com,然后单击“新建主机”(A 或 AAAA)。

  3. 在“名称”中,键入你希望用于 AD FS 场的名称。 对于此操作实例,则键入 adfs1

  4. IP 地址中,键入 ADFS1 服务器的 IP 地址。 单击“ 添加主机”。

  5. 右键单击 contoso.com,然后单击“新建别名”(CNAME)。

  6. 在“新建资源记录”对话框中,在“别名”框中键入 enterpriseregistration

  7. 在目标主机框的“完全限定域名”(FQDN)中,键入 adfs1.contoso.com,然后单击“ 确定”。

    重要

    在实际部署中,如果公司具有多个用户主体名称(UPN)后缀,则必须为 DNS 中的每个 UPN 后缀创建多个 CNAME 记录。

步骤 3:配置 Web 服务器(WebServ1)和基于声明的示例应用程序

通过安装 Windows Server 2012 R2作系统并将其连接到域 contoso.com 来设置虚拟机(WebServ1)。 将其加入域后,可以继续安装和配置 Web服务器角色。

若要完成本主题前面引用的演练,必须有一个受联合服务器(ADFS1)保护的示例应用程序。

必须完成以下步骤,才能使用此示例基于声明的应用程序设置 Web 服务器。

注释

这些步骤已在运行 Windows Server 2012 R2作系统的 Web 服务器上进行测试。

  1. 安装 Web 服务器角色和 Windows Identity Foundation

  2. 安装 Windows Identity Foundation SDK

  3. 在 IIS 中配置简单声明应用

  4. 在联合服务器上创建信赖方信任

安装 Web 服务器角色和 Windows Identity Foundation

  1. 注释

    必须有权访问 Windows Server 2012 R2 安装介质。

    使用 administrator@contoso.com 和密码 pass@word1登录到 WebServ1。

  2. 在“服务器管理器”中,在仪表板页上“欢迎”磁贴的“快速启动”选项卡上,单击“添加角色和功能”。 或者,可以在“管理”菜单上单击“添加角色和功能”。

  3. “开始之前 ”页上,单击“ 下一步”。

  4. “选择安装类型 ”页上,单击 “基于角色”或“基于功能”的安装,然后单击“ 下一步”。

  5. 在“ 选择目标服务器 ”页上,单击“ 从服务器池中选择服务器”,验证是否选择了目标计算机,然后单击“ 下一步”。

  6. 在“ 选择服务器角色 ”页上,选中 Web 服务器(IIS)旁边的复选框,单击“ 添加功能”,然后单击“ 下一步”。

  7. “选择功能 ”页上,选择 Windows Identity Foundation 3.5,然后单击“ 下一步”。

  8. “Web 服务器角色”(IIS) 页上,单击“ 下一步”。

  9. “选择角色服务 ”页上,选择并展开 应用程序开发。 选择 ASP.NET 3.5,单击“ 添加功能”,然后单击“ 下一步”。

  10. 在“ 确认安装选择 ”页上,单击“ 指定备用源路径”。 输入位于 Windows Server 2012 R2 安装介质中的 Sxs 目录的路径。 例如 D:\Sources\Sxs。 单击“ 确定”,然后单击“ 安装”。

安装 Windows Identity Foundation SDK

  1. 运行 WindowsIdentityFoundation-SDK-3.5.msi 以安装 Windows Identity Foundation SDK 3.5。 选择所有默认选项。

在 IIS 中配置简单声明应用

  1. 在计算机证书存储中安装有效的 SSL 证书。 证书应包含 Web 服务器的名称 ,webserv1.contoso.com

  2. 将 C:\Program Files (x86)\Windows Identity Foundation SDK\v3.5\Samples\Quick Start\Web Application\PassiveRedirectBasedClaimsAwareWebApp 的内容复制到 C:\Inetpub\Claimapp。

  3. 编辑 Default.aspx.cs 文件,以便不进行声明筛选。 执行此步骤以确保示例应用程序显示联合服务器颁发的所有声明。 请执行以下操作:

    1. 在文本编辑器中打开 Default.aspx.cs

    2. 在文件中搜索第二个实例 ExpectedClaims

    3. 注释掉整个 IF 语句及其左大括号。 通过在行开头键入“//”(不含引号)来指示注释。

    4. 现在,语句 FOREACH 应类似于此代码示例。

      Foreach (claim claim in claimsIdentity.Claims)
      {
         //Before showing the claims validate that this is an expected claim
         //If it is not in the expected claims list then don't show it
         //if (ExpectedClaims.Contains( claim.ClaimType ) )
         // {
            writeClaim( claim, table );
         //}
      }
      
      
    5. 保存并关闭 Default.aspx.cs

    6. 在文本编辑器中打开 web.config

    7. 删除整个 <microsoft.identityModel> 部分。 从 including <microsoft.identityModel> 开始删除包括 </microsoft.identityModel>在内的所有内容。

    8. 保存并关闭 web.config

  4. 配置 IIS 管理器

    1. 打开 Internet 信息服务 (IIS) 管理器

    2. 转到 应用程序池,右键单击 DefaultAppPool 以选择 “高级设置”。 将 “加载用户配置文件 ”设置为 True,然后单击“ 确定”。

    3. 右键单击 DefaultAppPool 以选择“基本设置”。.NET CLR 版本 更改为 .NET CLR 版本 v2.0.50727

    4. 右键单击 “默认网站 ”以选择 “编辑绑定”。

    5. 使用已安装的 SSL 证书将 HTTPS 绑定添加到端口 443

    6. 右键单击 “默认网站 ”以选择“ 添加应用程序”。

    7. 将别名设置为 claimapp ,并将物理路径设置为 c:\inetpub\claimapp

  5. 若要将 claimapp 配置为使用联合服务器,请执行以下作:

    1. 运行 FedUtil.exe,它位于 C:\Program Files (x86)\Windows Identity Foundation SDK\v3.5 中。

    2. 将应用程序配置位置设置为 C:\inetpub\claimapp\web.config,并将应用程序 URI 设置为站点 /https://webserv1.contoso.comclaimapp/的 URL。 单击 “下一步”

    3. 选中“使用现有的 STS”并浏览到你的 AD FS 服务器的元数据 URL https://adfs1.contoso.com/federationmetadata/2007-06/federationmetadata.xml。 单击 “下一步”

    4. 选择“ 禁用证书链验证”,然后单击“ 下一步”。

    5. 选择 “无加密”,然后单击“ 下一步”。 在 “提供的声明 ”页上,单击“ 下一步”。

    6. 选中 “计划任务以执行每日 WS-Federation 元数据更新”旁边的复选框。 单击“完成”。

    7. 示例应用程序现已配置。 如果测试应用程序 URL https://webserv1.contoso.com/claimapp,它应将你重定向到联合服务器。 联盟服务器应显示错误页面,因为您尚未配置信赖方信任关系。 换句话说,AD FS 未保护此测试应用程序。

现在,必须使用 AD FS 保护在 Web 服务器上运行的示例应用程序。 为此,可以在联合服务器上添加信赖方信任(ADFS1)。 详细视频内容,请参阅 Active Directory 联合身份验证服务 How-To 视频系列:添加信赖方信任关系。

在联合服务器上创建信赖方信任

  1. 在联合服务器(ADFS1)的 AD FS 管理控制台中,导航到 信赖方信任,然后单击“ 添加信赖方信任”。

  2. 在“选择数据源”页面上,选中“导入有关信赖方联机或在本地网络上发布的数据”,为 claimapp 输入元数据 URL,然后单击“下一步”。 运行 FedUtil.exe 创建了元数据 .xml 文件。 它位于 https://webserv1.contoso.com/claimapp/federationmetadata/2007-06/federationmetadata.xml

  3. 在“指定显示名称”页面上,为你的信赖方信任指定“显示名称”claimapp,然后单击“下一步”

  4. 在“ 立即配置多重身份验证” 页上,选择 “我不想指定此信赖方信任的多重身份验证设置”,然后单击“ 下一步”。

  5. 在“ 选择颁发授权规则 ”页上,选择“ 允许所有用户访问此信赖方”,然后单击“ 下一步”。

  6. “准备添加信任 ”页上,单击“ 下一步”。

  7. “编辑声明规则 ”对话框中,单击“ 添加规则”。

  8. 在“ 选择规则类型 ”页上,选择“ 使用自定义规则发送声明”,然后单击“ 下一步”。

  9. 在“ 配置声明规则 ”页上的 “声明规则名称 ”框中,键入 “所有声明”。 在 “自定义规则 ”框中,键入以下声明规则。

    c:[ ]
    => issue(claim = c);
    
    
  10. 单击“完成”,然后单击“确定”

步骤 4:配置客户端计算机(Client1)

设置另一个虚拟机并安装 Windows 8.1。 此虚拟机必须与其他虚拟机位于同一虚拟网络上。 不应将此计算机加入 Contoso 域。

客户端必须信任用于联合服务器(ADFS1)的 SSL 证书,在步骤 2:使用设备注册服务配置联合服务器(ADFS1)。 它还必须能够验证证书的证书吊销信息。

还必须设置并使用Microsoft帐户登录到 Client1。

另请参阅

  • Active Directory 联合身份验证服务操作方法视频系列:安装 AD FS 服务器场
  • Active Directory 联合身份验证服务 How-To 视频系列:更新证书
  • Active Directory 联合身份验证服务操作方法视频系列:添加信赖方信任
  • Active Directory 联合身份验证服务 How-To 视频系列:启用设备注册服务
  • Active Directory 联合身份验证服务 How-To 视频系列:安装 Web 应用程序代理