TeamViewer 单点登录(SSO)旨在通过连接 与身份提供商和用户目录,减少大公司的用户管理工作。TeamViewer

本文适用于持有企业/Tensor 许可证 TeamViewer 客户 。

要求

要使用TeamViewer 单点登录,您需要

  • TeamViewer 13.2.1080 或更新版本
  • 兼容 SAML 2.0 的身份提供商 (IdP)*
  • TeamViewer 帐户,用于访问Management Console 和添加域
  • 访问域名的 DNS 管理,以验证域名所有权
  • TeamViewer Tensor 许可证。

TeamViewer 配置

单点登录(SSO)在域一级为所有使用该域电子邮件地址的TeamViewer 账户激活。一旦激活,所有登录相应TeamViewer 账户的用户都会被重定向到为该域配置的身份供应商。

为安全起见,并防止滥用,在激活该功能之前,必须验证域名所有权。

添加新域

要激活单点登录,请登录管理控制台 ,选择 公司管理,然后选择单点登录菜单项。单击添加域并输入要激活 SSO 的域。

您还需要提供身份供应商的元数据。有三种方法可供选择:

  • 通过 URL:在相应字段中输入 IdP 元数据 URL
  • 通过 XML:选择并上传元数据 XML
  • 手动配置:手动输入所有必要信息。请注意,公钥必须是 Base64 编码的字符串。

完成后,点击继续

现在,选择要从 SSO 中排除的电子邮件地址或用户组,然后点击添加域

创建自定义标识符

添加域名后,就可以生成自定义标识符。TeamViewer 不会存储该自定义标识符,但会将其用于单点登录的初始配置。任何时候都不能更改,否则会破坏单点登录,需要重新设置。任何随机字符串都可以用作客户标识符。以后配置 IDP 时需要使用该字符串。要生成自定义标识符,请单击生成

验证域名所有权

成功添加域名后,您需要验证域名所有权。

在域名验证完成之前,单点登录将无法激活。

要验证域名,请为您的域名创建一个新的 TXT 记录,并使用验证页面上显示的值。

📌注意:由于 DNS 系统的原因,验证过程可能需要几个小时。

📌注意:根据您的域管理系统,输入字段的说明可能有所不同。

创建新 TXT 记录后,单击 "开始验证 "按钮启动验证过程。

📌请注意,由于 DNS 系统的原因,验证过程可能需要几个小时。

💡提示:TeamViewer 将在开始验证后的 24 小时内查找 TXT 验证记录。如果在 24 小时内找不到 TXT 记录,则验证失败,状态也会相应更新。在这种情况下,您需要通过此对话框重新启动验证。

活动目录联盟服务(ADFS)的身份提供商设置

以下步骤描述了 Active Directory 联合服务 (ADFS) 的设置过程。说明和命令来自运行Windows Server 2016 Standard(版本 1607)的计算机。

配置基本包括以下两个步骤:

1) 为TeamViewer Single Sign-On 服务添加 ADFS 依赖方信任。这一步需要输入TeamViewer SSO 服务的元数据。可以通过以下方式之一完成:

  • 自动:这只需要输入元数据 XML 文件的 URL。ADFS 会下载该文件,并自动填写可信赖方信任的所有必填字段。它要求 ADFS 服务器能访问互联网。
  • 半自动:与自动方法类似,但不是提供元数据的 URL,而是事先下载文件本身,并将其作为 XML 文件提供给 ADFS。如果 ADFS 服务器无法访问互联网,这种方法会很有用。
  • 手动:如果上述方法都不适用,则可将元数据手动输入 ADFS。

2) 在新的可信赖方信任的索赔签发策略中添加一条转换规则。

以下各节将介绍使用PowerShell命令提示符和ADFS 管理图形用户界面对所有三种情况进行的配置。

使用 PowerShell 自动配置

打开一个新的 PowerShell 命令窗口,输入以下命令向 ADFS 添加一个具有默认索赔签发策略的新可信赖方信任:

$customerId = 'Your Generated Customer Identifier'
$claimRules = @'
 @RuleTemplate = "LdapClaims"
 @RuleName = "TeamViewer Login"
 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/nameidentifier",
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query =
 ";objectGUID,mail;{0}", param = c.Value);
 @RuleName = "TeamViewer Customer ID"
 => issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier",
 Value = "
'@ + $customerId + '");'
Add-AdfsRelyingPartyTrust `
 -Name TeamViewer `
 -MetadataUrl https://sso.teamviewer.com/saml/metadata.xml `
 -IssuanceTransformRules $claimRules `
 -AccessControlPolicyName "Permit everyone" `
 -AutoUpdateEnabled $true `
 -MonitoringEnabled $true `
 -Enabled $true

根据需要调整"-Name "参数值(第 13 行)。这是 ADFS 图形用户界面中显示的名称。此外,访问控制策略的名称(第 16 行)也可能因系统而异。

以后可以通过 PowerShell 或 ADFS 图形用户界面更改所有设置。

使用 PowerShell 进行半自动配置

这与上述 "自动 "方法非常相似。它要求事先下载元数据 XML 文件,并将其复制到 ADFS 服务器。

元数据文件可从以下 URL 下载:

https://sso.teamviewer.com/saml/metadata.xml

以下命令假定在 PowerShell 命令提示符的当前目录下有元数据 XML 文件"metadata.xml"。

$customerId = 'Your Generated Customer Identifier'
$claimRules = @'
 @RuleTemplate = "LdapClaims"
 @RuleName = "TeamViewer Login"
 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/nameidentifier",
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query =
 ";objectGUID,mail;{0}", param = c.Value);
 @RuleName = "TeamViewer Customer ID"
 => issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier",
 Value = "
'@ + $customerId + '");'
Add-AdfsRelyingPartyTrust `
 -Name TeamViewer `
 -MetadataFile metadata.xml `
 -IssuanceTransformRules $claimRules `
 -AccessControlPolicyName "Permit everyone" `
 -Enabled $true

与 "自动 "方法的主要区别在于使用了"-MetadataFile "参数(而不是"-MetadataUrl" - 第 14 行)。自动更新启用 "和 "监控启用 "参数被省略,因为这两个参数都需要提供一个有效的元数据 URL。

使用 Powershell 手动配置

手动配置需要下载并提取TeamViewer SAML 服务提供商签名/加密证书的公钥。

在 PowerShell 命令提示符中执行以下命令,手动添加可信赖方信任:

$customerId = 'Your Generated Customer Identifier'
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(".\sso.teamviewer.com - saml.cer", "")
$claimRules = @'
 @RuleTemplate = "LdapClaims"
 @RuleName = "TeamViewer Login"
 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/nameidentifier",
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), query =
 ";objectGUID,mail;{0}", param = c.Value);
 @RuleName = "TeamViewer Customer ID"
 => issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier",
 Value = "
'@ + $customerId + '");'
$samlEndpoints = @(
 (New-AdfsSamlEndpoint -Binding POST -Protocol SAMLAssertionConsumer -Uri https://sso.teamviewer.com/saml/acs -Index 0),
 (New-AdfsSamlEndpoint -Binding Redirect -Protocol SAMLAssertionConsumer -Uri https://sso.teamviewer.com/saml/acs -Index 1)
)
Add-AdfsRelyingPartyTrust `
 -Name "TeamViewer" `
 -Identifier "https://sso.teamviewer.com/saml/metadata" `
 -RequestSigningCertificate $cert `
 -EncryptionCertificate $cert `
 -SamlEndpoint $samlEndpoints `
 -IssuanceTransformRules $claimRules `
 -AccessControlPolicyName "Permit everyone" `
 -Enabled $true

还请查看 "Add-AdfsRelyingPartyTrust "PowerShell 命令小程序的官方文档: https://technet.microsoft.com/en-us/library/ee892322.aspx

使用 ADFS 管理工具(图形)进行半自动配置

1) 从服务器管理器启动ADFS 管理工具。

2) 导航至ADFS ➜ 依赖方信任,然后单击右侧导航窗格中的添加依赖方信任...

3) 选择 "意识到索赔",单击 "开始"按钮启动向导

4) 根据您想要的或变体,选择

  • 通过 URL 导入元数据

5) 为可信赖方信托选择一个名称,如TeamViewersso.teamviewer.com或选择预填名称(如适用

6) 为可信赖方信任选择访问控制策略。例如,选择允许所有人

7) 在摘要页面点击 "下一步",添加可信赖方信任

接下来,需要为新的可信赖方信任配置索赔签发策略。

  1. 选择依赖方信任,然后单击右侧导航窗格中的"编辑申请发布策略..."。
  2. 单击 "添加规则",然后选择 "将LDAP 属性作为索赔发送"。
  3. 输入转换规则的名称,如TeamViewer Login
  4. 选择Active Directory作为属性存储。
  5. 添加以下两个映射

6) 单击完成

7) 再次添加 "添加规则"并选择 "使用自定义规则发送索赔",添加第二条索赔规则。

8) 输入自定义索赔规则的名称,例如TeamViewer Customer ID

9) 输入以下自定义规则,并将设置为生成的客户标识符:

=> issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier", Value = "Your Generated Customer Identifier");

请确保在值字段中添加您自己生成的客户标识符。

10) 点击完成

使用 ADFS 管理工具(图形)手动配置

手动配置需要下载并提取TeamViewer SAML 服务提供商签名/加密证书的公钥。

请参阅下面的 "技术信息 "部分,了解如何获取证书。

1) 从服务器管理器启动ADFS 管理工具

2) 导航至ADFS - 依赖方信任,然后单击右侧导航窗格中的添加依赖方信任...

3) 选择 "意识到索赔",单击 "开始 "按钮启动向导

4) 选择手动输入数据(第三点)

5) 为可信赖方信托选择一个名称,如TeamViewer sso.teamviewer.com或选择预填名称(如适用

6) 浏览证书文件(见上文注释)

7) 选中 "启用对 SAML 2.0 WebSSO 协议的支持"复选框,并输入以下服务 URL: https://sso.teamviewer.com/saml/acs

8) 在 "配置标识符 "页面,添加https://sso.teamviewer.com/saml/metadata作为标识符

9) 确认添加可信赖方信任。

10) 按照上述自动 程序的说明配置索赔签发策略。

11) 接下来,配置依赖方信任的签名证书。因此,打开属性(双击)并导航到签名 选项卡。浏览到与上述相同的证书文件

12)可选择向可信赖方信任添加第二个 SAML 端点。导航至端点 选项卡,然后单击添加 SAML端点

TeamViewer 客户端配置

TeamViewer 从 13.2.1080 版开始与单点登录兼容。

以前的版本不支持单点登录,也不能在登录时将用户重定向到身份供应商。客户端配置是可选的,但可以更改用于单点登录 IdP 的浏览器。

TeamViewer 客户端默认使用嵌入式浏览器进行身份供应商身份验证。如果希望使用操作系统的默认浏览器,可以更改此行为:

Windows:

HKEY_CURRENT_USER\Software\TeamViewer\SsoUseEmbeddedBrowser = 0 (DWORD)

macOS:

defaults write com.teamviewer.teamviewer.preferences SsoUseEmbeddedBrowser -int 0

📌注意:创建或更改注册表后,需要重新启动TeamViewer 客户端。