在 Skype for Business Online 和 Exchange Server 之间配置集成和 OAuth

配置 Exchange Server 与 Skype for Business Online 之间的集成可实现功能支持中所述的Skype for Business和 Exchange 集成功能。

本主题适用于与 Exchange Server 2013 到 2019 的集成。

开始之前你需要了解哪些信息?

配置 Exchange Server 与 O365 之间的集成

步骤 1:在 Exchange Server 和 O365 之间配置 OAuth 身份验证

执行以下文章中的步骤:

在 Exchange 和 Exchange Online 组织之间配置 OAuth 身份验证

步骤 2:为Skype for Business联机合作伙伴应用程序创建新的邮件用户帐户

此步骤在 Exchange 服务器上完成。 它将创建一个邮件用户并为其分配合适的管理角色权限。 随后此用户将用于下一步骤。

为 Exchange 组织指定已验证域。 此域应与用于本地 Exchange 帐户的主 SMTP 域使用的域相同。 在以下过程中,此域称为 <“已验证域> ”。 此外, <DomainControllerFQDN> 应是域控制器的 FQDN。

$user = New-MailUser -Name SfBOnline-ApplicationAccount -ExternalEmailAddress SfBOnline-ApplicationAccount@<your Verified Domain> -DomainController <DomainControllerFQDN>

此命令将在地址列表中隐藏新的邮件用户。

Set-MailUser -Identity $user.Identity -HiddenFromAddressListsEnabled $True -DomainController <DomainControllerFQDN>

接下来的两个命令将为这个新帐户分配 UserApplication 和 ArchiveApplication 管理角色。

New-ManagementRoleAssignment -Role UserApplication -User $user.Identity -DomainController <DomainControllerFQDN>
New-ManagementRoleAssignment -Role ArchiveApplication -User $user.Identity -DomainController <DomainControllerFQDN>

步骤 3:为 Skype for Business Online 创建并启用合作伙伴应用程序

创建新的合作伙伴应用程序,并且将使用你刚刚创建的帐户。 在本地 Exchange 组织的 Exchange PowerShell 中运行以下命令。

New-PartnerApplication -Name SfBOnline -ApplicationIdentifier 00000004-0000-0ff1-ce00-000000000000 -Enabled $True -LinkedAccount $user.Identity

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

运行 PowerShell 脚本以导出本地授权证书,将在下一步中导入到 Skype for Business Online 组织。

请将以下文本保存到一个 PowerShell 脚本文件,例如名为 ExportAuthCert.ps1 的文件。

$thumbprint = (Get-AuthConfig).CurrentCertificateThumbprint
if((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)

在本地 Exchange 组织中的 Exchange PowerShell 中,运行刚刚创建的 PowerShell 脚本。 例如:.\ExportAuthCert.ps1

步骤 5:将本地授权证书上传到 Microsoft Entra ACS

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

  1. 单击Windows PowerShell快捷方式的 Azure Active Directory 模块,打开安装了 Microsoft Entra cmdlet 的Windows PowerShell工作区。 此步骤中的所有命令都将使用 Microsoft Entra ID 控制台的 Windows PowerShell 运行。

  2. 将以下文本保存到名为 的 PowerShell 脚本文件, UploadAuthCert.ps1例如 。

    Connect-MgGraph
    Import-Module Microsoft.Graph
    $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 = "00000004-0000-0ff1-ce00-000000000000"
    $p = Get-MgServicePrincipal -ServicePrincipalId $ServicePrincipalNames
    Add-MgServicePrincipalKey -ServicePrincipalId $servicePrincipalId -Type asymmetric -Usage Verify -Value $credValue
    
  3. 运行你在上一步中创建的 PowerShell 脚本。 例如:.\UploadAuthCert.ps1

  4. 在启动脚本之后,将显示凭据对话框。 输入 Microsoft Online Microsoft Entra 组织的租户管理员帐户的凭据。 运行脚本后,将Microsoft Entra会话Windows PowerShell保持打开状态。 你将使用此会话来在下一步中运行 PowerShell 脚本。

步骤 6:验证证书是否已上传到Skype for Business服务主体

  1. 在 PowerShell 中打开并验证Microsoft Entra ID,运行以下命令

    Get-MgServicePrincipal -ServicePrincipalId 00000004-0000-0ff1-ce00-000000000000
    
  2. 当系统提示输入 ReturnKeyValues 时,按 Enter

  3. 确认你看到列出的密钥,其中包含与 Exchange Oauth 证书开始日期和结束日期匹配的开始日期和结束数据

验证是否成功

通过验证某些功能是否正常工作,验证配置是否正确。

  1. 确认具有混合Exchange Server配置的组织中具有云语音邮件服务Skype for Business用户可以成功更改其语音邮件问候语。

  2. 确认移动客户端的聊天历史记录在 Outlook 对话历史记录文件夹中可见。

  3. 使用 EWSEditor 确认存档的聊天邮件已存放在用户的本地邮箱中的“清除”文件夹中。

或者,查看流量。 OAuth 握手中的流量非常独特, (看起来不像基本身份验证) , 特别是在领域周围,你将开始看到如下所示的颁发者流量:000000004-0000-0ff1-ce00-000000000000@ (有时在 @符号) 之前,在传递的令牌中使用 /。 你不会看到用户名或密码,这是 OAuth 的要点。 但你将看到“Office”颁发者(在本例中为“4”Skype for Business)和订阅领域。

如果想要确保成功使用 OAuth,请确保知道预期内容,并了解流量应该是什么样子。 以下是 预期的结果

下面是 设置示例,但你可以使用任何想要执行此过程的网络跟踪工具。

在 Exchange 和 Exchange Online 组织之间配置 OAuth 身份验证