将 AD FS 基于声明的身份验证与 Outlook 网页版

在 Exchange Server 组织中安装和配置 Active Directory 联合身份验证服务 (AD FS) 使客户端可以使用 AD FS 基于声明的身份验证连接到 Outlook 网页版 ((以前称为 Outlook Web App) )和 Exchange 管理中心 (EAC) 。 基于声明的标识是身份验证的另一种方法,用于从应用程序中删除身份验证管理,并且通过集中身份验证来简化帐户管理。 启用基于声明的身份验证时,Outlook 网页版 和 EAC 不负责验证用户、存储用户帐户和密码、查找用户标识详细信息或与其他标识系统集成。 集中身份验证有助于将来更轻松地升级身份验证方法。

AD FS 基于声明的身份验证取代了可用于 Outlook 网页版 和 EAC 的传统身份验证方法。 例如:

  • Active Directory 客户端证书身份验证
  • 基本身份验证
  • 摘要式身份验证
  • 窗体身份验证
  • Windows 身份验证

在客户端中为 Outlook 网页版 和 EAC 设置基于 AD FS Exchange Server身份验证涉及以下其他服务器:

  • Active Directory Windows Server 2012角色角色 (或更高版本的域控制器) 。

  • Windows Server 2012或更高版本的 AD FS 服务器 (Active Directory 联合身份验证服务服务器角色) 。 Windows Server 2012 AD FS 2.1,Windows Server 2012 R2 使用 AD FS 3.0。 您必须是 Domain Admins、Enterprise Admins 或本地 Administrators 安全组的成员才能安装 AD FS,以及创建 AD FS 服务器上所需的信赖方信任和声明规则。

  • (可选)Windows Server 2012 R2 或更高版本的 Web 应用程序代理服务器 (远程访问服务器角色,Web 应用程序代理角色服务) 。

    • Web 应用程序代理是企业网络内部的 Web 应用程序的反向代理服务器。 Web 应用程序代理允许许多设备上的用户从企业网络外部访问已发布的 Web 应用程序。 有关详细信息,请参阅 安装和配置用于发布内部应用程序的 Web 应用程序代理

    • 尽管通常建议在外部客户端可以访问 AD FS 时使用 Web 应用程序代理,但通过 Web 应用程序代理使用 AD FS 身份验证时,不支持 Outlook 网页版 中的脱机访问。

    • 在 R2 服务器上安装 Web Windows Server 2012需要本地管理员权限。

    • 配置 Web 应用程序代理服务器之前,需要部署和配置 AD FS 服务器,并且不能将 Web 应用程序代理安装在安装 AD FS 的同一服务器上。

开始前,有必要了解什么?

  • 估计完成此过程的时间:45 分钟。

  • 本主题中的过程基于 R2 Windows Server 2012。

  • 适用于设备的 Outlook 网页版 不支持 AD FS 基于声明的身份验证。

  • 对于组织中Exchange,您需要具有"组织管理"权限。

  • 若要了解本主题中的过程可能适用的键盘快捷键,请参阅 Exchange 管理中心内的键盘快捷键

提示

遇到问题?请访问以下 Exchange 论坛寻求帮助:Exchange ServerExchange OnlineExchange Online Protection

步骤 1:查看 AD FS 的证书要求

AD FS 需要两种基本类型的证书:

  • 服务通信 安全套接字层 (SSL) 证书,用于 AD FS 服务器、客户端、Exchange 服务器和可选的 Web 应用程序代理服务器之间的加密 Web 服务通信。 建议使用由 CA 内部或商业证书颁发机构颁发的 (证书) ,因为所有客户端都需要信任此证书。

  • 令牌签名证书,用于 AD FS 服务器、Active Directory 域控制器和服务器之间的加密Exchange身份验证。 建议使用默认的自签名 AD FS 令牌签名证书。

有关在服务器中创建和导入 SSL 证书Windows,请参阅服务器证书

以下是我们将在此方案中使用的证书的摘要:

" (名称) "主题 (主题、主题备用名称或通配符证书匹配的证书中的 CN) 类型 服务器上必需 备注
adfs.contoso.com 由 CA 颁发 AD FS 服务器

Web 应用程序代理服务器

这是对客户端可见的主机名,因此客户端需要信任此证书的颁发者。
ADFS Signing - adfs.contoso.com 自签名 AD FS 服务器

Exchange服务器

Web 应用程序代理服务器

默认的自签名证书会在可选 Web 应用程序代理服务器的配置过程中自动复制,但您需要手动将其导入到组织中所有 Exchange 服务器的受信任根证书存储中。

默认情况下,自签名令牌签名证书的有效期为一年。 AD FS 服务器配置为在 (过期前自动续订) 替换其自签名证书,但您需要在 Exchange 服务器上重新导入证书。

您可以通过在 AD FS Set-AdfsProperties -CertificateDuration <Days> 服务器的 Windows PowerShell 中运行此命令来延长默认证书过期 (默认值为 365) 。 有关详细信息,请参阅 Set-AdfsProperties

若要从 AD FS > > > > > 管理控制台导出证书,请选择"服务证书",右键单击令牌签名证书,选择"查看证书",单击"详细信息"选项卡,单击"复制到文件"

mail.contoso.com 由 CA 颁发 Exchange服务器

Web 应用程序代理服务器

这是用于加密外部客户端与外部客户端连接的典型证书Outlook 网页版 (IIS 服务Exchange的其他) 。 有关详细信息,请参阅 Exchange 服务的证书要求

有关详细信息,请参阅 AD FS Requirements中的"证书要求"部分

备注

安全套接字层 (SSL) 将由传输层安全性 (TLS) 替代作为用于加密计算机系统之间发送的数据的协议。它们是如此密切相关,以至于术语"SSL"和"TLS"(不带版本)经常互换使用。由于此相似性,Exchange 主题、Exchange 管理中心 和 Exchange 命令行管理程序 中对"SSL"的引用通常用来同时涵盖 SSL 和 TLS 协议。通常,"SSL"仅在提供版本的情况下指的是实际的 SSL 协议(例如,SSL 3.0)。若要找出您应禁用 SSL 协议并切换到 TLS 的原因,请查看防御 SSL 3.0 漏洞

步骤 2:部署 AD FS 服务器

可以使用服务器管理器或Windows PowerShell服务器管理器在目标服务器上安装 Active Directory 联合身份验证服务角色服务。

若要使用服务器管理器安装 AD FS,请按照以下步骤操作:

  1. 在目标服务器上,打开 "服务器管理器", 单击 "管理",然后选择" 添加角色和功能"

    在"服务器管理器"中,单击"管理"以添加角色和功能。

  2. 打开"添加角色和功能向导 "。 除非之前选择了"默认情况下跳过此页",否则您将在"开始之前"页上开始。 单击“下一步”。

    添加角色和功能向导中的"开始之前"页。

  3. 在" 选择安装类型" 页上 ,确认已 选择"基于角色或基于功能"的安装,然后单击"下一步 "

    "添加角色和功能向导"中的"选择目标服务器"页。

  4. 在" 选择目标服务器" 页上,验证服务器选择,然后单击"下一步 "

    "添加角色和功能向导"中的"选择目标服务器"页。

  5. 在" 选择服务器角色" 页上,从 列表中选择"Active Directory 联合 身份验证服务",然后单击"下一步 "

    在"添加角色和功能向导"的"选择服务器角色"页上,选择"Active Directory 联合身份验证服务"。

  6. 在" 选择功能" 页上 ,单击" (接受默认功能选择) 。

    在"添加角色和功能向导"中的"选择功能"页上,单击"下一步"。

  7. "Active Directory 联合身份验证服务 (AD FS) 页上,单击"下一 步"

    "添加角色和功能向导"中的"Active Directory 联合身份验证服务"页。

  8. Windows Server 2012:在"选择 角色服务"页上,单击"下一 (接受默认角色服务选择) 。

  9. 在" 确认安装选择"页上 ,单击"安装 "

    "添加角色和功能向导"中的"确认安装选择"页。

  10. "安装进度 "页上,你可以查看进度栏以验证安装是否成功。 安装完成后,将向导保持打开状态,以便可以在步骤 3b:配置 AD FS 服务器中单击"在此服务器上配置联合身份验证服务"。

在"添加角色和功能向导"中的"安装进度"页上观察进度。

若要Windows PowerShell安装 AD FS,请运行以下命令:

Install-WindowsFeature ADFS-Federation -IncludeManagementTools

步骤 3:配置和测试 AD FS 服务器

您还可以参考此清单来帮助配置 AD FS: 检查表:设置联合服务器

步骤 3a:在域控制器上创建 gMSA

配置 AD FS 服务器之前,需要在 (或更高版本的域控制器) 组Windows Server 2012托管服务帐户。 为此,在域控制器上的提升Windows PowerShell窗口中执行 (Windows PowerShell选择"以管理员角色运行") 。

  1. 运行以下命令:

    Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)
    

    如果命令成功,则返回 GUID 值。 例如:

    Guid
    ----
    2570034b-ab50-461d-eb80-04e73ecf142b

  2. 若要为 AD FS 服务器创建新的 gMSA 帐户,请使用以下语法:

    New-ADServiceAccount -Name <AccountName> -DnsHostName <FederationServiceName> -ServicePrincipalNames http/<FederationServiceName>
    

    此示例为名为 FSgMSA 的联合身份验证服务创建一个名为 FSgMSA 的新 gMSA adfs.contoso.com。 联合身份验证服务名称是客户端可见的值。

    New-ADServiceAccount -Name FSgMSA -DnsHostName adfs.contoso.com -ServicePrincipalNames http/adfs.contoso.com
    

步骤 3b:配置 AD FS 服务器

若要配置 AD FS 服务器,可以使用服务器管理器或 Windows PowerShell。

若要使用服务器管理器,请执行以下步骤:

  1. 如果在"步骤 2: 部署 AD FS 服务器"中使"添加角色和功能向导"在 AD FS 服务器上打开,可以单击"安装进度"页上的"在此服务器上配置联合身份验证服务 "链接。

    在"添加角色和功能向导"的"安装进度"页上,单击"在此服务器上配置联合身份验证服务"。

    如果关闭了"添加角色和功能向导",或者使用 Windows PowerShell 安装 AD FS,则可以通过单击"通知",然后在"部署后配置"警告中单击"在此服务器上配置联合身份验证服务",到达服务器管理器中的同一位置。

    在"服务器管理器"中,单击"通知"以查看包含此服务器上配置 fedration 服务的链接的警告。

  2. 打开 Active Directory 联合身份验证服务 向导。 在" 欢迎 "页上,确认已选中"在联合服务器场中创建 一台联合服务器",然后单击"下一步 "

    Active Directory 联合身份验证服务配置向导中的"欢迎"页。

  3. "连接到 Active Directory 联合身份验证服务"页上,选择 AD FS 服务器所在的域中的域管理员帐户 (默认情况下,选择您的当前凭据) 。 If you need to select a different user, click Change. 完成后,单击“下一步”。

    Active Directory 连接配置向导中的"连接 AD DS"页。

  4. 在" 指定服务属性" 页上,配置以下设置:

    • SSL 证书:导入或选择包含在步骤 3a:在域控制器上创建 gMSA 中配置的联合身份验证服务名称的 SSL (例如) adfs.contoso.com 。 导入服务器上尚未安装的证书时,需要导入 .pfx 文件 (可能是包含证书私钥的受密码保护的文件) 。 此处显示了 (") "字段中"CN"和"CN"值的公用名。

    • 联合身份验证 服务名称:将基于您选择或导入的 SSL 证书类型自动填充此字段:

      • 单个主题证书:将显示证书的 Subject 字段的 CN 值, (例如, adfs.contoso.com) 。

      • SAN 证书:如果证书包含必需的联合身份验证服务名称,则此值 (例如,) adfs.contoso.com 。 可以使用下拉列表查看证书中其他 CN 值。

      • 通配符证书:证书的 Subject 字段的 CN 值将显示为 (例如 *.contoso.com) ,但您需要将该字段更改为必需的联合身份验证服务名称 (例如 adfs.contoso.com ,) 。

      注意:如果您选择的证书不包含必需的联合身份验证服务名称 (则"联合身份验证服务名称"字段不包含必需的) ,您将收到以下错误:

      The federation service name does not match any of the subject names found in the certificate.

    • 联合身份验证服务 显示名称:输入组织的名称。 例如,Contoso, Ltd.

    完成后,单击“下一步”。

    Active Directory 联合身份验证服务配置向导中的"指定服务属性"页。

  5. 在" 指定服务帐户" 页上,配置以下设置:

    • 选择 "使用现有域用户帐户或组托管服务帐户"

    • 帐户名称:单击 "选择 ",然后输入在步骤 3a:在域控制器上创建 gMSA 中创建的 gMSA (例如, FSgMSA) 。 请注意,选择它后,将显示的值 <Domain>\<gMSAAccountName>$ (例如,) CONTOSO\FSgMSA$

    完成后,单击“下一步”。

    Active Directory 联合身份验证服务配置向导中的"指定服务帐户"页。

  6. 在"指定配置数据库"页上,确认已选中"使用此Windows 内部数据库创建数据库",然后单击"下一步 "

    Active Directory 联合身份验证服务配置向导中的"指定配置数据库"页。

  7. 在" 查看选项" 页上,验证您的选择。 You can click View Script button to copy the Windows PowerShell equivalent of the selections that you made for future use. 完成后,单击“下一步”。

    Active Directory 联合身份验证服务配置向导中的"审阅选项"页。

  8. 在" 先决条件检查" 页上,确认所有先决条件检查都成功完成,然后单击"配置 "

    Active Directory 联合身份验证服务配置向导中的"先决条件检查"页。

  9. 在" 结果 "页上,查看结果,验证配置是否成功完成。 如果要 了解完成 联合身份验证服务部署所需的下一步步骤, (例如,配置 DNS) 。 完成后,单击“关闭”。

    Active Directory 联合身份验证服务配置向导中的"结果"页。

若要使用 Windows PowerShell配置 AD FS,请按照以下步骤操作:

  1. 在 AD FS 服务器上运行以下命令,以查找包含 的已安装证书的指纹值 adfs.contoso.com

    Set-Location Cert:\LocalMachine\My; Get-ChildItem | Format-List FriendlyName,Subject,Thumbprint
    
  2. 运行以下命令:

    Import-Module ADFS
    
  3. 使用以下语法:

    Install-AdfsFarm -CertificateThumbprint <ThumbprintValue> -FederationServiceName <FederationServiceName> -FederationServiceDisplayName <FederationServiceDisplayName> -GroupServiceAccountIdentifier <gMSA>
    

此示例使用下列设置配置 AD FS:

  • adfs.contoso.com 证书指纹: 具有 *.contoso.com 指纹值的证书 5AE82C737900B29C2BAC3AB6D8C44D249EE05609

  • 联合身份验证服务名称adfs.contoso.com

  • 联合身份验证显示名称Contoso, Ltd.

  • 联合身份验证 gMSA SAM 帐户名称和域:例如,对于域中命名的 gMSA FSgMSA contoso.com 帐户,所需的值为 contoso\FSgMSA$

Install-AdfsFarm -CertificateThumbprint 5AE82C737900B29C2BAC3AB6D8C44D249EE05609 -FederationServiceName adfs.contoso.com -FederationServiceDisplayName "Contoso, Ltd." -GroupServiceAccountIdentifier "contoso\FSgMSA`$"

注意

  • 创建 gMSA 时, $ 会自动将 追加到 Name 值以创建 SamAccountName 值,此处需要此值。

  • SamAccountName 中 (转义字符) " $ ' "字符

有关详细信息和语法,请参阅 Install-AdfsFarm

步骤 3c:测试 AD FS 服务器

配置 AD FS 后,可以通过在 Web 浏览器中成功打开联合元数据的 URL 来验证 AD FS 服务器上是否安装。 URL 使用语法 https://<FederationServiceName>/federationmetadata/2007-06/federationmetadata.xml。 例如,https://adfs.contoso.com/federationmetadata/2007-06/federationmetadata.xml

步骤 4:在 AD FS 中为用户和 EAC Outlook 网页版信赖方信任和自定义声明规则

  • 在 Exchange 服务器上,owaOutlook 网页版使用名为 的虚拟目录,EAC 使用名为 的虚拟目录ecp

  • 尾部斜杠 () / EAC URL 值中使用的Outlook 网页版斜杠是有意的。 AD FS 信赖方信任和受众 URI Exchange一 点很重要。 它们 必须具有或****两者都必须在 URL 中省略尾部斜杠。 本节中的示例包含 owa 和 ecp owa/ URL 之后尾部斜杠 (和) ecp/

  • 在具有多个 Active Directory eu.contoso.com na.contoso.com 站点(例如, (和) )的组织中,您需要为 Outlook 网页版 和 EAC 的每个命名空间配置信赖方信任。

步骤 4a:在 AD FS 中为用户和 EAC Outlook 网页版信赖方信任

若要在 AD FS 服务器上创建信赖方信任,可以使用 AD FS 管理控制台或 Windows PowerShell。

若要使用 AD FS 管理控制台创建信赖方信任,请按照以下步骤操作:

注意:需要执行这些步骤两次:一次针对 Outlook 网页版,一次针对 EAC。 唯一的区别是步骤 5 和步骤 8 中输入的值 (向导中的"指定显示名称"和"配置 URL") 。

  1. In Server Manager, click Tools, and then select AD FS Management.

    在"服务器管理器"中,选择"工具 > ""AD FS 管理"。

  2. 在 AD FS 管理控制台中,展开" 信任关系" ,然后选择" 信赖方信任"。 在" 操作" 窗格中, 选择"添加信赖方信任"

    在 AD FS 管理控制台中,展开"信任关系",然后选择"操作"窗格中的"添加信赖方信任"。

  3. 打开"添加信赖方信任向导 "。 On the Welcome page, click Start.

    添加信赖方信任向导中的欢迎页面。

  4. 在" 选择数据源" 页上,选择"手动输入 有关信赖方的数据",然后单击"下一步 "

    详细信息Outlook 网页版"添加信赖方信任向导"中的"选择数据源"页中。

  5. 在" 指定显示名称" 页上,配置以下设置:

    • 例如Outlook 网页版

    • 显示名称:键入 Outlook 网页版。

    • 备注: 输入说明。 例如,这是对 的信任 https://mail.contoso.com/owa/

      "添加信赖方信任向导"中的"指定显示名称"页。

    • 对于 EAC

    • 显示名称:键入 EAC。

    • 备注: 输入说明。 例如,这是对 的信任 https://mail.contoso.com/ecp/

    "添加信赖方信任向导"中"选择数据源"页中的 EAC 的详细信息。

    完成后,单击“下一步”。

  6. 在" 选择配置文件" 页上,验证 是否选择了 AD FS 配置文件 ,然后单击"下一步 "

    添加信赖方信任向导中的"选择配置文件"页。

  7. 在" 配置证书 "页上 , (不 指定可选的令牌加密证书,请单击"下一) "。

    添加信赖方信任向导中的"配置证书"页。

  8. 在"配置 URL"页上,选择"启用对被动WS-Federation的支持",在"信赖方WS-Federation 被动协议 URL"中,输入以下信息:

    完成后,单击“下一步”。

    "添加信赖方信任向导"中"配置 URL"页上 EAC 的设置。

  9. 在" 配置标识符" 页上 , (" 信赖方信任标识符"中列出了上一步骤中的 URL,然后单击"下 一) "

    "添加Outlook 网页版信任向导中的"配置标识符"页上的"配置标识符"的设置。

  10. 在"立即配置 多重身份验证?"页上,验证此时是否不希望为此信赖方信任配置多重身份验证设置,然后单击"下一步 "

    现在配置多重身份验证?"添加信赖方信任向导"中的页面。

  11. 在" 选择颁发授权规则 "页上,验证是否选中"允许所有用户访问此 信赖方 ",然后单击"下一步 "

    添加信赖方信任向导中的"选择颁发授权规则"页。

  12. On the Ready to Add Trust page, review the settings, and then click Next to save your relying party trust information.

    "添加信赖方信任向导"中的"准备添加信任"页。

  13. 在" 完成" 页上,取消选中在向导关闭时打开此 信赖 方信任的"编辑声明规则"对话框,然后单击"关闭 "

    添加信赖方信任向导中的"完成"页。

若要使用Windows PowerShell提示创建信赖方信任,请按照以下步骤操作:

  1. 在提升的Windows PowerShell窗口中,运行以下命令:

    Import-Module ADFS
    
  2. 使用以下语法:

    Add-AdfsRelyingPartyTrust -Name <"Outlook on the web" | EAC> -Notes "This is a trust for <OotwURL | EACURL>" -Identifier <OotwURL | EACURL> -WSFedEndpoint <OotwURL | EACURL> -IssuanceAuthorizationRules '@RuleTemplate = "AllowAllAuthzRule" => issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");' -IssueOAuthRefreshTokensTo NoDevice
    

此示例使用下列值为 Outlook 网页版创建信赖方信任:

Add-AdfsRelyingPartyTrust -Name "Outlook on the web" -Notes "This is a trust for https://mail.contoso.com/owa/" -Identifier https://mail.contoso.com/owa/ -WSFedEndpoint https://mail.contoso.com/owa/ -IssuanceAuthorizationRules '@RuleTemplate = "AllowAllAuthzRule" => issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");' -IssueOAuthRefreshTokensTo NoDevice

此示例使用下列值为 EAC 创建信赖方信任:

Add-AdfsRelyingPartyTrust -Name EAC -Notes "This is a trust for https://mail.contoso.com/ecp/" -Identifier https://mail.contoso.com/ecp/ -WSFedEndpoint https://mail.contoso.com/ecp/ -IssuanceAuthorizationRules '@RuleTemplate = "AllowAllAuthzRule" => issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");' -IssueOAuthRefreshTokensTo NoDevice

步骤 4b:在 AD FS 中为用户和 EAC Outlook 网页版声明规则

对于 Outlook 网页版 和 EAC,您需要创建两个声明规则:

  • Active Directory 用户 SID

  • Active Directory UPN

若要在 AD FS 服务器上创建声明规则,可以使用 AD FS 管理控制台或 Windows PowerShell。

若要使用 AD FS 管理控制台创建声明规则,请按照以下步骤操作:

注意:需要执行这些步骤两次:一次针对 Outlook 网页版,一次针对 EAC。 唯一的区别是在第一步中选择的信赖方信任。 该过程中的所有其他值都是相同的。

若要添加所需的声明规则,请执行以下操作:

  1. 在 AD FS 管理控制台中,展开"信任关系",选择"信赖方信任",然后选择"Outlook 网页版或 EAC 信赖方信任"。 在" 操作"窗格中 ,选择 "编辑声明规则"

    在 AD FS 管理控制台中,展开"信任关系",选择"信赖方信任",选择信赖方信任,在"操作"窗格中,单击"编辑声明规则"。

  2. 在打开 的"编辑声明规则 <RuleName> "窗口中,确认"颁发转换规则 "选项卡已 选中,然后单击"添加 规则"

    在"编辑声明规则"窗口中,选择"颁发转换规则"选项卡上的"添加规则"。

  3. 打开"添加转换声明规则向导 "。 在" 选择规则模板 "页上,单击"声明 规则 模板"下拉列表,然后选择"使用 自定义规则 发送声明"。 完成后,单击“下一步”。

    在"添加转换声明规则"向导中的"选择规则模板"页上,选择"使用自定义规则发送声明"。

  4. 在" 配置规则 "页上,输入以下信息:

    • 声明规则名称:输入声明规则的描述性名称。 例如,ActiveDirectoryUserSID。

    • 自定义规则:复制并粘贴以下文本:

      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"), query = ";objectSID;{0}", param = c.Value);
      

    在"添加转换声明规则"向导中的"配置规则"页上,为 Active Directory 用户 SID 配置声明规则设置。

    完成后,单击"完成 "

  5. 返回到" 编辑声明规则" <RuleName> 窗口,验证是否选择了"颁发 转换 规则"选项卡,然后单击"添加 规则"

    在"编辑声明规则"窗口中,选择"颁发转换规则"选项卡上的"添加规则"。

  6. 打开"添加转换声明规则向导 "。 在" 选择规则模板 "页上,单击"声明 规则 模板"下拉列表,然后选择"使用 自定义规则 发送声明"。 完成后,单击“下一步”。

    在"添加转换声明规则"向导中的"选择规则模板"页上,选择"使用自定义规则发送声明"。

  7. 在" 配置规则 "页上,输入以下信息:

    • 声明规则名称:输入声明规则的描述性名称。 例如,ActiveDirectoryUPN。

    • 自定义规则:复制并粘贴以下文本:

      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);
      

    在"添加转换声明规则"向导中的"配置规则"页上,配置 Active Directory UPN 声明规则设置。

    完成后,单击"完成 "

  8. 返回到"编辑 声明规则" <RuleName> 窗口,单击"确定 "

    添加完声明规则后,单击"确定"。

若要Windows PowerShell自定义声明规则,请按照以下步骤操作:

  1. 打开提升Windows PowerShell窗口,然后运行以下命令:

    Import-Module ADFS
    
  2. 使用以下语法:

    Set-AdfsRelyingPartyTrust -TargetName <OotwRelyingPartyTrust | EACRelyingPartyTrust> -IssuanceTransformRules '@RuleName = "ActiveDirectoryUserSID" c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"), query = ";objectSID;{0}", param = c.Value); @RuleName = "ActiveDirectoryUPN" c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);'
    

若要在名为 Outlook 网页版 的现有信赖方信任中创建自定义声明规则,请运行以下命令:

Set-AdfsRelyingPartyTrust -TargetName "Outlook on the web" -IssuanceTransformRules '@RuleName = "ActiveDirectoryUserSID" c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"), query = ";objectSID;{0}", param = c.Value); @RuleName = "ActiveDirectoryUPN" c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);'

若要在名为 EAC 的现有信赖方信任中创建自定义声明规则,请运行以下命令:

Set-AdfsRelyingPartyTrust -TargetName EAC -IssuanceTransformRules '@RuleName = "ActiveDirectoryUserSID" c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"), query = ";objectSID;{0}", param = c.Value); @RuleName = "ActiveDirectoryUPN" c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);'

步骤 5: (部署) 配置 Windows Server 2012 R2 Web 应用程序代理服务器的可选步骤

只有在您想要使用 Web 应用程序代理发布 Outlook 网页版 EAC,并且希望 Web 应用程序代理执行 AD FS 身份验证时,才需要本节中的步骤。 请注意:

  • 如果通过 Web 应用程序代理使用 AD FS 身份验证,Outlook 网页版脱机访问。

  • 不能将 Web 应用程序代理安装在安装 AD FS 的同一服务器上。

如果您不打算使用 Web 应用程序代理,请跳到步骤 6。

步骤 5a:安装 Web 应用程序代理

若要使用服务器管理器安装 Web 应用程序代理,请按照以下步骤操作:

  1. 在目标服务器上,打开 "服务器管理器", 单击 "管理",然后选择" 添加角色和功能"

    在"服务器管理器"中,单击"管理"以添加角色和功能。

  2. 打开"添加角色和功能向导 "。 除非之前选择了"默认情况下跳过此页",否则您将在"开始之前"页上开始。 单击“下一步”。

    添加角色和功能向导中的"开始之前"页。

  3. 在" 选择安装类型" 页上 ,确认已 选择"基于角色或基于功能"的安装,然后单击"下一步 "

    "添加角色和功能向导"中的"选择目标服务器"页。

  4. 在" 选择目标服务器" 页上,验证服务器选择,然后单击"下一步 "

    "添加角色和功能向导"中的"选择目标服务器"页。

  5. 在" 选择服务器角色 " 页上,选择 角色列表中的"远程访问",然后单击"下一步 "

    在"添加角色和功能向导"的"选择服务器角色"页上,选择"远程访问"。

  6. 在" 功能 "页上 ,单击" (接受默认功能选择) 。

    "添加角色和功能向导"中的"选择功能"页。

  7. On the Remote Access page, read the information, and then click Next.

    阅读"添加角色和功能向导"中的"远程访问"页上的信息。

  8. 在" 选择角色服务"页上 ,选择 "Web 应用程序代理"。 在打开的"添加功能"对话框中,单击" 添加功能 "接受默认值并关闭对话框。 返回到"选择 角色服务"页上 ,单击"下一 步"

    选择"Web 应用程序代理"后,"添加 Web 应用程序代理所需的功能?"。 将显示对话框。

    在"选择角色服务"页上选择"Web 应用程序代理"。

  9. 在" 确认安装选择"页上 ,单击"安装 "

    x.

  10. "安装进度" 页上,查看进度栏以验证安装是否成功。 安装完成后,将向导保持打开状态,以便可以在下一步中单击"打开 Web 应用程序代理向导" (5b) 。

    单击"添加角色和功能向导"中"安装进度"页上的"打开 Web 应用程序代理向导"。

若要Windows PowerShell Web 应用程序代理,请运行以下命令:

Install-WindowsFeature Web-Application-Proxy -IncludeManagementTools

步骤 5b:配置 Web 应用程序代理服务器

部署 Web 应用程序代理服务器后,需要配置以下 Web 应用程序代理设置:

  • 联合身份验证服务名称:例如, adfs.contoso.com

  • 联合身份验证服务信任凭据:AD FS 服务器上本地管理员帐户的用户名和密码。

  • AD FS 代理证书:安装在 Web 应用程序代理服务器上的证书,该证书将服务器标识为联合身份验证服务的代理,因此包含联合身份验证服务名称 (例如 adfs.contoso.com ,) 。 此外,Web 应用程序代理服务器必须可以访问联合身份验证服务名称 (DNS) 。

可以使用服务器管理器或 Windows PowerShell配置 Web 应用程序代理服务器。

若要使用服务器管理器配置 Web 应用程序代理,请按照以下步骤操作:

  1. 如果在上一步中使"添加角色和功能向导"在 Web 应用程序代理服务器上打开,可以单击"安装进度"页上的"打开 Web 应用程序 代理向导 " 链接。

    选择"添加角色和功能向导"中"安装进度"页上的"打开 Web 应用程序代理向导"。

    如果关闭了"添加角色和功能向导",或者使用 Windows PowerShell 安装 Web 应用程序代理,则可以通过单击"通知",然后单击"部署后配置"警告中的"打开 Web 应用程序代理向导"来到达同一位置。

    在"服务器管理器"中,单击"通知"以查看包含"打开第三个 Web 应用程序代理向导"的链接的警告。

  2. 打开 Web 应用程序代理配置 向导。 在 欢迎 页面上,单击 下一个

    Web 应用程序代理配置向导中的"欢迎"页。

  3. 在" 联合服务器" 页上,输入以下信息:

    • 联合身份验证服务名称:例如, adfs.contoso.com

    • 用户名和密码**:** 键入 AD FS 服务器上本地管理员帐户的凭据。

    完成后,单击“下一步”。

    在 Web 应用程序代理配置向导的"联合服务器"页上输入 AD FS 服务器的凭据。

  4. 在" AD FS 代理证书"页上,选择包含联合身份验证服务名称的已安装证书 (例如) adfs.contoso.com 。 您可以在下拉列表中选择证书>,然后单击"查看详细信息"以查看有关证书的详细信息。 完成后,单击“下一步”。

    在 AD FS 代理配置向导的"AD FS 代理证书"页上选择 AD FS 代理证书。

  5. 在" 确认" 页上,查看设置。 您可以复制 Windows PowerShell 命令以自动执行其他 (,尤其是证书指纹值) 。 完成后,单击"配置 "

    Web 应用程序代理配置向导中的"确认"页。

  6. 在" 结果 "页上,验证配置是否成功,然后单击"关闭 "

    Web 应用程序代理配置向导中的"结果"页。

若要Windows PowerShell Web 应用程序代理,请按照以下步骤操作:

  1. 在 Web 应用程序代理服务器上运行以下命令,以查找包含 的已安装证书的指纹值 adfs.contoso.com

    Set-Location Cert:\LocalMachine\My; Get-ChildItem | Format-List FriendlyName,Subject,Thumbprint
    
  2. 运行以下命令,并输入 AD FS 服务器上本地管理员帐户的用户名和密码。

    $ADFSServerCred = Get-Credential
    
  3. 使用以下语法:

    Install-WebApplicationProxy -FederationServiceName <FederationServiceName> -FederationServiceTrustCredential $ADFSServerCred -CertificateThumprint <ADFSCertThumbprint>
    

    此示例使用下列设置配置 Web 应用程序代理服务器:

    • 联合身份验证服务名称adfs.contoso.com

    • AD FS SSL 证书指纹*.contoso.com 具有指纹值的证书 5AE82C737900B29C2BAC3AB6D8C44D249EE05609

    Install-WebApplicationProxy -FederationServiceName adfs.contoso.com -FederationServiceTrustCredential $ADFSServerCred -CertificateThumprint 5AE82C737900B29C2BAC3AB6D8C44D249EE05609
    

步骤 5c:在 Web 应用程序代理中为 Outlook 网页版 和 EAC 发布声明信赖方信任

若要在 Web 应用程序代理中发布信赖方信任,可以使用远程访问管理控制台或Windows PowerShell。

若要使用远程访问管理控制台,请按照以下步骤操作:

注意:需要执行这些步骤两次:一次针对 Outlook 网页版,一次针对 EAC。 过程中介绍了所需的设置。

  1. 在 Web 应用程序代理服务器上打开远程访问管理控制台:在"服务器管理器"中,单击" 工具 > ""远程访问管理"

  2. 在远程访问管理控制台的"配置 " 下,单击 "Web 应用程序 代理",然后在"任务"窗格中,单击"发布 "

    在远程访问管理控制台的"任务"窗格中选择"发布"。

  3. 打开"发布新应用程序向导 "。 在 欢迎 页面上,单击 下一个

    Web 应用程序代理服务器上"发布新应用程序向导"中的"欢迎"页。

  4. 在" 预身份验证 "页上,验证"Active Directory 联合身份验证服务 (AD FS) 已 选中,然后单击"下一步 "

    Web 应用程序代理服务器上"发布新应用程序向导"中的"预身份验证"页。

  5. 在"信赖方"页上,选择在步骤 4:在 AD FS 中为 Outlook 网页版 和 EAC 创建信赖方信任和自定义声明规则中在 AD FS 服务器上创建的信赖方:

    在 Web 应用程序代理服务器上的"发布新应用程序向导"中的"信赖方"页上选择信赖方。

    • For Outlook 网页版: Select Outlook 网页版.

    • 对于 EAC: 选择 EAC。

    完成后,单击“下一步”。

  6. 在"发布设置 页上,输入以下信息:

    • For Outlook 网页版

      • 名称:例如, Outlook on the web。 此名称仅在远程访问管理控制台中可见。

      • 外部 URL:例如, https://mail.contoso.com/owa/

      • 外部证书:选择包含外部 URL 的主机名的已安装证书Outlook 网页版 (例如, mail.contoso.com) 。 您可以在下拉列表中选择证书>,然后单击"查看详细信息"以查看有关证书的详细信息。

      • 后端服务器 URL:此值由外部 URL 自动填充。 只有当后端服务器 URL 与外部 URL 不同时,才需要更改它。 例如,https://server01.contoso.com/owa/。 请注意,外部 URL 和后端服务器 URL /owa/ 中的路径必须与 () ,但主机名值可以不同 (例如, mail.contoso.com server01.contoso.com 和) 。

      Web 应用程序Outlook 网页版服务器上"发布新应用程序向导"中"信赖方"页上的"信赖方"的发布设置。

    • 对于 EAC

      • 名称:例如, EAC。 此名称仅在远程访问管理控制台中可见。

      • 外部 URL:EAC 的外部 URL。 例如,https://mail.contoso.com/ecp/

      • 外部证书:选择包含 EAC 外部 URL 的主机名的已安装证书 (例如, mail.contoso.com) 。 证书可能是通配符证书或 SAN 证书。 您可以在下拉列表中选择证书>,然后单击"查看详细信息"以查看有关证书的详细信息。

      • 后端服务器 URL:此值由外部 URL 自动填充。 只有当后端服务器 URL 与外部 URL 不同时,才需要更改它。 例如,https://server01.contoso.com/ecp/。 请注意,外部 URL 和后端服务器 URL /ecp/ 中的路径必须与 () ,但主机名值可以不同 (例如, mail.contoso.com server01.contoso.com 和) 。

    完成后,单击“下一步”。

    Web 应用程序代理服务器上"发布新应用程序向导"中"信赖方"页上 EAC 的发布设置。

  7. 在" 确认" 页上,查看设置。 您可以复制 Windows PowerShell 命令以自动执行其他 (,尤其是证书指纹值) 。 完成后,单击"发布 "

    Web 应用程序代理服务器上"发布新应用程序向导"中的"确认"页。

  8. 在" 结果 "页上,验证应用程序是否成功发布,然后单击"关闭 "

    Web 应用程序代理服务器上"发布新应用程序向导"中的"结果"页。

若要Windows PowerShell发布信赖方信任,请按照以下步骤操作:

  1. 在 Web 应用程序代理服务器上运行以下命令,查找包含 Outlook 网页版 和 EAC URL 的主机名的已安装证书的指纹 (例如 mail.contoso.com ,) :

    Set-Location Cert:\LocalMachine\My; Get-ChildItem | Format-List FriendlyName,Subject,Thumbprint
    
  2. 使用以下语法:

    Add-WebApplicationProxyApplication -ExternalPreAuthentication ADFS -ADFSRelyingPartyName <OotwRelyingParty | EACRelyingParty> -Name "<Outlook on the web  | EAC>" -ExternalUrl <OotwURL | EACURL> -ExternalCertificateThumbprint <Thumbprint> -BackendServerUrl <OotwURL | EACURL>
    

    此示例在 Web Outlook 网页版代理中发布具有以下设置的内容:

    Add-WebApplicationProxyApplication -ExternalPreAuthentication ADFS -ADFSRelyingPartyName "Outlook on the web" -Name "Outlook on the web" -ExternalUrl https://mail.contoso.com/owa/ -ExternalCertificateThumbprint 5AE82C737900B29C2BAC3AB6D8C44D249EE056093 -BackendServerUrl https://mail.contoso.com/owa/
    

    此示例使用下列设置在 Web 应用程序代理中发布 EAC:

    Add-WebApplicationProxyApplication -ExternalPreAuthentication ADFS -ADFSRelyingPartyName EAC -Name EAC -ExternalUrl https://external.contoso.com/ecp/ -ExternalCertificateThumbprint 5AE82C737900B29C2BAC3AB6D8C44D249EE05609 -BackendServerUrl https://mail.contoso.com/ecp/
    

注意:要通过 Web 应用程序代理发布的所有 AD FS 终结点都需要启用代理。 在服务终结点的 AD FS > 管理控制台中 (验证指定终结点的代理已启用是) 。

步骤 6:配置Exchange组织以使用 AD FS 身份验证

若要将Exchange组织配置为使用 AD FS 身份验证,您需要使用 Exchange 命令行管理程序。 若要了解如何在本地 Exchange 组织中打开 Exchange 命令行管理程序,请参阅 Open the Exchange Management Shell

  1. 运行以下命令以查找导入的 AD FS 令牌签名证书的指纹值:

    Set-Location Cert:\LocalMachine\Root; Get-ChildItem | Sort-Object Subject
    

    查找 Subject 值 CN=ADFS Signing - <FederationServiceName> (例如, CN=ADFS Signing - adfs.contoso.com) 。

    可以通过运行命令 ,然后运行命令 ,在提升的 Windows PowerShell 窗口中确认 AD FS Import-Module ADFS服务器的此指纹值Get-AdfsCertificate -CertificateType Token-Signing

  2. 使用以下语法:

    Set-OrganizationConfig -AdfsIssuer https://<FederationServiceName>/adfs/ls/ -AdfsAudienceUris "<OotwURL>","<EACURL>" -AdfsSignCertificateThumbprint "<Thumbprint>"
    

    此示例使用下列值:

    • AD FS URLhttps://adfs.contoso.com/adfs/ls/

    • Outlook 网页版 URLhttps://mail.contoso.com/owa/

    • EAC URLhttps://mail.contoso.com/ecp/

    • AD FS 令牌签名证书指纹ADFS Signing - adfs.contoso.com:具有指纹值的证书88970C64278A15D642934DC2961D9CCA5E28DA6B

    Set-OrganizationConfig -AdfsIssuer https://adfs.contoso.com/adfs/ls/ -AdfsAudienceUris "https://mail.contoso.com/owa/","https://mail.contoso.com/ecp/" -AdfsSignCertificateThumbprint "88970C64278A15D642934DC2961D9CCA5E28DA6B"
    

    注意在这些情况下,AdfsEncryptCertificateThumbprint 参数不受支持。

步骤 7:在目录和 EAC 虚拟目录Outlook 网页版 AD FS 身份验证

对于 Outlook 网页版 和 EAC 虚拟目录,您需要通过禁用所有其他身份验证方法将 AD FS 身份验证配置为唯一可用的身份验证方法。

  • 在配置 EAC 虚拟目录之前,您需要Outlook 网页版目录。

  • 你可能希望仅在客户端用于连接到 Exchange 和 EAC 的面向 Internet 的服务器Outlook 网页版 AD FS 身份验证。

  • 默认情况下,仅对目录和 EAC 虚拟目录Outlook 网页版基本身份验证和表单身份验证。

若要使用 Exchange命令行管理程序将 EAC 或Outlook 网页版目录配置为仅接受 AD FS 身份验证,请使用以下语法:

Set-EcpVirtualDirectory -Identity <VirtualDirectoryIdentity> -AdfsAuthentication $true -BasicAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -OAuthAuthentication $false -WindowsAuthentication $false

此示例在名为 Mailbox01 的服务器上配置默认网站中的 EAC 虚拟目录:

Set-EcpVirtualDirectory -Identity "Mailbox01\ecp (Default Web Site)" -AdfsAuthentication $true -BasicAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -OAuthAuthentication $false -WindowsAuthentication $false

此示例在名为 Mailbox01 的Outlook 网页版配置默认站点中的虚拟目录:

Set-OwaVirtualDirectory -Identity "Mailbox01\owa (Default Web Site)" -AdfsAuthentication $true -BasicAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -OAuthAuthentication $false -WindowsAuthentication $false

注意:若要在Outlook 网页版组织中每个 Exchange 服务器上配置所有 EAC 和虚拟目录,请运行以下命令:

Get-EcpVirtualDirectory | Set-EcpVirtualDirectory -AdfsAuthentication $true -BasicAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -OAuthAuthentication $false -WindowsAuthentication $false
Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -AdfsAuthentication $true -BasicAuthentication $false -DigestAuthentication $false -FormsAuthentication $false -OAuthAuthentication $false -WindowsAuthentication $false

步骤 8:重新启动 Exchange IIS

  1. 打开 Exchange 服务器上的 IIS 管理器。在 Windows Server 2012 或更高版本中执行此操作的简便方法是按 Windows 键 + Q,键入 inetmgr,并在结果中选择" Internet Information Services (IIS) 管理器"。

  2. 在 IIS 管理器中,选择服务器。

  3. 在" 操作"窗格中 ,单击"重新启动 "

    在 IIS 管理器中,选择服务器,在"操作"窗格中,单击"重新启动"。

注意:若要在命令行上执行此过程,请打开 Exchange 服务器上提升的命令提示符 (通过选择"以管理员角色运行") 打开命令提示符窗口,然后运行以下命令:

net stop w3svc /y
net start w3svc

如何判断是否生效?

若要测试 AD FS 声明,Outlook 网页版:

  1. 在 Web 浏览器中,打开Outlook 网页版 (例如, https://mail.contoso.com/owa) 。

  2. 如果在 Web 浏览器中收到证书错误,只需继续浏览Outlook 网页版。 应重定向到 AD FS 登录页或 AD FS 提示输入凭据。

  3. 键入你的 (域\用户) 密码,然后单击登录。

  4. Outlook 网页版将在窗口中加载。

为 EAC 测试 AD FS 声明的步骤:

  1. 在 Web 浏览器中,打开 EAC (例如,) https://mail.contoso.com/ecp

  2. 如果在 Web 浏览器中收到证书错误,只需继续访问 EAC 网站。 应重定向到 AD FS 登录页或 AD FS 提示输入凭据。

  3. 键入你的 (域\用户) 密码,然后单击登录。

  4. EAC 将在窗口中加载。

其他注意事项

多重身份验证

部署和配置 AD FS 进行基于声明的身份验证允许 Outlook 网页版 和 EAC 支持多重身份验证,例如基于证书的身份验证、身份验证或安全令牌以及指纹身份验证。 多重身份验证需要以下三种身份验证因素中的两种:

  • 只有用户 (,例如密码、PIN 或) 。

  • 只有用户拥有某些 (,例如 ATM 卡、安全令牌、智能卡或移动电话) 。

  • 只有用户才能 (,例如生物特征,如指纹) 。

例如,发送到移动电话的密码和安全代码,或者 PIN 和指纹。

有关 Windows Server 2012 R2 中多重身份验证的详细信息,请参阅概述:使用适用于敏感应用程序的附加多重身份验证管理风险操作实例:使用适用于敏感应用程序的附加多重身份验证管理风险

在 AD FS 服务器上,联合身份验证服务用作安全令牌服务,并提供用于声明的安全令牌。 联合身份验证服务根据提供的凭据颁发令牌。 在帐户存储验证用户的凭据之后,便会根据信任策略的规则生成用户声明,然后将其添加到颁发给客户端的安全令牌中。 有关声明的详细信息,请参阅了解声明

与其他版本的服务共存Exchange

如果组织中部署了多个版本的 Outlook 网页版,可以将 AD FS 身份验证用于 Exchange EAC。 只有当所有客户端都通过 Exchange 连接并且所有这些服务器都配置为使用 AD FS 身份验证时,才支持此方案。

在 Exchange 2016 组织中,在 Exchange 2010 服务器上拥有邮箱的用户可以通过配置为使用 AD FS 身份验证的 Exchange 2016 服务器访问其邮箱。 到 或 Exchange 2016 服务器的初始客户端连接使用 AD FS 身份验证。 但是,与 Exchange 2010 的代理连接使用 Kerberos。 不支持为直接 AD FS 身份验证配置 Exchange 2010。