部署工作文件夹以及 AD FS 和 Web 应用程序代理 (WAP)

原文地址:https://blogs.technet.com/b/filecab/archive/2014/03/03/deploying-work-folders-with-ad-fs-and-web-application-proxy-wap.aspx

概述

工作文件夹是 Windows Server® 2012 R2 中引入的一个新组件。它允许信息工作者在其设备之间同步其工作文件。该功能由工作文件夹服务提供支持,可将该服务作为一个 Windows Server 2012 R2 文件服务子角色启用。

Web 应用程序代理是 Windows Server® 2012 R2 中的一个新的远程访问角色服务。Web 应用程序代理为企业网络内的 Web 应用程序提供反向代理功能,允许任何设备上的用户从企业网络外部访问它们。Web 应用程序代理使用 Active Directory 联合身份验证服务 (AD FS) 预先验证对 Web 应用程序的访问,并且它也充当着 AD FS 代理的作用。

设置和配置系统可能是最耗时而乏味的工作。这篇博文旨在让 Windows Server 2012 R2 中工作文件夹、AD FS 和 Web 应用程序代理的部署尽可能简单。

这篇博文将分步说明如何为生产和测试环境设置工作文件夹以及 AD FS 和 Web 应用程序代理 (WAP)。这篇博文的目标是:

  • 演示如何部署和设置一个大多数客户喜欢在现实环境中设置的一个环境。
  • 详细介绍如何通过 UI 配置环境。
  • 提供脚本,让整个环境在 15 分钟内完成配置。

这篇博文比一般的博文篇幅长一些,因为这篇博文的目标之一是就工作文件夹以及 AD FS 和 WAP 的部署提供完整的文档概述。

另外还为测试环境提供了一组 PowerShell 脚本来自动化这篇博文中的所有步骤,这包括创建 AD FS 和工作文件夹需要的自签名证书。一旦(从所选择的 CA 那里)收到证书,就可以将环境转为生产环境。当然,有时您可能仅想尽快建立一个产品环境,而不想坐等从 CA 那里获取证书或设置证书服务器。

在这里下载脚本

此脚本会使用一个无人参与的 xml 为未加入域和加入域的计算机创建 VM,该 xml 是使用配置文件中的值动态生成的。

此脚本使整个环境的部署在 12 分钟内完成。当然,根据您使用的硬件,您所用的时间可能多或少几分钟。测试环境由 AD FS、工作文件夹、WAP 和两个测试客户端(一个加入了域,另一个未加入域)组成。工作文件夹将配置有一个所有用户添加的默认同步共享,并且设置为使用 AD FS。同步共享将启用 SMB 访问,并且将共享设置为需要加密。AD FS 将设置信赖方信息,该信息是与工作文件夹进行通信所必需的。WAP 经设置将使用 AD FS 终结点,这样一来内/外部网络上的客户端就可以使用 AD FS。另外编写此脚本时,还为环境的部署使用了远程 PowerShell。这意味着,可以从主机非交互式地设置整个环境,这样一来您就无需登录每台 VM。

如果您对使用 PowerShell 脚本设置环境有兴趣,那么可以查看博文临近结尾处的脚本部分。

先决条件

在这篇博文中,我将向您提供设置工作文件夹以及 AD FS 和 WAP 的分步指南。完成设置之后,您将拥有一个配置有自签名证书的完整的运作环境。

如要遵循这一分步指南,您需要准备好以下计算机:

  • 域控制器:启用了      Active      directory 域服务角色的一台服务器,配置有一个域(例如      Contoso.com)并且运行      Windows Server 2012R2。需要运行 Windows      Server 2012R2 或更高版本的域控制器仅是为了支持工作区加入,这也是我们要设置的。
  • 加入域 (Contoso.com)      的两台服务器。每台服务器都运行着      Windows Server 2012 R2 构建版(一台服务器用于 AD FS,另一台用于工作文件夹)
  • 未加入域的一台服务器。该服务器将运行 WAP,且需要一个用于网络域      (Contoso.com) 的网卡以及另一个用于外部域      (Fabrikam.com) 的网卡
  • 运行      Windows      8.1 的一台加入域的客户机
  • 在      Fabrikam 虚拟网络上运行 Windows      8.1 的一台未加入域的客户机

在这里下载 Windows Server 2012 R2 评估版:

https://technet.microsoft.com/en-US/evalcenter/dn205286.aspx

在这里下载 Windows 8.1 Enterprise 评估版:

https://technet.microsoft.com/en-US/evalcenter/hh699156

计算机可以是物理机,也可以是虚拟机。如果您没有那些计算机,可以运行随附压缩文件中的 provisioningEnvironment.ps1,它会创建所有必需的虚拟机,域控制器除外。在运行脚本之前,务必编辑 vms.txt 文件来适当更新网络信息。编辑脚本的说明参见博文结尾。

准备好这些计算机之后,您将有一个如下所示的拓扑结构:

image

这篇博文将侧重于设置 WAP、AD FS 和工作文件夹。在我们的场景中,WAP 将不加入域。可以将 WAP 部署到域,也可以不将它部署到域。在一些部署中,您可能会希望将 WAP 加入域,比如使用 Windows 身份验证时。如果您计划使用集成 Windows 身份验证,那么必须将 Web 应用程序代理服务器加入一个 AD FS 域,而且必须配置 Kerberos Constraint Delegation (KCD)。

设置

在环境的设置中,我们将按以下顺序设置环境:

  • AD FS
  • 工作文件夹
  • Web 应用程序代理
  • 加入域的工作站和未加入域的工作站

在开始部署之前我们要求您完成以下设置。

  • 运行      Windows Server 2012R2 的 Active      Directory 林(最好启用 DNS,但并非必需)。仅当您需要为工作区加入启用设备注册时才需要      Windows      Server 2012 R2,否则您可以使用 Windows Server 2012。
  • 运行      Windows Server 2012 R2 的一台用于 AD FS 的虚拟机/服务器
  • 加入域
  • 有效网络配置
  • 运行      Windows Server 2012 R2 的一台用于工作文件夹的虚拟机/服务器
  • 加入域
  • 有效网络配置
  • 运行      Windows Server 2012 R2 的一台用于 Web 应用程序代理的虚拟机/服务器
  • 加入域
  • 有效网络配置

脚本 provisionEnvironment 和 setupEnvironment 将执行以下工作:

  • 创建实验所需的所有虚拟机
  • 将需要加入域的计算机加入域
  • 安装和充分配置有关 AD FS、工作文件夹和 WAP 的各个服务器角色
  • 在所有适当的计算机上创建和安装自签名证书

最终的结果是,您将拥有一个配置有自签名证书的完全部署的环境。两台客户机(一台加入了域,位于 Contoso 企业网上;另一台未加入域,位于外部网络上)将随时准备在本地或通过 WAP 使用工作文件夹。剩下的工作就是让用户发起工作文件夹加入流程。

设置 AD FS

预安装工作

在开始安装 AD FS 之前,您应当提前做两件事,这会为您节省宝贵的时间并让设置流程更快。

首先需要设置的是 AD FS 服务运行所在的 Active Directory 域管理员帐户。对于测试环境,在这篇博文中,我们将使用默认的 contoso\administrator 帐户。在生产环境中,不建议使用默认的管理员帐户。根据您的公司策略,请求和接收域管理员帐户可能需要一些时间,因此务必要提前完成这一工作。

如要成功设置 AD FS,您需要做的第二件事是为服务器身份验证获取 SSL SAN 证书。在生产环境中要使用一个公开可信的证书。

您可以从许多商业 CA 那里购买证书。您可以在该网页上找到 Microsoft 信任的 CA:https://support.microsoft.com/kb/931125。另一个选择是从企业 CA 获取证书。

如要购买证书,您需要访问 CA 的网站,遵循网站上的说明。每个 CA 都有不同的证书购买流程。

在我们的测试环境中,我们将使用一个自签名证书。需要注意的是,AD FS 不支持 CNG 证书,这意味着您不能使用 PowerShell 命令 New-SelfSignedCertificate 创建自签名证书。随附的压缩文件包含一个名为 makecert.ps1 的 PowerShell 脚本文件,该脚本将创建一个对 AD FS 有效的自签名证书,并提示输入创建证书所需的 SAN 名称。

创建 AD FS 自签名证书
      1. 将       makeCert.ps1 文件复制到 AD FS 计算机。
      2. 打开管理员       PowerShell 窗口
      3. 将执行策略设置为       unrestricted
      1.   
      2. PS C:\temp\scripts> .\makecert.ps1 C:\temp\scripts> Set-ExecutionPolicy–ExecutionPolicy  Unrestricted
    1. 将路径改变至将脚本复制到的目录

    2. 执行       makeCert 脚本

    1.   
    2. PS C:\temp\scripts> .\makecert.ps1
  1. 当系统提示更改证书使用者时,为使用者输入新值。在我们的示例中,这个值是 blueadfs.contoso.com。

  2. 当系统提示输入       SANS       时,键入 Y,然后键入       SAN 名称(一次键入一个名称),例如 blueadfs.contoso.com       <return> enterpriseregistration.contoso.com。键入所有       SAN 名称之后,在空行上按回车键。

  3. 当系统提示安装证书到受信任的根证书颁发机构时,键入 Y。

 image

AD FS 证书需要是具有以下值的 SAN 证书:

<AD FS service name>.<domain>

enterpriseregistration..<domain>

<machine name>.<domain>

例如:

blueadfs.contoso.com

enterpriseregistration.contoso.com

2012R2-ADFS.contoso.com

Work Place 加入需要用到 enterpriseregistration SAN。

设置服务器 IP 地址

服务器 IP 改为静态 IP,对于这篇博文,我将使用 A 类 IP,即 192.168.0.160 / 子网掩码:255.255.0.0 / 默认网关:192.168.0.1 / 首选 DNS:192.168.0.150(您的域控制器的 IP 地址)

image

安装 AD FS
登录到计划安装 AD FS 的虚拟机或物理机并打开 Add Roles and Features Wizard。

如要安装 AD FS,选择 Server Roles 下的 Active Directory Federation Services 角色并单击 Next。

clip_image002

如果您计划在混合部署中使用 AD FS 服务器,并且打算使用 DirSync,选择安装 .Net Framework 3.5 功能。如要安装 .Net 3.5,您需要将 Windows Server ISO 装载为 VHD 中的一个 DVD 驱动器。

在确认页面上,您会看到一条消息,告知您不能在安装有 AD FS 的同一计算机上安装 Web 应用程序代理角色。单击 Next。

clip_image004

如果您没有选择安装 .Net 3.5,会看到如下所示的确认页面。

clip_image006

如果您选择安装 .Net 3.5,会看到如下所示的确认页面。务必提供 Windows Server 2012 R2 iso 的备用源路径,例如 d:\sources\SxS。

clip_image008

如果您没有装载 Windows Server 2012 R2 iso,就会得到一个如下所示的错误页面,然后需要重新启动 AD FS 的整个安装过程。

 clip_image010

 

如要通过 PowerShell 完成 AD FS 的等效安装,使用以下命令:

    Add-WindowsFeature RSAT-AD-Tools

Add-WindowsFeature AD FS-Federation –IncludeManagementTools

# 如果您计划使用 DirSync,那么就仅安装 .Net 3.5 功能

# 用 VHD 中已装载 iso 的位置替换 E:\sources

    Add-WindowsFeature NET-Framework-Features –Source <drive>:\sources\SxS

配置 AD FS

下一步是配置 AD FS。

选择服务器管理器顶部的警告标志,单击 “Configure the federation service on this server” 链接。

clip_image012

该链接会启动 Active Directory Federation Services 向导。欢迎屏幕之后的第一个页面将用于指定域管理员帐户,该帐户将用作专用 AD FS 帐户。

输入要用于进行 AD FS 通信的 SSL 证书的使用者名称,并设置 Federation Service Name 的名称。需要注意的是,对于联合身份验证服务名称,不要使用环境中现有服务器的名称。如果您使用了现有服务器的名称,那么 AD FS 安装会失败,需要再次重新启动。

clip_image014

输入您希望为托管服务帐户使用的名称。

clip_image016

选择使用 Windows 内部数据库并单击 Next。

clip_image018

审查页面将向您显示您选择的选项的概述。单击 Next。

clip_image020

下一个界面将是必备项检查页面。如果通过检查,单击 Configure。

clip_image022

如果您使用了 AD FS 服务器的名称或另一台现有服务器的名称,会收到如下所示的错误消息。您应当重新开始安装过程,选择一个与 AD FS 服务器或任何现有服务器的名称不同的名称。

clip_image024

当配置成功完成时,您会看到以下表明 AD FS 配置成功的页面。

clip_image026

以下是通过 PowerShell 完成相同工作的步骤:

安装 AD FS

    Add-WindowsFeature RSAT-AD-Tools

    Add-WindowsFeature ADFS-Federation -IncludeManagementTools

创建托管服务帐户

    New-ADServiceAccount "ADFSService"-Server 2012R2-DC.contoso.com -Path "CN=Managed Service Accounts,DC=Contoso,DC=COM"   -DNSHostName 2012R2-ADFS.contoso.com -ServicePrincipalNames HTTP/2012R2-ADFS,HTTP/2012R2-ADFS.contoso.com

设置 AD FS

设置 AD FS 将需要用到上面使用的托管服务帐户以及在预配置步骤中创建的证书。

     $cert = Get-ChildItem CERT:\LocalMachine\My |where {$_.Subject -match blueadfs.contoso.com} |sort $_.NotAfter -Descending | select -first 1 

     $thumbprint = $cert.Thumbprint

     Install-ADFSFarm -CertificateThumbprint $thumbprint -FederationServiceDisplayName "Contoso Corporation" –FederationServiceName blueadfs.contoso.com -GroupServiceAccountIdentifiercontoso\ADFSService$ -OverwriteConfiguration -ErrorAction Stop

AD FS 配置后工作

设置和配置 AD FS 之后有四项配置后工作要做。它们是:

      • 配置 DNS      条目
      • 为工作文件夹设置信赖方信任
      • 导出要在其他计算机上安装的 AD      FS 证书
      • 配置私钥访问
配置 DNS 条目

您需要为 AD FS 创建两个 DNS 条目。这与前面在预配置步骤中创建 SAN 证书时使用的两个条目一样。

<AD FS service name>.<domain>

enterpriseregistration..<domain>

<machine name>.<domain>

例如:

blueadfs.contoso.com

enterpriseregistration.contoso.com

在 AD 中为 AD FS 创建 A/Cname 记录

在您的 DC 中,打开 DNS 管理器。

 clip_image028

展开 Forward Lookup Zones,右键单击您的域并选择 New Host (A)。

clip_image030

New Resource Record 窗体会打开。在 Alias name 字段中输入 AD FS 的别名。在实验示例中,我们使用 “blueadfs”。该别名必须与先前用于 AD FS 的证书中的使用者名称保持一致。例如,如果使用者名称是 adfs.contso.com,那么这里输入的别名必须是 adfs。在 IP 字段中,输入 AD FS 服务器的 IP 地址,例如 192.168.0.160。

clip_image032

务必注意的是,在通过 UI(而非 PowerShell)设置 AD FS 时,您必须创建 A 记录,而非 CNAME 记录。原因在于,通过 UI 创建的 SPN 仅包含将 AD FS 服务设置为 HOST/ 时使用的别名。

clip_image034

在 PowerShell 脚本中,我们通过包含 HOST/ 别名并设置两个 HTTP/ 条目创建了 SPN。这些条目使 SPN 能够从别名重定向到主机。

clip_image036

为 ‘enterpriseregistration’ cname 添加另一个别名 (New Alias (CNAME) )。这个 ‘enterpriseregistration’ 别名用于设备加入,且必须命名为 ‘enterpriseregistration’。

clip_image038

用于完成以上工作的 PowerShell 命令如下所示。必须在您的域控制器上执行这些命令。

Add-DnsServerResourceRecord  -ZoneName "contoso.com" -Name blueadfs -A -IPv4Address 192.168.0.160

Add-DnsServerResourceRecord  -ZoneName "contoso.com" -Name enterpriseregistration -CName  -HostNameAlias 2012R2-ADFS.contoso.com

为工作文件夹设置 AD FS 依赖方信任

我们可以为工作文件夹设置/配置依赖方信任,即使尚未设置工作文件夹。必须设置依赖方信任,工作文件夹才能使用 AD FS。由于我们要设置 AD FS,现在是执行这一步的最佳时机。

选择 AD FS Management

在右侧面板中,在 Actions 下单击 Add Relying Party Trust Wizard。

 clip_image040

向导的第一个页面是欢迎页面。单击 Next 开始向导设置。

 clip_image042

选择“Enter data about the relying party manually(手动输入有关依赖方的数据)”。

clip_image044

在 Display name 字段中输入 “WorkFolders” 并单击 Next。

clip_image046

选择 AD FS profile 选项来创建依赖方信任。

clip_image048

在 Configure Certificates 页面上单击 Next。这些证书用作可选令牌加密证书,在我们的配置中不需要它们。

clip_image050

在 Configure URL 页面上,直接单击 Next。

clip_image052

在 Configure Identifier 页面上,将目标标识符设置为 https://windows-server-work-folders/V1。该标识符是工作文件夹使用的一个硬编码值,在它与 AD FS 进行通信时由工作文件夹发送。

clip_image054

在 Configure Multi-factor authentication 页面上单击 Next。

clip_image056

在 Issuance Authorization 页面上,选择“Permit all users to access the relying party(允许所有用户访问依赖方)”。

clip_image058

在 Read to Add trust 页面上单击 Next。

clip_image060

完成配置后,向导的最后一个页面将显示,并表明配置成功完成。

clip_image062

选择用于编辑声明规则的复选框,并单击 Close。

然后 Edit Claim Rules 窗体会打开。

clip_image064

在 Claim Rules type 中,选择 “Send LDAP Attributes as Claims”。

clip_image066

 

在 Transform claim 页面上,执行以下操作:

      • 添加 Transform 声明规则名称:WorkFolders
      • 选择 Active Directory 作为属性存储

进行以下设置:

Ldap map

User-Principal-Name   UPN

Display Name  –> Name

Surname  –> Surname

Given-Name  –> Given Name

clip_image068

完成设置之后单击 Finish,然后您会看到新规则出现在 Issuance Transform rules 页面上。

 clip_image070

接下来单击 Issuance Authorization Rules 选项卡,您会看到访问规则被设置为 “Permit Access to All Users”。

clip_image072

最后的步骤

一旦完成所有这些工作,我们需要在 PowerShell 中运行四个命令来完成配置。工作文件夹需要这四个命令才能成功与 AD FS 进行通信。这些依赖方相关选项不能通过 UI 进行设置。这些选项用于:

      • 启用 JWT
      • 禁用加密的声明
      • 启动自动更新
      • 向所有设备发布      Oauth 刷新令牌。

 

Set-ADFSRelyingPartyTrust -TargetIdentifier “https://windows-server-work-folders/V1”

 -EnableJWT  $true

 

Set-ADFSRelyingPartyTrust -TargetIdentifier “https://windows-server-work-folders/V1”

 -Encryptclaims  $false

 

Set-ADFSRelyingPartyTrust -TargetIdentifier “https://windows-server-work-folders/V1”

 -AutoupdateEnabled  $true

 

Set-ADFSRelyingPartyTrust -TargetIdentifier “https://windows-server-work-folders/V1”

 -IssueOAuthRefreshTokensTo  AllDevices

支持工作区加入

如要为工作区加入启用设备注册,您将需要运行以下三个 PowerShell 调用,它们将配置设备注册并设置全局身份验证策略。

 

    Initialize-ADDeviceRegistration -ServiceAccountName <your AD FS service name>

    Enable-ADFSDeviceRegistration

    Set-ADFSGlobalAuthenticationPolicy -DeviceAuthenticationEnabled $true

导出证书

需要导出自签名 AD FS 证书并将其安装在测试环境中的以下计算机上:

      • 工作文件夹服务器
      • Web 应用程序代理
      • 加入域的      Windows 8.1 客户端
      • 未加入域的      Windows 8.1 客户端

导出证书的步骤:

· 1.  单击 Start,然后单击 Run
2.  输入 MMC
3.  从 File菜单中选择Add/Remove Snap-in
4.  在 Available snap-ins 列表中选择 Certificates,然后单击 Add。Certificates Snap-in Wizard 启动。
5.  选择 Computer account,然后单击 Next
6.  选择 Local computer: (the computer this console is running on) ,然后单击 Finish
7.  单击 OK
8.  展开 Console Root\Certificates (Local Computer)\Personal\Certificates
9.  右键单击 Certificates,选择 All Tasks,然后选择 Export...

clip_image074

逐页浏览 Certificate Export Wizard。

clip_image076

导出私钥。

clip_image078

使用默认选项。

clip_image080

输入证书密码。记住所使用的密码,因为稍后将证书导入其他设备时需要使用该密码。

clip_image082

输入证书位置和名称,然后完成向导。

clip_image084

管理私钥设置

AD FS 服务帐户需要权限才能访问新证书的私钥。您应当在通信证书到期替换它时再次赋予该权限。如要管理私钥设置,执行以下步骤:

1.单击 Start,然后单击 Run

2. 输入 MMC

3. 从 File 菜单中选择 Add/Remove Snap-in

4. 在 Available snap-ins 列表中选择 Certificates,然后单击 Add。Certificates Snap-in Wizard 启动。

5. 选择 Computer account,然后单击 Next

6. 选择 Local computer: (the computer this console is running on) ,然后单击 Finish

7. 单击 OK

8. 展开 Console Root\Certificates (Local Computer)\Personal\Certificates

9. 右键单击 Certificates,选择 All Tasks,然后选择 Manage Private Keys

10. 添加运行 AD FS 服务的帐户,然后至少将读权限提供给该帐户。

如果您没有管理私钥的选项,可能需要运行以下命令:
certutil -repairstore my *

屏幕截图

clip_image085

clip_image087

clip_image089

clip_image091

 

验证 AD FS 是否运行

1. https://blueadfs.contoso.com/federationmetadata/2007-06/federationmetadata.xml.

在您的浏览器窗口中,如果您可以看到联合服务器元数据,而没有任何安全套接字层 (SSL) 错误或警告,则您的联合服务器是可运行的。

clip_image093

clip_image095

 

2. 您还可以浏览到 AD FS 登录页面,其中联合身份验证服务名称附带有 adfs/ls/idpinitiatedsignon.htm,例如 https://blueadfs.contoso.com/adfs/ls/idpinitiatedsignon.htm。该条目显示。

clip_image097

clip_image099

clip_image101

 

设置工作文件夹

预安装工作
      • 运行      Windows Server 2012 R2 的一台用于工作文件夹的虚拟机/服务器
      • 加入域
      • 有效网络配置

在我们的测试环境中,我们将要运行工作文件夹的虚拟机加入了 Contoso 域,并且如下设置了网络接口。如果您要设置虚拟机,请记住,默认网关是主机上虚拟网络适配器的 IP 地址(在本例中是 192.168.0.1)。

设置服务器 IP 地址

服务器 IP 改为静态 IP,对于这篇博文,我将使用 A 类 IP,即 192.168.0.170 / 子网掩码:255.255.0.0 / 默认网关:192.168.0.1 / 首选 DNS:192.168.0.150(您的域控制器的 IP 地址)

在 AD 中为工作文件夹创建 cname 记录

在您的 DC 中,打开 DNS 服务器。

 

展开 Forward Lookup Zones,右键单击您的域并选择 New Alias (CNAME)。

New Resource Record 窗体会打开。在 Alias name 字段中输入别名 “workfolders”。在 Fully qualified domain name 字段中,输入工作文件夹服务器的完全限定的域名,例如 2012R2-WF.contoso.com。

用于完成以上工作的 PowerShell 命令如下所示。必须在您的域控制器上执行这些命令。

 

Add-DnsServerResourceRecord  -ZoneName "contoso.com" -Name workfolders -CName  -HostNameAlias 2012R2-wf.contoso.com

安装 AD FS 证书
复制设置 AD FS 时创建的 AD FS 证书,并将 AD FS 证书安装到本地计算机证书存储中。为此,执行以下步骤:

1.  单击 Start,然后单击 Run
2.  输入 MMC
3.  从 File 菜单中选择 Add/Remove Snap-in
4.  在 Available snap-ins 列表中选择 Certificates,然后单击 Add。Certificates Snap-in Wizard 启动。
5.  选择 Computer account,然后单击 Next
6.  选择 Local computer: (the computer this console is running on) ,然后单击 Finish
7.  单击 OK
8.  展开 Console Root\Certificates (Local Computer)\Personal\Certificates
9.  右键单击 Certificates,选择 All Tasks,然后选择 Import

在我们的测试环境中,我们将使用一个自签名证书。需要注意的是,AD FS 不支持 CNG 证书,这意味着您不能使用 PowerShell 命令 New-SelfSignedCertificate 创建自签名证书。随附的压缩文件包含一个名为 makecert.ps1 的 PowerShell 脚本文件,该脚本将创建一个对 AD FS 有效的自签名证书,并提示输入创建证书所需的 SAN 名称。

创建工作文件夹自签名证书

1. 将 makeCert.ps1 文件复制到 AD FS 计算机。

2. 打开管理员 PowerShell 窗口。

3. 将执行策略设置为 unrestricted。

PS C:\temp\scripts> Set-ExecutionPolicy -ExecutionPolicy Unrestricted

4. 将路径改变至将脚本复制到的目录。

5. 执行 makeCert 脚本。

PS C:\temp\scripts> .\makecert.ps1

6. 当系统提示更改证书使用者时,为使用者输入新值。在我们的示例中,这个值是 workfolders.contoso.com。

7. 当系统提示输入 SANS 时,键入 Y,然后键入 SAN 名称(一次键入一个名称),例如 workfolders.contoso.com <return> 2012R2-WF.contoso.com <return>。键入所有 SAN 名称之后,在空行上按回车键。

8. 当系统提示安装证书到受信任的根证书颁发机构时,键入 Y。

工作文件夹证书需要是具有以下值的 SAN 证书:

workfolders.<domain>

<machine name>.<domain>

例如:

workfolders.contoso.com

2012R2-WF.contoso.com

安装工作文件夹

启动 Add Roles and Features Wizard 并选择 Next。

选择“Role-based or feature based installation(基于角色或基于功能的安装)”。

选择当前服务器并单击 Next。

在 Server Roles 中,打开 File and Storage Services 角色,展开 File and iSCSI Services 角色并选择 Work Folders。

也可以选择安装 IIS 管理工具。这些工具将提供一些 PowerShell 管理脚本来简化工作文件夹证书的绑定。将工作文件夹证书绑定到用于SSL 的端口将需要使用 PowerShell 或 cmdline。

在 IIS 的 Role Services 页面上,启用 Management scripts and Tools。

在确认页面上,单击 Install。

配置工作文件夹

安装工作文件夹之后,我们需要通过配置工作文件夹完成设置。

打开服务器管理器,选择 File and Storage Services 和 Work Folders。

单击 Work Folders 窗口中的链接,创建同步共享。

在第一个页面上单击 Next。

选择服务器并为要存储的工作文件夹数据输入路径。

如果路径不存在,系统会提示您是否想要创建路径。

在 User Folder Structure 页面上,选择 User alias,然后单击 Next。

在 Sync Share Name 选项卡中,输入同步共享的名称。对于我们的示例,我们使用了 WorkFolders。单击 Next。

在 Sync Access 页面上,添加有权限访问新同步共享的用户或组。对于我们的示例,我们向所有域用户都授予了访问权限。添加完成后单击 Next。

在 Device Policies 页面上,选择“Encrypt Work Folders(加密工作文件夹)”和“Automatically lock screen and require a password(自动锁定屏幕,并要求输入密码)”。单击Next。

在 Confirmation 页面上,单击 Create 完成工作文件夹的配置。

安装后工作

如要完成工作文件夹的设置,还需要再执行两个步骤。

· 将工作文件夹证书绑定到 SSL 端口

· 配置工作文件夹以使用 AD FS 身份验证

· 导出工作文件夹证书(如果使用自签名证书)

绑定证书

工作文件夹仅通过 SSL 进行通信,因而需要将先前创建的自签名证书(或者您的 CA 颁发的证书)绑定到端口。

有两种通过 PowerShell 将证书绑定到端口的方法。一种方法是使用 IIS 命令,另一种方法是使用 nethsh。

使用 netsh 绑定证书

如要使用 PowerShell 中的 netsh,您需要发送命令到 netsh。以下示例将查找使用者为 “workfolders.contoso.com” 的证书并使用 netsh 将其绑定到端口 443。

 

        $subject = "workfolders.contoso.com"

     Try

    {

     #如果多个证书的使用者相同,获取最新的版本

     $cert = Get-ChildItem CERT:\LocalMachine\My |where {$_.Subject -match $subject} |sort $_.NotAfter -Descending | select -first 1 

     $thumbprint = $cert.Thumbprint

     $Command = "http add sslcert ipport=0.0.0.0:443 certhash=$thumbprint appid={CE66697B-3AA0-49D1-BDBD-A25C8359FD5D} certstorename=MY"

     $Command | netsh

    }

    Catch

    {

      "        Error: unable to locate certificate for $($subject)"

        Exit

    }

使用 IIS 命令绑定证书

第二种绑定证书的方式是使用 IIS 管理命令,如果您安装了 Web 管理工具和脚本,那么就可以使用 IIS 管理命令。注意,这不会在工作文件夹服务器上启用全部 IIS 命令,仅启用管理命令。这样做可能有一些好处,比方说您寻求通过命令提供从 netsh 获得的功能。当通过 New-WebBinding 命令将证书绑定到端口时,它被绑定到端口,而且该绑定不依赖于 IIS。执行绑定之后,您甚至可以删除 Web-Mgmt-Console 功能,而证书仍然会绑定到端口,而且可通过 netsh 进行验证,方法就是键入 netsh http show sslcert。

以下示例适用于工作文件夹,使用 New-WebBinding 查找使用者为 “workfolders.contoso.com” 的证书并将其绑定到端口 443。

 

   $subject = "workfolders.contoso.com"

    Try

{

#如果多个证书的使用者相同,获取最新的版本

     $cert =Get-ChildItem CERT:\LocalMachine\My |where {$_.Subject -match $subject } |sort $_.NotAfter -Descending | select -first 1  

     $thumbprint = $cert.Thumbprint

New-WebBinding -Name "Default Web Site" -IP * -Port 443 -Protocol https

#需要为绑定使用默认的 IIS 网站名称,由于工作文件夹使用可承载 Web 核心及其自己的配置文件和网站名称,‘ECSsite’ 不支持命令,因此解决方法就是使用默认的 IIS 网站名称,尽管未启用 IIS,NewWebBinding 命令会寻找默认 IIS 配置文件中的站点。  

 Push-Location IIS:\SslBindings

     Get-Item cert:\LocalMachine\MY\$thumbprint | new-item *!443

     Pop-Location

    }

    Catch

    {

              "        Error: unable to locate certificate for $($subject)"

        Exit

    }

设置 AD FS 身份验证

如要配置工作文件夹来使用 AD FS 进行身份验证,您需要打开服务器管理器。选择 Servers,在主面板中选择您的服务器,右键单击该服务器调出上下文菜单。从上下文菜单中选择 Work Folders Settings。

 

在 Work Folder Settings 窗口中,选择 Active Directory Federation Services 并键入联合身份验证服务 URL,然后单击 Apply。在我们的示例中该 URL 是

https://blueadfs.contoso.com

通过 PowerShell 完成身份验证设置的命令是:

Set-SyncServerSetting -ADFSUrl "https://blueadfs.contoso.com"

如果您要为 AD FS 设置自签名证书,可能会收到以下错误消息,指出联合身份验证服务 URL 不正确、无法访问或未设置依赖方信任。

如果未在工作文件夹上安装 AD FS 证书或者如果没有正确设置面向 AD FS 的 CNAME,也会发生该错误。

 

导出证书

需要导出自签名工作文件夹证书并将其安装在测试环境中的以下计算机上:

      • Web 应用程序代理
      • 加入域的      Windows 8.1 客户端
      • 未加入域的      Windows 8.1 客户端

导出证书的步骤:

1.  单击 Start,然后单击 Run
2.  输入 MMC
3.  从 File 菜单中选择 Add/Remove Snap-in
4.  在 Available snap-ins列表中选择Certificates,然后单击 Add。Certificates Snap-in Wizard 启动。
5.  选择 Computer account,然后单击Next
6.  选择 Local computer: (the computer this console is running on) ,然后单击 Finish
7.  单击 OK
8.  展开 Console Root\Certificates (Local Computer)\Personal\Certificates
9.  右键单击 Certificates,选择 All Tasks,然后选择 Export...

逐页浏览 Certificate Export Wizard。

导出私钥。

使用默认选项。

输入证书密码。记住所使用的密码,因为稍后将证书导入其他设备时需要使用该密码。

输入证书位置和名称,然后完成向导。

设置 Web 应用程序代理

预安装工作
安装 AD FS 和工作文件夹证书
将设置 AD FS 和工作文件夹时分别创建的 AD FS 和工作文件夹证书复制到要安装 Web 应用程序代理角色的计算机,并将证书安装到本地计算机证书存储中。为此,执行以下步骤:

1.  单击 Start,然后单击 Run
2.  输入 MMC
3.  从 File 菜单中选择 Add/Remove Snap-in
4.  在 Available snap-ins 列表中选择 Certificates,然后单击 Add。Certificates Snap-in Wizard 启动。
5.  选择 Computer account,然后单击 Next
6.  选择 Local computer: (the computer this console is running on) ,然后单击 Finish
7.  单击 OK
8.  展开 Console Root\Certificates (Local Computer)\Personal\Certificates
9.  右键单击 Certificates,选择 All Tasks,然后选择 Import

10.  展开 Console Root\Certificates (Local Computer)\Trusted Root Certification Authorities\Certificates
11.  右键单击 Certificates,选择 All Tasks,然后选择 Import

安装 Web 应用程序代理

在您计划安装 Web 应用程序代理的服务器上,打开服务器管理器并启动 Add Roles and Features Wizard。

在向导的第一个页面上单击 Next。

在向导的第二个页面上单击 Next。

在向导的第三个页面上选择您的服务器,然后单击 Next。

在 Server Roles 页面上,选择 Remote Access 角色。

在 Role Services 页面上,选择 Web Application Proxy。

一个确认对话框会立即弹出来,单击 Add Features。

配置 Web 应用程序代理

如要配置 Web 应用程序代理,选择服务器管理器顶部的警告标志,这会显示一个用于打开 Web Application Proxy Wizard 的链接。

在欢迎界面上单击 Next。

在 Federation Server 页面上,输入联合身份验证服务名称的地址。在我们的示例中,这个地址是 blueadfs.contoso.com。

向导还要求输入联合服务器上本地管理员帐户的凭据。不要输入域凭据,例如 contoso\administrator,而要输入本地凭据,例如 administrator。

在 AD FS Proxy certificate 页面上,选择先前导入的 AD FS 证书,然后单击 Next。

在我们的示例中,这个证书是 blueadfs.contoso.com。

一个确认页面会显示,展示将为配置服务而执行的 PowerShell 命令。向导中不提供支持 Web 应用程序代理使用 OAuth 的选项,需要通过 PowerShell 完成这一设置。步骤参见配置后工作一节。

如果 Web 应用程序代理上未启用 OAuth,连接到 Web 应用程序代理的客户端将收到一条错误消息,指出“Data in the stream is not in the proper format (0x80c81000)(流中的数据未采用正确的格式)”。

clip_image086

一旦配置完成,Results 页面将显示。关闭窗口。

clip_image088

下一步是发布工作文件夹 Web 应用程序。

在服务器管理器中,转到 Tools,选择 Remote Access 打开远程访问管理控制台。

在管理控制台左侧的 Configuration 下选择 Web Application Proxy,然后在右侧 Tasks 下单击 Publish 。Publish New Web Application Wizard 将打开。

发布工作文件夹 Web 应用程序

在欢迎页面上,单击 Next。

clip_image090

在向导的 Preauthentication 页面上,选择 Active Directory Federation Services。

clip_image092

在 Relying Party 页面上,选择 Work Folders 并单击 Next。将该列表从 AD FS 发布到 Web 应用程序代理。

clip_image094

在 Publishing Settings 页面上,输入以下信息:

      • Web 应用程序的名称
      • 工作文件夹的外部 URL
      • 选择工作文件夹证书
      • 工作文件夹的后端 URL

默认情况下,向导会将后端 URL 设置得与外部 URL 一样。

在我们的示例中,我们将使用以下值:

Name:WorkFolders

External URL:https://workfolders.contoso.com

External certificate:先前安装的工作文件夹证书

Backend server URL:https://workfolders.contoso.com

clip_image096

 

确认页面将显示完成同一配置的等效 PowerShell 脚本。单击 Publish 完成工作文件夹 Web 应用程序的发布。

clip_image098

如果发布成功,您会看到如下所示的确认页面。

clip_image100

安装后工作

如要完成 Web 应用程序代理的设置,还需要再执行一个步骤。必须配置 Web 应用程序代理来使用 OAuth。为此,在 Web 应用程序代理服务器上打开管理员 PowerShell 窗口并执行以下命令。

 

Get-WebApplicationProxyApplication -Name <web app name>|Set-WebApplicationProxyApplication  -UseOAuthAuthentication 

在我们的示例中,使用以下命令。

 

Get-WebApplicationProxyApplication -Name WorkFolders|Set-WebApplicationProxyApplication  -UseOAuthAuthentication 

如前所提,不这样做会导致连接到 Web 应用程序代理的客户端收到一条错误消息,指出“Data in the stream is not in the proper format (0x80c81000)(流中的数据未采用正确的格式)”。

设置加入域的 Windows 8.1 客户端

预安装工作
安装 AD FS 和工作文件夹证书
将设置 AD FS 和工作文件夹时分别创建的 AD FS 和工作文件夹证书复制到要安装 Web 应用程序代理角色的计算机,并将证书安装到本地计算机证书存储中。为此,执行以下步骤:

1.  单击 Start,然后单击 Run
2.  输入 MMC
3.  从 File 菜单中选择 Add/Remove Snap-in
4.  在 Available snap-ins 列表中选择 Certificates,然后单击 Add。Certificates Snap-in Wizard 启动。
5.  选择 Computer account,然后单击 Next
6.  选择 Local computer: (the computer this console is running on) ,然后单击 Finish
7.  单击 OK
8.  展开 Console Root\Certificates (Local Computer)\Personal\Certificates
9.  右键单击 Certificates,选择 All Tasks,然后选择 Import

10.  展开 Console Root\Certificates (Local Computer)\Trusted Root Certification Authorities\Certificates
11.  右键单击 Certificates,选择 All Tasks,然后选择 Import

配置

打开控制面板并选择 Work Folders。

clip_image103

选择 Set up Work Folders。

clip_image105

然后可以使用用户的电子邮件地址 (mbutler@contoso.com) 或工作文件夹 URL (https://workfolders.contoso.com) 设置工作文件夹。按照您选择的机制设置工作文件夹,然后单击 Next。

 

clip_image107

clip_image109

然后您会收到来自 AD FS 的凭据提示。在内部部署客户端,提示页面使用 Windows 集成身份验证。而外部部署客户端的质询页面则使用 OAuth,用户会看到一个不同的页面。

clip_image111

完成身份验证之后,Introducing Work Folders 窗口会显示。在该页面上,您可以更改 Work Folders 文档位置。单击 Next。

clip_image113

然后您会看到一个窗口,其中显示我们在工作文件夹服务器上设置的安全策略。单击 Next。

clip_image115

然后您会看到一条消息,表明工作文件夹已经开始与您的 PC 同步。单击 Close。

clip_image117

Manage Work Folders 面板会打开,显示空间量、同步状态等信息。在该面板上,如有需要您可以重新输入您的凭据。关闭窗口。

clip_image119

您的 Work Folders 文件夹也会自动打开。您可以从这里添加要在设备之间同步的内容。我们将在加入域的计算机上添加一个 Test 文件,并在未加入域的计算机上设置工作文件夹。

clip_image121

设置未加入域的 Windows 8.1 客户端

预安装工作
安装 AD FS 和工作文件夹证书
将设置 AD FS 和工作文件夹时分别创建的 AD FS 和工作文件夹证书复制到要安装 Web 应用程序代理角色的计算机,并将证书安装到本地计算机证书存储中。为此,执行以下步骤:

1.  单击 Start,然后单击 Run
2.  输入 MMC
3.  从 File 菜单中选择 Add/Remove Snap-in
4.  在 Available snap-ins 列表中选择 Certificates,然后单击 Add。Certificates Snap-in Wizard 启动。
5.  选择 Computer account,然后单击 Next
6.  选择 Local computer: (the computer this console is running on) ,然后单击 Finish
7.  单击 OK
8.  展开 Console Root\Certificates (Local Computer)\Personal\Certificates
9.  右键单击 Certificates,选择 All Tasks,然后选择 Import

10.  展开 Console Root\Certificates (Local Computer)\Trusted Root Certification Authorities\Certificates
11.  右键单击 Certificates,选择 All Tasks,然后选择 Import

更新 Hosts 文件

在我们的演示环境中,需要更新未加入域的客户端上的 hosts 文件。

需要为 hosts 文件中的以下参数提供值:

workfolders..<domain>

<AD FS service name>.<domain>

enterpriseregistration.<domain>

在我们的示例中,我们将使用以下值:

10.0.0.10 workfolders.contoso.com

10.0.0.10 blueadfs.contoso.com

10.0.0.10 enterpriseregistration.contoso.com

clip_image123

然后可以使用用户的电子邮件地址 (mbutler@contoso.com) 或工作文件夹 URL (https://workfolders.contoso.com) 设置工作文件夹。按照您选择的机制设置工作文件夹,然后单击 Next。

clip_image124

clip_image125

然后您会收到来自 AD FS 的凭据提示。外部部署客户端的质询页面将使用 OAuth,不同于用户会在内部部署客户端看到的页面。

clip_image127

完成身份验证之后,Introducing Work Folders 窗口会显示。在该页面上,您可以更改 Work Folders 文档位置。单击 Next。

然后您会看到一个窗口,其中显示我们在工作文件夹服务器上设置的安全策略。单击 Next。

clip_image128

然后您会看到一条消息,表明工作文件夹已经开始与您的 PC 同步。单击 Close。

clip_image129

Manage Work Folders 面板会打开,显示空间量、同步状态等信息。在该面板上,如有需要您可以重新输入您的凭据。关闭窗口。

clip_image130

您的 Work Folders 文件夹也会自动打开。您可以从这里添加要在设备之间同步的内容。您还会看到,加入域的 PC 上的文件已经被同步到设备。

这就是从 UI 设置工作文件夹、AD FS 和 WAP 的全部过程(基本如此 )。

通过随附的脚本设置工作文件夹、AD FS 和 WAP

随附的脚本将使您能够在 30 分钟内设置和部署整个环境。如果您已经设置好了虚拟机/服务器(例如,域加入、网络设置等),那么配置所需时间不到 12 分钟。整个过程是受输入输出限制的,所以您的配置用时可能有所不同。我的一位同事有一台非常强大的笔记本电脑(配备有 i7 ivy bridge 处理器,32GB 内存和一个 SSD),他在 4 分 30 秒内完成了全部配置。

在这里 下载脚本

此脚本基于这样的假设:您有一个干净的环境,并且已经设置了 DC。此脚本旨在从 VM 主机运行,使用远程 PowerShell 来配置环境中的所有计算机,所以您无需远程连接到任何计算机来设置它们。

主要有三个步骤/脚本文件要执行:

· setHostNetworkAdapters.ps1 – 此脚本将设置主机上的虚拟交换机,并将虚拟网络适配器配置为每个网络的默认网关。

· provisionEnvironment.ps1 – 此脚本将通过下载的 ISO 创建环境所需的 VM,并且完成每台机器上 OS 的设置,这包括使用无人参与的 xml 文件酌情设置 VM 网络地址和域加入。

· setupEnvironment.ps1 – 此脚本将设置和配置 AD FS、工作文件夹、WAP 和两台客户机。

先决条件
      • 运行      Windows Server 2012R2 的 Active      Directory 林(最好启用 DNS,但并非必需),包含用户和组。
      • 面向      Windows Server 2012R2 Datacenter 的 ISO
    1. 面向      Windows 8.1 Enterprise 的 ISO

https://technet.microsoft.com/en-US/evalcenter/hh699156

在脚本中,DNS 服务器的 IP 地址被设置为 192.168.0.150。如果您的 DC 有不同的 IP 地址,您就需要相应地更新脚本。

配置虚拟交换机

setHostNetworkAdapters.ps1 脚本将在主机上创建虚拟交换机,并设置 IP 地址、子网和 DNS 地址。

应当将网络适配器设置为各个虚拟网络的网关地址。这样一来主机便可访问 VM,反之亦然。这是从主机对网络上的 VM 运行远程 PowerShell 脚本的关键。

此脚本有一个名为 setNetworkAdapter 的函数,用于设置虚拟交换机,配置其 IP 地址、子网和 DNS 值。

如要调用该函数,您需要传入以下参数:

· 要创建的交换机的名称

· 网关 IP 地址(网关 IP 应当是网络中的第一个可用地址,例如 XXX.XXX.XXX.1)

· 子网的八进制数

· DNS 服务器的 IP 地址(可选,但应当在 DC 所在的 VM 网络上加以配置)

此脚本当前的配置是为 Contoso 和 Fabrikam 创建交换机。

 

setNetworkAdapter "ID_AD_NETWORK-Contoso"  192.168.0.1 24 192.168.0.150

 

setNetworkAdapter "ID_AD_NETWORK-FABRIKAM"  10.0.0.1 24 

运行脚本之后,虚拟交换机将被创建,而且网络适配器会得到配置。

Contoso

Fabrikam

clip_image132

clip_image134

如果您已经部署了一个 DC,那么您极有可能至少已经有一个虚拟交换机和网络设置。如果确实如此,检查确保将主机为虚拟网络使用的网络适配器上的 IP 地址配置为网关地址。

配置环境

provisionEnvironment.ps1 脚本的作用是:

· 为服务器端和客户端 VM 磁盘创建基准引用。服务器基准磁盘将装载 Windows Server 2012R2 Datacenter,客户端基准磁盘将装载 Windows 8.1 Enterprise。

· 配置每台 VM 上的网络适配器

· 域加入 – 在合适的情况下

·在每台 VM 上启用 CredSSP

您必须以管理员身份从 PowerShell 窗口运行此脚本,否则它不管用。

首次运行脚本时,创建每个基准差异磁盘需要大约 8 分钟。在随后的运行中,您完全可以重用先前创建的基准 VHD。

配置完成之后,您将拥有如下所示的一组差异磁盘。如果您想重新创建环境,可以删除基准磁盘之上的差异磁盘,并重用现有的基准磁盘。基准磁盘很干净,仅包含 OS。

服务器端   VHD

客户端   VHD

clip_image136

 clip_image138

VM 的设置和配置通过加载到每台 VM 上的一个无人参与的 XML 文件完成。

启用 CredSSP 的方式是,创建 SetupComlete.cmd 文件并将其推送到 Windows\Setup\Scripts 目录中。VM 启动时,它会执行 setupcomplete.cmd 文件。

配置脚本

此脚本从一个名为 vms.txt 的 csv 文件中获取构建 VM 所需的计算机列表。

该文件的内容如下所示:

machine,server,DJ,name,memory,network1,ip1,dns1,network2,ip2,dns2

DC,Y,Y,2013R2-DC,1524,ID_AD_NETWORK-FABRIKAM,192.168.0.150/24,127.0.0.1,,,

WAP,Y,N,2012R2-WAP,1524,ID_AD_NETWORK-Contoso,192.168.0.254/24,192.168.0.150,ID_AD_NETWORK-FABRIKAM,10.0.0.10/24,

ADFS,Y,Y,2012R2-ADFS,1524,ID_AD_NETWORK-Contoso,192.168.0.160/24,192.168.0.150,,,

WF,Y,Y,2012R2-WF,1524,ID_AD_NETWORK-Contoso,192.168.0.170/24,192.168.0.150,,,

client1,N,Y,client1,1524,ID_AD_NETWORK-Contoso,192.168.0.120/24,192.168.0.150,,,

client2,N,N,client2,1524,ID_AD_NETWORK-FABRIKAM,10.0.0.20/24,,,,

csv 结构的定义如下:

字段

定义

machine

标识行的键值

server

计算机是否是服务器,Y=   是,N=否

DJ

计算机是否加入了域,Y=是,N=否

Name

名称

Memory

内存量 (MB)

network1

要为   VM 的第一个网络适配器使用的网络名称

ip1

要为   VM 的第一个网络适配器使用的 IP   地址

dns1

要为   VM 的第一个网络适配器使用的 DNS 地址

network2

要为   VM 的第二个网络适配器使用的网络名称(可选)

ip2

要为   VM 的第二个网络适配器使用的 IP 地址(可选)

dns2

要为   VM 的第二个网络适配器使用的 DNS 地址(可选)

脚本变量

在此脚本中还有用于以下字段的变量:

      • ISO 文件的位置
      • 用于存储基准磁盘的位置
      • 用于存储将创建的 VHD      的位置
      • 域管理员名称和密码
      • 未加入域的计算机的本地管理员名称和密码

$serverISOpath = "E:\isos\Windows_Server_2012_R2-Datacenter_Edition–§CEN-US-X64.ISO"

$serverInstallImage = "Windows Server 2012 R2 SERVERDATACENTER"

$clientInstallImage = "Windows 8.1 Enterprise"

$clientISOpath = "E:\isos\Windows_8.1_Enterprise_EN-US_x64.ISO"

$serverDiffDiskpath = "E:\vhdx\serverbase.vhdx"

$clientDiffDiskpath = "E:\vhdx\clientbase.vhdx"

$vmpath = "E:\vhdx"

#VM variables

$domain = "contoso.com"

$domainpassword = "pass@word1"

$domainadmin = "administrator"

$localadminpassword = "pass@word1"

$localadmin = "administrator"

$contosogateway = "192.168.0.1"

$fabrikamgateway = "10.0.0.1"

配置环境

configureEnvironment.ps1 脚本的作用是:

· 在所有加入域的服务器上启用 CredSSP

· 配置 AD FS、工作文件夹和 WAP

· 配置两台 Windows 8.1 客户端(一台加入了域,一台未加入域)

您必须以管理员身份从 PowerShell 窗口运行此脚本,否则它不管用。

脚本运行完之后,您将拥有一个如下所示的环境。

配置脚本
服务器

此脚本从一个名为 servers.txt 的 csv 文件中获取构建服务器所需的计算机列表。

该文件的内容如下所示。

server,name,ip,ip2

WAP,2012R2-WAP.contoso.com,192.168.0.254,10.0.0.10

ADFS,2012R2-ADFS.contoso.com,192.168.0.160

WF,2012R2-WF.contoso.com,192.168.0.170

AD,2013R2-DC.contoso.com,192.168.0.150

csv 结构的定义如下:

字段

定义

server

标识行的键值,不要更改此值

name

计算机的 FQDN

Ip

VM 的第一个网络适配器的   IP 地址

Ip2

VM 的第二个网络适配器的   IP 地址(可选)

客户端

此脚本从一个名为 clients.txt 的 csv 文件中获取构建客户端所需的计算机列表。

该文件的内容如下所示。

client,name,ip

domainjoined,client1,192.168.0.120

nondomainjoined,client2,10.0.0.20

csv 结构的定义如下:

字段

定义

server

标识行的键值,不要更改此值

name

计算机的 Bios 名称

Ip

VM 的第一个网络适配器的   IP 地址

Ip2

VM 的第二个网络适配器的   IP 地址(可选)

脚本变量

在此脚本中还有用于以下字段的变量:

      • AD      FS 显示名称
      • AD      FS 服务名称
      • AD      FS 证书使用者名称
      • 工作文件夹证书使用者名称
      • 用于      enterpriseregistration 的地址
      • 要在工作文件夹服务器上创建的共享的名称
      • 要在工作文件夹服务器上创建的共享的路径
      • 要添加到工作文件夹共享的组的名称     
      • 工作文件夹的依赖方信任名称
      • 导出和导入证书时要用的密码
      • 用于以下对象的用户名和密码:
      • Web       应用程序代理
      • 主机
      • Contoso       管理员
      • 未加入域的客户机
      •  

$ADFSdisplayName = "Contoso Corporation"

 

$ADFSService = "Contoso\ADFSService"

 

$ADFSCertificateSubject = "blueadfs.contoso.com"

 

$WFCertificateSubject = "workfolders.contoso.com"

 

$EnterpriseRegistrationAddress ="enterpriseregistration.contoso.com"

 

$WFShareName = "TestShare"

 

$WFSharePath = "c:\TestShare"

 

$WFShareGroup = "Contoso\Domain Users"

 

$RelyingPartyTrustWFDisplayName = "WorkFolders"

$domain = "contoso.com"

 

$CertPassword = "pass@word1" | ConvertTo-SecureString -AsPlainText –Force

 

$SecurePassword = "pass@word1" | ConvertTo-SecureString -AsPlainText –Force

 

$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList"contoso\administrator",$SecurePassword

 

$WAPPassword  = "pass@word1" | ConvertTo-SecureString -AsPlainText –Force

 

$WAPcredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "administrator",$WAPPassword

 

$hostpassword = “pass@word1" | ConvertTo-SecureString -AsPlainText –Force

 

$hostcredential =  New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "hostserver\mbutler",$hostpassword

 

$ndjpassword = "pass@word1" | ConvertTo-SecureString -AsPlainText –Force

 

$ndjcredential =  New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "administrator",$ndjpassword

设置 AD FS

setupadfs 函数的作用是:

      • 通过      PowerShell      在 DC 中创建      CNAME 条目(blueadfs.contoso.com      和      enterpriseregistration.contoso.com)
      • 通过远程      PowerShell      安装 AD      FS
      • 为 AD      FS 创建和安装自签名 SAN      证书
      • 创建 AD      FS 托管服务帐户
      • 安装 AD      FS 场
      • 为工作文件夹设置 AD      FS 依赖方信任
      • 授予 AD      FS 托管服务帐户读取证书私钥的权限
      • 启用设备注册
      • 将创建的证书导出到主机

AD FS 证书的 SAN 值读取自名为 adfssans.txt 的 csv 文件。证书的 SAN 值必须包含 AD FS 服务名称和用于 enterpriseregistration 的地址。

<ADFS Service name>.<domain>

enterpriseregistration.<domain>

提供的 csv 中的值是:

blueadfs.contoso.com

enterpriseregistration.contoso.com

2012R2-ADFS.contoso.com

设置工作文件夹

setupWF 函数的作用是:

      • 通过      PowerShell      在 DC 中创建      CNAME 条目      (workfolders.contoso.com)
      • 将 AD      FS 证书安装到工作文件夹 VM 中
      • 为工作文件夹创建和安装自签名 SAN      证书
      • 安装工作文件夹
      • 为      $WFShareGroup 中定义的组创建同步共享
      • 将同步共享策略设置为需要加密和密码自动锁定
      • 在同步共享上启用 SMB      访问
      • 将创建的证书绑定到端口      443
      • 设置工作文件夹 AD      FS URL
      • 将创建的工作文件夹证书导出到主机

工作文件夹证书的 SAN 值读取自名为 wfsans.txt 的 csv 文件。W 证书的 SAN 值读取自名为 adfssans.txt 的 csv 文件。证书的 SAN 值必须包含工作文件夹:workfolders.<domain>

提供的 csv 中的值是:

workfolders.contoso.com

2012R2-wf.contoso.com

设置 Web 应用程序代理

setupWAP 函数的作用是:

      • 将 AD      FS 和工作文件夹证书安装到 WAP      VM
      • 安装配置有 AD      FS 服务名称和 AD      FS 证书的 Web      应用程序代理角色
      • 为使用工作文件夹证书的工作文件夹添加 Web      应用程序代理

Web 应用程序代理设置值获取自名为 webapps.txt 的 csv 文件。该文件的结构如下所示:

App,ExternalURL,BackEndServerURL,ADFSRelyingPartyName,subject

WorkFolders,https://workfolders.contoso.com,https://workfolders.contoso.com,WorkFolders,workfolders.contoso.com

Enterprise Registration,https://enterpriseregistration.contoso.com/EnrollmentServer/,https://enterpriseregistration.contoso.com/EnrollmentServer/,pass-through,blueadfs.contoso.com

csv 结构的定义如下:

字段

定义

App

要为   Web 应用程序名称使用的值

ExternalURL

要为外部地址使用的 URL

BackendURL

要为内部地址使用的 URL

AD FSRelyingPartyName

AD FS 依赖方的名称

subject

用于   Web 应用程序的证书的使用者

设置客户端

setupWorkstation 函数的作用是:

· 将 AD FS 和工作文件夹证书安装到工作站 VM 中

· 取消检查服务器证书吊销。仅需要在使用自签名证书时为工作区加入执行该操作。

如果工作站未加入域,该函数还会更新工作站上 hosts 文件中的以下信息:

workfolders.<domain>

<ADFS service>.<domain>

Enterpriseregistration.<domain>

并且让它们指向 WAP 服务器的 IP 地址。

在我们的示例中,该函数将使用以下值:

10.0.0.10 workfolders.contoso.com

10.0.0.10 blueadfs.contoso.com

10.0.0.10 enterpriseregistration.contoso.com

结束语

希望这篇博文有助于您在测试实验中着手部署 AD FS、工作文件夹和 Web 应用程序代理,从而朝着生产部署目标迈进一步。