为 Skype for Business Server 混合环境配置服务器到服务器身份验证。
总结: 为 Skype for Business Server 混合环境配置服务器到服务器身份验证。
在混合配置中,某些用户驻留在本地安装 Skype for Business Server。 其他用户驻留在 Microsoft 365 或 Office 365 版本的 Skype for Business Server 上。 若要在混合环境中配置服务器到服务器身份验证,必须首先将 Skype for Business Server 的本地安装配置为信任授权服务器。 此过程中的初始步骤可以通过运行以下 Skype for Business Server 命令行管理程序脚本来执行:
$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 相同。 因此,脚本中的第一行用于返回指定租户 (的 TenantId 属性的值,在这种情况下,fabrikam.com) 然后将该名称分配给变量$TenantId:
$TenantID = (Get-CsTenant -Filter {DisplayName -eq "Fabrikam.com"}).TenantId
若要执行此脚本,必须已安装 Skype for Business Online PowerShell 模块,并使用此模块连接到租户。 如果尚未安装这些 cmdlet,脚本将失败,因为 Get-CsTenant cmdlet 将不可用。 脚本完成后,必须配置 Skype for Business Server 与授权服务器之间的信任关系,以及 Exchange 2013/2016 与授权服务器之间的第二个信任关系。 这只能使用 Microsoft Online Services cmdlet 来完成。
注意
如果尚未安装 Microsoft Online Services cmdlet,则需要使用 cmdlet install-module MSOnline
从 PowerShell 存储库安装它。 有关安装和使用 Microsoft Online Services 模块的详细信息,请参阅 Microsoft 365 网站。 这些说明还将介绍如何在 Microsoft 365 或 Office 365 与 Active Directory 之间配置单一登录、联合和同步。
配置 Microsoft 365 或 Office 365 后,以及为 Skype for Business Server 和 Exchange 2013 创建 Microsoft 365 或 Office 365 服务主体后,需要向这些服务主体注册凭据。 若要注册凭据,必须首先获取保存为 的 X.509 Base64 证书。CER 文件。 然后,此证书将应用于 Microsoft 365 或 Office 365 服务主体。
注意
Azure AD Powershell 计划于 2024 年 3 月 30 日弃用。 若要了解详细信息,请阅读 弃用更新。
建议迁移到 Microsoft Graph PowerShell ,以与 Microsoft Entra ID (以前的 Azure AD) 交互。 Microsoft Graph PowerShell 允许访问所有 Microsoft Graph API,可在 PowerShell 7 上使用。 有关常见迁移查询的解答,请参阅 迁移常见问题解答。
获取 X.509 证书后,打开 PowerShell 控制台并导入 Microsoft Online Windows PowerShell 模块,其中包含可用于管理服务主体的 cmdlet:
Import-Module MSOnline
导入模块时,键入以下命令,然后按 Enter:
Connect-MsolService
按 Enter 后,随即出现一个凭据对话框。 在对话框中输入 Microsoft 365 或 Office 365 用户名和密码,然后选择“确定”。
连接到 Microsoft 365 或 Office 365 后,即可运行以下命令以返回有关服务主体的信息:
Get-MsolServicePrincipal
您应获得与以下信息类似的所有服务主体的相关信息:
ExtensionData : System.Runtime.Serialization.ExtensionDataObject AccountEnabled : True Addresses : {} AppPrincipalId : 00000004-0000-0ff1-ce00-000000000000 DisplayName : Skype for Business Server ObjectId : aada5fbd-c0ae-442a-8c0b-36fec40602e2 ServicePrincipalName : SkypeForBusinessServer/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 或 Office 365 服务主体。 为此,请先使用 Get-MsolServicePrincipal 检索 Skype for Business Server 和 Microsoft Exchange 服务主体的 AppPrincipalId 属性的值;AppPrincipalId 属性的值将用于标识要分配证书的服务主体。 有了 Skype for Business Server 的 AppPrincipalId 属性值,请使用以下命令将证书分配给 Skype For Business Online 版本:
New-MsolServicePrincipalCredential -AppPrincipalId 00000004-0000-0ff1-ce00-000000000000 -Type Asymmetric -Usage Verify -Value $credentialsValue
然后,应重复此命令,这次使用 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
除了分配证书外,还必须配置 Exchange Online 服务主体,并将本地版本的 Skype for Business Server 外部 Web 服务 URL 配置为 Microsoft 365 或 Office 365 服务主体。 可通过执行下面两条命令达到此目的。
在以下示例中,Pool1ExternalWebFQDN.contoso.com 是 Skype for Business Server 池的外部 Web 服务 URL。 应重复这些步骤,以在部署中添加所有外部 Web 服务 URL。
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/Pool1ExternalWebFQDN.contoso.com")
Set-MSOLServicePrincipal -AppPrincipalID 00000004-0000-0ff1-ce00-000000000000 -ServicePrincipalNames $lyncSP.ServicePrincipalNames