使用由世纪互联运营的 Office 365 配置 Exchange 混合部署功能

注意: 本文仅适用于中国由世纪互联运营的 Office 365 以及无法更新到 Exchange 2013 CU5 或更高版本的本地 Exchange 组织。

本地 Exchange 2013 CU5 组织与 Office 365 服务之间的功能齐全的混合部署目前均受支持。但是,如果您不能在本地组织中升级到或安装 Exchange 2013 CU5,您仍然可以在本地 Exchange 和 Exchange Online 组织之间配置闲/忙日历共享。

按照下面的步骤可为您的本地和 Exchange Online 组织启用此混合部署功能。

步骤1:为您的 Exchange Online 组织创建授权服务器对象

对于此过程,您必须为您的 Exchange Online 组织指定一个经过验证的域。 此域应与基于云的电子邮件帐户使用的主 SMTP 域是同一个域。 此域在以下过程中称为 <您的经过验证的域>

在您的本地 Exchange 组织中在 Exchange 命令行管理程序中运行以下命令。

New-AuthServer -Name "MicrosoftAzureACS" -AuthMetadataUrl https://accounts.accesscontrol.chinacloudapi.cn/<your verified-domain>/metadata/json/1

步骤 2:为您的 Exchange Online 组织启用合作伙伴应用程序

在您的本地 Exchange 组织中在 Exchange PowerShell 中运行以下命令。

Get-PartnerApplication | ?{$_.ApplicationIdentifier -eq "00000002-0000-0ff1-ce00-000000000000"-and $_.Realm -eq ""} | Set-PartnerApplication -Enabled $true

步骤 3:导出本地授权证书

在此步骤中,您必须运行 PowerShell 脚本导出本地授权证书,该证书随后在下一步骤中将导入您的 Exchange Online 组织中。

  1. 将以下文本保存到一个 PowerShell 脚本文件中,例如将脚本文件命名为 ExportAuthCert.ps1

$thumbprint = (get-authconfig).CurrentCertificateThumbprintif((test-path $env:SYSTEMDRIVE\OAuthConfig) -eq $false){ md $env:SYSTEMDRIVE\OAuthConfig}cd $env:SYSTEMDRIVE\OAuthConfig $oAuthCert = (dir Cert:\LocalMachine\My) | where {$_.Thumbprint -match $thumbprint}$certType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Cert$certBytes = $oAuthCert.Export($certType)$CertFile = "$env:SYSTEMDRIVE\OAuthConfig\OAuthCert.cer"[System.IO.File]::WriteAllBytes($CertFile, $certBytes)

  1. 在您的本地 Exchange 组织中在 Exchange PowerShell 中运行在上一步骤中创建的 PowerShell 脚本。例如:

    .\ExportAuthCert.ps1

步骤 4:将本地授权证书上载到 Microsoft Azure Active Directory ACS

接下来,您必须使用 Windows PowerShell 将在上一步中导出的本地授权证书上载到 Microsoft Azure Active Directory 访问控制服务 (ACS)。为此,必须安装用于 Windows PowerShell cmdlet 的 Microsoft Azure Active Directory (AD) 模块。如果未安装该模块,请转到 http://aka.ms/aadposh 以安装 Microsoft Azure AD 模块。安装 Microsoft Azure AD 模块后,完成下面的步骤。

  1. 单击用于 Windows PowerShell 的 Microsoft AzureActive Directory 模块的快捷方式,以打开已安装 Microsoft Azure AD cmdlet 的 Windows PowerShell 工作区。此步骤中的所有命令都将通过用于 Microsoft Azure Active Directory 的 Windows PowerShell 控制台运行。

  2. 将以下文本保存到一个 PowerShell 脚本文件中,例如将脚本文件命名为 UploadAuthCert.ps1

    Connect-MsolService;Import-Module msonlineextended;$CertFile = "$env:SYSTEMDRIVE\OAuthConfig\OAuthCert.cer"$objFSO = New-Object -ComObject Scripting.FileSystemObject;$CertFile = $objFSO.GetAbsolutePathName($CertFile);$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate$cer.Import($CertFile);$binCert = $cer.GetRawCertData();$credValue = [System.Convert]::ToBase64String($binCert);$ServiceName = "00000002-0000-0ff1-ce00-000000000000";$p = Get-MsolServicePrincipal -ServicePrincipalName $ServiceNameNew-MsolServicePrincipalCredential -AppPrincipalId $p.AppPrincipalId -Type asymmetric -Usage Verify -Value $credValue

  1. 运行在上一个步骤中创建的 PowerShell 脚本。例如:

    .\UploadAuthCert.ps1
  2. 启动脚本后,将显示凭据对话框。输入您的 Microsoft Online Microsoft Azure AD 组织中的租户管理员帐户使用的凭据。运行此脚本后,让“用于 Microsoft Azure Active Directory 的 Windows PowerShell”会话处于打开状态。在下一步中您将使用此会话运行 PowerShell 脚本。

步骤 5:向 Microsoft Azure Active Directory 注册您的外部本地 Exchange HTTP 终结点的所有主机名称授权机构

您必须为您的本地 Exchange 组织中可公开访问的每个终结点运行此步骤中的脚本。 在可能的情况下,我们建议您使用通配符。 例如,假定 Exchange 在 https://mail.contoso.com/ews/exchange.asmx 上外部可用。 在这种情况下可以使用一个通配符:*.contoso.com。 这会涵盖终结点 autodiscover.contoso.com 和 mail.contoso.com。 但是,不会涵盖顶级域 contoso.com。 如果您的 Exchange 2013 客户端访问服务器可通过顶级主机名称授权机构从外部访问,则此主机名颁发机构还必须注册为 contoso.com。 对注册更多的外部主机名称授权机构没有限制。

如果不确定您的本地 Exchange 组织中的外部 Exchange 终结点,您可以通过在您的本地 Exchange 组织中在 Exchange PowerShell 中运行以下命令来获取外部配置的 Web 服务终结点的列表:

Get-WebServicesVirtualDirectory | FL ExternalUrl

注意: 要成功运行以下脚本,需要按照上一节的步骤 4 中的说明将用于 Microsoft Azure Active Directory 的 Windows PowerShell 连接到 Microsoft Online Microsoft Azure AD 租户。

  1. 将以下文本保存到一个 PowerShell 脚本文件中,例如将脚本文件命名为 RegisterEndpoints.ps1。 此示例使用通配符注册 contoso.com 的所有终结点。 将 contoso.com 替换为您的本地 Exchange 组织的主机名称授权机构。

    $externalAuthority="*.contoso.com"
    .
    $ServiceName = "00000002-0000-0ff1-ce00-000000000000";

    $p = Get-MsolServicePrincipal –ServicePrincipalName $ServiceName;

    $spn = [string]::Format("{0}/{1}", $ServiceName, $externalAuthority);
    $p.ServicePrincipalNames.Add($spn);

    Set-MsolServicePrincipal –ObjectID $p.ObjectId –ServicePrincipalNames $p.ServicePrincipalNames;
  2. 在用于 Microsoft Azure Active Directory 的 Windows PowerShell 中,运行在上一步骤中创建的 PowerShell 脚本。例如:

    .\RegisterEndpoints.ps1

步骤 6:创建从您的本地组织到 Office 365 的组织内连接器

您必须为在 Exchange Online 中托管的邮箱定义目标地址。创建您的 Office 365 租户时,将自动创建此目标地址。例如,如果您的组织在 Office 365 租户中托管的域是“contoso.com”,则目标服务地址将是“contoso.partner.mail.onmschina.cn”。

使用 Exchange PowerShell 在您的本地组织中运行以下 cmdlet:

New-IntraOrganizationConnector -name ExchangeHybridOnPremisesToOnline -DiscoveryEndpoint https://partner.outlook.cn/autodiscover/autodiscover.svc -TargetAddressDomains <your service target address>

步骤 7:创建从您的 Office 365 租户到本地 Exchange 组织的组织内连接器

您必须为在您的本地组织中托管的邮箱定义目标地址。 如果您的组织的主 SMTP 地址是“contoso.com”,则此地址将是“contoso.com”。

您还必须为您的本地组织定义外部自动发现终结点。 如果您的公司是“contoso.com”,则这通常是以下之一:

  • https://autodiscover.<您的主 SMTP 域>/autodiscover/autodiscover.svc

  • https://<您的主 SMTP 域>/autodiscover/autodiscover.svc

注意: 您可以在本地和 Office 365 租户中使用 Get-IntraOrganizationConfiguration cmdlet 确定 New-IntraOrganizationConnector cmdlet 所需的终结点的值。

使用 Windows PowerShell 运行以下 cmdlet:

$UserCredential = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://partner.outlook.cn/powershell-liveid/ -Credential $UserCredential

Import-PSSession $Session

New-IntraOrganizationConnector -name ExchangeHybridOnlineToOnPremises -DiscoveryEndpoint <your on-premises-Autodiscover endpoint> -TargetAddressDomains <your on-premises target address>

步骤8:配置任何 availabilityaddressspace 预 Exchange 2013 SP 1服务器

当您在 Exchange 2013 之前的组织中配置混合部署时,您必须在现有 Exchange 组织中至少安装一个具有客户端访问服务器角色和邮箱服务器角色的 Exchange 2013 SP1 或更高版本的服务器。Exchange 2013 客户端访问服务器和邮箱服务器用作前端服务器并可协调现有 Exchange 本地组织与 Exchange Online 组织之间的通信。此通信包括本地组织与 Exchange Online 组织之间的邮件传输和消息传递功能。我们强烈建议在您的本地组织中安装多个 Exchange 2013 服务器,以帮助提高混合部署功能的可靠性与可用性。

在与 Exchange 2013/2010 或 Exchange 2013/2007 的混合部署中,建议所有用于本地组织的面向 Internet 的前端服务器都采用运行 Exchange 2013 SP1 或更高版本的客户端访问服务器。所有来自 Office 365 和 Exchange Online 的 Exchange Web 服务 (EWS) 请求都必须连接到本地部署中的 Exchange 2013 客户端访问服务器。此外,在 Exchange Online 的本地 Exchange 组织中发起的所有 EWS 请求都必须通过运行 Exchange 2013 SP1 或更高版本的客户端访问服务器提供代理。由于这些 Exchange 2013 客户端访问服务器必须处理此额外的传入和传出 EWS 请求,因此必须具有数量足以处理负载和提供连接冗余的 Exchange 2013 客户端访问服务器。所需客户端访问服务器数量取决于平均 EWS 请求量并且因组织而异。

完成以下步骤之前,请确保:

  • 混合前端服务器是 Exchange 2013 SP1 或更高版本

  • 您有唯一的用于 Exchange 2013 服务器的外部 EWS URL。Office 365 租户必须连接到这些服务器,以便基于云的混合功能请求能够正常工作。

  • 服务器同时具备邮箱和客户端访问服务器角色

  • 任何现有 Exchange 2010/2007 邮箱服务器和客户端访问服务器均已应用最新的累积更新 (CU) 或服务包 (SP)。

注意: 现有 Exchange 2010/2007 邮箱服务器可继续将 Exchange 2010/2007 客户端访问服务器用于非混合功能连接的前端服务器。只有来自 Office 365 的混合部署功能请求需要连接到 Exchange 2013 服务器。

为 Exchange 2013 之前的服务器配置传出 Exchange Web 服务代理

必须配置指向本地 Exchange 2013 SP1 客户端访问服务器的 Exchange Web 服务终结点的 AvailabilityAddressSpace。此终结点与此前步骤 5 中列出的终结点相同,或者可以在本地 Exchange 2013 SP1 客户端访问服务器上通过运行以下 cmdlet 来确定:

Get-WebServicesVirtualDirectory | FL AdminDisplayVersion,ExternalUrl

注意: 如果返回来自多个服务器的虚拟目录信息,请确保您使用 Exchange 2013 SP 1客户端访问服务器返回的终结点。 它将显示为 admindisplayversion 参数15.0(构建847.32)或更高版本。

若要配置 availabilityaddressspace ,使用 Exchange Powershell 和企业内组织的运行以下 cmdlet :

Add-AvailabilityAddressSpace -AccessMethod InternalProxy –ProxyUrl <your on-premises External Web Services URL> -ForestName <your Office 365 service target address> -UseServiceAccount $True

怎样才能知道这是否已正常工作?

您可以使用 Test_OAuthConnectivity cmdlet 验证 OAuth 配置是否正确。 此 cmdlet 验证本地 Exchange 和 Exchange Online 终结点是否可以成功对彼此发出的请求进行身份验证。

重要: 使用远程 PowerShell 连接到您的 Exchange Online 组织时,您可能必须使用 AllowClobber 参数与 Import-PSSession cmdlet 来将最新命令导入本地 PowerShell 会话中。

要验证您的本地 Exchange 组织可以成功连接到 Exchange Online,请在您的本地组织中在 Exchange PowerShell 中运行以下命令:

Test-OAuthConnectivity -Service EWS -TargetUri https://partner.outlook.cn/ews/exchange.asmx -Mailbox <On-Premises Mailbox> -Verbose | fl

要验证您的 Exchange Online 组织可以成功连接到您的本地 Exchange 组织,请使用远程 PowerShell 连接到您的 Exchange Online 组织并运行以下命令:

Test-OAuthConnectivity -Service EWS -TargetUri <external hostname authority of your Exchange On-Premises deployment> -Mailbox <On-Premises Mailbox> -Verbose | fl

重要: 可以忽略“SMTP 地址没有与其关联的邮箱”这一错误。 唯一要紧的是 ResultTask 参数返回值 Success。 例如,测试输出的最后一部分应如下所示:

ResultType: Success

Identity: Microsoft.Exchange.Security.OAuth.ValidationResultNodeId

IsValid: True

ObjectState: New
扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×