TeamViewer 单点登录(SSO)旨在通过连接 与身份提供商和用户目录,减少大公司的用户管理工作。TeamViewer
本文适用于持有企业/Tensor 许可证的 TeamViewer 客户 。
要使用TeamViewer 单点登录,您需要
单点登录(SSO)在域一级为所有使用该域电子邮件地址的TeamViewer 账户激活。一旦激活,所有登录相应TeamViewer 账户的用户都会被重定向到为该域配置的身份供应商。
为安全起见,并防止滥用,在激活该功能之前,必须验证域名所有权。
要激活单点登录,请登录管理控制台 ,选择 公司管理,然后选择单点登录菜单项。单击添加域并输入要激活 SSO 的域。
您还需要提供身份供应商的元数据。有三种方法可供选择:
完成后,点击继续。
现在,选择要从 SSO 中排除的电子邮件地址或用户组,然后点击添加域。
添加域名后,就可以生成自定义标识符。TeamViewer 不会存储该自定义标识符,但会将其用于单点登录的初始配置。任何时候都不能更改,否则会破坏单点登录,需要重新设置。任何随机字符串都可以用作客户标识符。以后配置 IDP 时需要使用该字符串。要生成自定义标识符,请单击生成。
成功添加域名后,您需要验证域名所有权。
在域名验证完成之前,单点登录将无法激活。
要验证域名,请为您的域名创建一个新的 TXT 记录,并使用验证页面上显示的值。
📌注意:由于 DNS 系统的原因,验证过程可能需要几个小时。
📌注意:根据您的域管理系统,输入字段的说明可能有所不同。
创建新 TXT 记录后,单击 "开始验证 "按钮启动验证过程。
📌请注意,由于 DNS 系统的原因,验证过程可能需要几个小时。
💡提示:TeamViewer 将在开始验证后的 24 小时内查找 TXT 验证记录。如果在 24 小时内找不到 TXT 记录,则验证失败,状态也会相应更新。在这种情况下,您需要通过此对话框重新启动验证。
以下步骤描述了 Active Directory 联合服务 (ADFS) 的设置过程。说明和命令来自运行Windows Server 2016 Standard(版本 1607)的计算机。
配置基本包括以下两个步骤:
1) 为TeamViewer Single Sign-On 服务添加 ADFS 依赖方信任。这一步需要输入TeamViewer SSO 服务的元数据。可以通过以下方式之一完成:
2) 在新的可信赖方信任的索赔签发策略中添加一条转换规则。
以下各节将介绍使用PowerShell命令提示符和ADFS 管理图形用户界面对所有三种情况进行的配置。
打开一个新的 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 图形用户界面更改所有设置。
这与上述 "自动 "方法非常相似。它要求事先下载元数据 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。
手动配置需要下载并提取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
1) 从服务器管理器启动ADFS 管理工具。
2) 导航至ADFS ➜ 依赖方信任,然后单击右侧导航窗格中的添加依赖方信任...
3) 选择 "意识到索赔",单击 "开始"按钮启动向导
4) 根据您想要的或变体,选择
5) 为可信赖方信托选择一个名称,如TeamViewer 或sso.teamviewer.com或选择预填名称(如适用
6) 为可信赖方信任选择访问控制策略。例如,选择允许所有人
7) 在摘要页面点击 "下一步",添加可信赖方信任
接下来,需要为新的可信赖方信任配置索赔签发策略。
6) 单击完成。
7) 再次添加 "添加规则"并选择 "使用自定义规则发送索赔",添加第二条索赔规则。
8) 输入自定义索赔规则的名称,例如TeamViewer Customer ID
9) 输入以下自定义规则,并将值设置为生成的客户标识符:
=> issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier", Value = "Your Generated Customer Identifier");
请确保在值字段中添加您自己生成的客户标识符。
10) 点击完成
手动配置需要下载并提取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 从 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 客户端。