TeamViewer单点登录(SSO)旨在通过将TeamViewer与身份提供者和用户目录相连接来减少大公司的用户管理工作。
本文适用于具有Enterprise/Tensor许可证的TeamViewer客户。
要使用TeamViewer单点登录,您需要
使用此域的电子邮件地址为所有TeamViewer帐户在域级别激活单点登录(SSO)。激活后,登录相应TeamViewer帐户的所有用户都将重定向到已为域配置的身份提供程序。
出于安全原因和防止滥用,需要在激活功能之前验证域所有权。
要激活SSO,请登录TeamViewer 管理平台 (Management Console)并选择Single Sign-On菜单条目。单击添加域,然后输入要为其激活SSO的域。
您还需要为身份提供者提供元数据。有三种选择可供选择:
添加域后,可以生成自定义标识符。 TeamViewer不存储此自定义标识符,但用于SSO的初始配置。它不能在任何时间点更改,因为这将打破单点登录并且需要新的设置。任何随机字符串都可以用作客户标识符。稍后需要此字符串来配置IdP。
成功添加域后,您需要验证域所有权。
在域验证完成之前,不会激活单点登录。
要验证域名,请使用验证页面上显示的值为您的域名创建新的TXT记录。
📌注意: 由于DNS系统,验证过程可能需要几个小时。
添加TXT记录的对话框可能类似于:
📌注意: 根据您的域管理系统,输入字段的描述可能有所不同。
创建新的TXT记录后,单击“开始验证”按钮开始验证过程。
📌请注意,由于DNS系统,验证过程可能需要几个小时。
💡提示: TeamViewer将在开始验证后24小时内查找TXT验证记录。如果我们在24小时内找不到TXT记录,则验证失败并且状态会相应更新。在这种情况下,您需要通过此对话框重新启动验证。
💡提示: 为单点登录添加域时,建议将拥有帐户添加到排除列表中。这样做的原因是即使IdP不工作,您仍然可以访问域配置。
示例:TeamViewer帐户“[email protected]”为单点登录添加域“example.com”。添加域后,应将电子邮件地址“[email protected]”添加到排除列表中。.
以下步骤描述了Active Directory联合身份验证服务(ADFS)的设置过程。已从运行Windows Server 2016 Standard(版本1607)的计算机上获取了方向和命令。
配置基本上包括以下两个步骤:
1)为TeamViewer单点登录服务添加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
以下命令假定元数据XML文件在PowerShell命令提示符的当前目录中可用作“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行)。 省略了“-AutoUpdateEnabled”和“-MonitoringEnabled”参数,因为两者都需要给出有效的元数据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
3.选择声明感知并单击开始按钮启动向导
4.根据您是要使用自动变体还是半自动变体,请选择
5.选择信赖方信任的名称,例如TeamViewer或sso.teamviewer.com,或者选择预先填写的名称(如果适用)
6.选择信赖方信任的访问控制策略。例如。选择允许每个人
7.在摘要屏幕上单击“下一步”以添加信赖方信任
接下来,需要为新的依赖方信任配置声明发布策略。
6.单击完成。
7.通过再次添加添加规则添加第二个声明规则,然后选择使用自定义规则发送声明。
8.输入自定义声明规则的名称,例如 TeamViewer客户ID
9.输入以下自定义规则,并将值设置为生成的客户标识符:
=> issue(Type = "http://sso.teamviewer.com/saml/claims/customeridentifier", Value = "Your Generated Customer Identifier");
请确保在值字段中添加您自己生成的客户标识符。
10.单击完成。
手动配置需要下载并提取TeamViewer SAML服务提供商的签名/加密证书的公钥。
请参阅下面的技术信息部分,了解如何获取证书。
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端点”
从版本13.2.1080开始,TeamViewer与Single Sign-On兼容。
以前的版本不支持单点登录,并且在登录期间无法将用户重定向到您的身份提供商。客户端配置是可选的,但允许更改已使用的浏览器以进行IdP的SSO登录。
默认情况下,TeamViewer客户端将使用嵌入式浏览器进行身份提供程序身份验证。如果您更喜欢使用操作系统的默认浏览器,则可以通过以下注册表项更改此行为:
Windows
HKEY_CURRENT_USER\Software\TeamViewer\SsoUseEmbeddedBrowser = 0 (DWORD)
macOS:
defaults write com.teamviewer.teamviewer.preferences SsoUseEmbeddedBrowser -int 0
📌注意: 您需要在创建或更改注册表后重新启动TeamViewer客户端。