在跨界环境中配置 Microsoft Lync Server 2013

 

上次修改的主题: 2017-02-21

在跨界配置中,某些用户位于 Microsoft Lync Server 2013 的本地安装中,而其他用户则驻留在 Microsoft 365 或 Office 365 版本的 Lync Server 上。 若要在跨界环境中配置服务器到服务器的身份验证,必须先将 Lync Server 2013 的本地安装配置为信任 Microsoft 365 授权服务器。 此过程中的初始步骤可以通过运行以下 Lync Server Management Shell 脚本来执行:

$TenantID = (Get-CsTenant -Filter {DisplayName -eq "Fabrikam.com"}).TenantId

$sts = Get-CsOAuthServer microsoft.sts -ErrorAction SilentlyContinue
        
   if ($sts -eq $null)
      {
         New-CsOAuthServer microsoft.sts -MetadataUrl "https://accounts.accesscontrol.windows.net/$TenantId/metadata/json/1"
      }
   else
      {
         if ($sts.MetadataUrl -ne  "https://accounts.accesscontrol.windows.net/$TenantId/metadata/json/1")
            {
               Remove-CsOAuthServer microsoft.sts
               New-CsOAuthServer microsoft.sts -MetadataUrl "https://accounts.accesscontrol.windows.net/$TenantId/metadata/json/1"
            }
        }

$exch = Get-CsPartnerApplication microsoft.exchange -ErrorAction SilentlyContinue
        
if ($exch -eq $null)
   {
      New-CsPartnerApplication -Identity microsoft.exchange -ApplicationIdentifier 00000002-0000-0ff1-ce00-000000000000 -ApplicationTrustLevel Full -UseOAuthServer
    }
else
    {
       if ($exch.ApplicationIdentifier -ne "00000002-0000-0ff1-ce00-000000000000")
          {
             Remove-CsPartnerApplication microsoft.exchange
             New-CsPartnerApplication -Identity microsoft.exchange -ApplicationIdentifier 00000002-0000-0ff1-ce00-000000000000 -ApplicationTrustLevel Full -UseOAuthServer 
          }
       else
          {
             Set-CsPartnerApplication -Identity microsoft.exchange -ApplicationTrustLevel Full -UseOAuthServer
          }
   }

Set-CsOAuthConfiguration -ServiceName 00000004-0000-0ff1-ce00-000000000000

请记住,租户的领域名称通常与组织名称不同;实际上,领域名称几乎始终与租户 ID 相同。 为此,脚本中的第一行用于返回指定租户(此示例中为 fabrikam.com)的 TenantId 属性的值,然后将该名称分配给变量 $TenantId:

$TenantID = (Get-CsTenant -DisplayName "Fabrikam.com").TenantId

脚本完成后,必须配置 Lync Server 2013 与授权服务器之间的信任关系,以及 Exchange 2013 与授权服务器之间的第二个信任关系。 这只能使用 Microsoft Online Services cmdlet 来完成。

注意

如果尚未安装 Microsoft Online Services cmdlet,则需要在继续操作之前执行两项操作。 首先,下载并安装 64 位版本的 Microsoft Online Services 登录助手。 安装完成后,下载并安装适用于Windows PowerShell的 Microsoft Online Services 模块的 64 位版本。 有关安装和使用 Microsoft Online Services 模块的详细信息,请参阅 Microsoft 365 或Office 365网站。 这些说明还将说明如何在 Microsoft 365 或 Office 36 和 Active Directory 之间配置单一登录、联合身份验证和同步。
如果您未安装这些 cmdlet,您的脚本将失败,因为 Get-CsTenant cmdlet 不可用。

配置 Microsoft 365 后,在为 Lync Server 2013 和 Exchange 2013 创建 Microsoft 365 或 Office 365 服务主体后,需要向这些服务主体注册凭据。 为此,您必须先获取另存为 .CER 文件的 X.509 Base64。 然后,此证书将应用于 Microsoft 365 或Office 365服务主体。

获取 X.509 证书后,启动 Microsoft Online Services 模块 (单击“开始”,单击“所有程序”,单击“Microsoft Online Services”,然后单击 Microsoft Online Services 模块以Windows PowerShell) 。 打开服务模块后,键入以下内容以导入 Microsoft Online Windows PowerShell模块,其中包含可用于管理服务主体的 cmdlet:

Import-Module MSOnlineExtended

导入模块后,键入以下命令,然后按 ENTER 连接到 Microsoft 365:

Connect-MsolService

按 Enter 后,随即出现一个凭据对话框。 在对话框中输入 Microsoft 365 或Office 365用户名和密码,然后单击“确定”。

连接到 Microsoft 365 后,即可运行以下命令,以返回有关服务主体的信息:

Get-MsolServicePrincipal

您应获得与以下信息类似的所有服务主体的相关信息:

ExtensionData        : System.Runtime.Serialization.ExtensionDataObject
AccountEnabled       : True
Addresses            : {}
AppPrincipalId       : 00000004-0000-0ff1-ce00-000000000000
DisplayName          : Microsoft Lync Server
ObjectId             : aada5fbd-c0ae-442a-8c0b-36fec40602e2
ServicePrincipalName : LyncServer/litwareinc.com
TrustedForDelegation : True

下一步是导入、编码和分配 X.509 证书。 若要导入和编码证书,请使用以下Windows PowerShell命令,确保指定指向你的完整文件路径。调用 Import 方法时,CER 文件:

$certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
$certificate.Import("C:\Certificates\Office365.cer")
$binaryValue = $certificate.GetRawCertData()
$credentialsValue = [System.Convert]::ToBase64String($binaryValue)

导入和编码证书后,可以将证书分配给 Microsoft 365 服务主体。 为此,请首先使用Get-MsolServicePrincipal检索 Lync Server 和 Microsoft Exchange 服务主体的 AppPrincipalId 属性的值;AppPrincipalId 属性的值将用于标识分配证书的服务主体。 有了 Lync Server 2013 的 AppPrincipalId 属性值,请使用以下命令将证书分配给 Microsoft 365 版本的 Lync Server (StartDate 和 EndDate 属性应与证书) 的有效期相对应:

New-MsolServicePrincipalCredential -AppPrincipalId 00000004-0000-0ff1-ce00-000000000000 -Type Asymmetric -Usage Verify -Value $credentialsValue -StartDate 6/1/2012 -EndDate 5/31/2013

然后,应重复该命令,这次使用 Exchange 2013 的 AppPrincipalId 属性值。

如果您稍后需要删除该证书,可通过先检索证书的 KeyId 来执行此操作:

Get-MsolServicePrincipalCredential -AppPrincipalId 00000004-0000-0ff1-ce00-000000000000

此命令将返回与以下内容类似的数据:

Type      : Asymmetric
Value     : 
KeyId     : bc2795f3-2387-4543-a95d-f92c85c7a1b0
StartDate : 6/1/2012 8:00:00 AM
EndDate   : 5/31/2013 8:00:00 AM
Usage     : Verify

然后,您可以使用与以下内容类似的命令删除该证书:

Remove-MsolServicePrincipalCredential -AppPrincipalId 00000004-0000-0ff1-ce00-000000000000 -KeyId bc2795f3-2387-4543-a95d-f92c85c7a1b0

除了分配证书,还必须通过为本地版本的 Lync Server 2013 添加服务器主体名称来配置 Microsoft 365 服务主体以供Exchange Online。 这可以通过在 Microsoft Online Services PowerShell 会话中运行以下四行来完成:

Set-MSOLServicePrincipal -AppPrincipalID 00000002-0000-0ff1-ce00-000000000000 -AccountEnabled $true

$lyncSP = Get-MSOLServicePrincipal -AppPrincipalID 00000004-0000-0ff1-ce00-000000000000
$lyncSP.ServicePrincipalNames.Add("00000004-0000-0ff1-ce00-000000000000/lync.contoso.com")
Set-MSOLServicePrincipal -AppPrincipalID 00000004-0000-0ff1-ce00-000000000000 -ServicePrincipalNames $lyncSP.ServicePrincipalNames