O TeamViewer Single Sign-On (SSO) tem como objetivo reduzir os esforços de gerenciamento de usuários para grandes empresas, conectando o site TeamViewer a provedores de identidade e diretórios de usuários.

Este artigo se aplica aos clientes do site TeamViewer com uma licença TeamViewer Tensor.

Requisitos

Para usar o TeamViewer Single Sign-On, você precisa

  • Um TeamViewer versão 13.2.1080 ou mais recente.
  • Um provedor de identidade compatível com SAML 2.0 (IdP)*.
  • Uma conta TeamViewer para acessar o Management Console e adicionar domínios.
  • Acesso ao gerenciamento de DNS de seu domínio para verificar a propriedade do domínio.
  • Uma licença TeamViewer Tensor.

TeamViewer configuração

O Single Sign-On (SSO) é ativado em um nível de domínio para todas as contas TeamViewer que usam um endereço de e-mail com esse domínio. Uma vez ativado, todos os usuários que fizerem login em uma conta TeamViewer correspondente serão redirecionados para o provedor de identidade que foi configurado para o domínio.

Por motivos de segurança e para evitar abusos, é necessário verificar a propriedade do domínio antes que o recurso seja ativado.

Adicionar um novo domínio

Para ativar o SSO, faça login em Management Console, selecione Administração da empresa e, em seguida, a entrada de menu Single Sign-On. Clique em Add domain (Adicionar domínio) e digite o domínio para o qual você deseja ativar o SSO.

Você também precisa fornecer os metadados do seu provedor de identidade. Há três opções disponíveis para fazer isso:

  • via URL: Digite o URL de metadados do IdP no campo correspondente
  • via XML: Selecione e carregue seus metadados XML
  • Configuração manual: Insira manualmente todas as informações necessárias. Observe que a chave pública deve ser uma cadeia de caracteres codificada em Base64.

Quando isso for feito, clique em Continue.

Agora, selecione os endereços de e-mail ou grupos de usuários que deseja excluir do SSO e clique em Add domain (Adicionar domínio).

Criar identificador personalizado

Depois que o domínio tiver sido adicionado, o identificador personalizado poderá ser gerado. Esse identificador personalizado não é armazenado pelo site TeamViewer, mas é usado para a configuração inicial do SSO. Ele não deve ser alterado em nenhum momento, pois isso interromperá o Single Sign-On e será necessária uma nova configuração. Qualquer cadeia aleatória pode ser usada como identificador de cliente. Essa cadeia será necessária posteriormente para a configuração do IDP. Para gerar o identificador personalizado, clique em Generate (Gerar).

Como verificar a propriedade do domínio

Depois que um domínio for adicionado com êxito, você precisará verificar a propriedade do domínio.

O Single Sign-On não será ativado antes que a verificação do domínio seja concluída.

Para verificar o domínio, crie um novo registro TXT para o seu domínio com os valores mostrados na página de verificação.

📌Lembrete: O processo de verificação pode levar várias horas devido ao sistema DNS.

📌Lembrete: Dependendo do seu sistema de gerenciamento de domínio, a descrição dos campos de entrada pode variar.

Depois de criar o novo registro TXT, inicie o processo de verificação clicando no botão Iniciar verificação.

Observe que o processo de verificação pode levar várias horas devido ao sistema DNS.

💡Dica: O TeamViewer procurará o registro de verificação TXT por 24 horas após o início da verificação. Se não conseguirmos encontrar o registro TXT dentro de 24 horas, a verificação falhará e o status será atualizado de acordo. Nesse caso, você precisará reiniciar a verificação por meio dessa caixa de diálogo.

Configuração do provedor de identidade para o Active Directory Federation Services (ADFS)

As etapas a seguir descrevem o procedimento de configuração do Active Directory Federation Services (ADFS). As instruções e os comandos foram obtidos em uma máquina que executa o Windows Server 2016 Standard (versão 1607).

A configuração consiste basicamente nas duas etapas a seguir:

1. Adicione um ADFS Relying Party Trust para o serviço TeamViewer Single Sign-On. Esta etapa requer a inserção de metadados do serviço TeamViewer SSO. Isso pode ser feito de uma das seguintes maneiras:

  • Automático: Isso requer apenas a inserção de um URL para o arquivo XML de metadados. O arquivo é baixado pelo ADFS e todos os campos obrigatórios da confiança da parte confiável são preenchidos automaticamente. É necessário que o servidor ADFS tenha acesso à Internet.
  • Semi-automático: Como o método automático, mas em vez de fornecer um URL para os metadados, o arquivo em si é baixado antecipadamente e fornecido ao ADFS como arquivo XML. Isso pode ser útil se o servidor ADFS não tiver acesso à Internet.
  • Manual: Se nenhum dos métodos acima for aplicável, os metadados poderão ser inseridos manualmente no ADFS.

2. Adicione uma regra de transformação à política de emissão de solicitações da nova confiança da parte confiável.

As seções a seguir descrevem a configuração para os três cenários usando o prompt de comando do PowerShell e a interface gráfica do usuário do ADFS Management.

Configuração automática usando o PowerShell

Abra uma nova janela de comando do PowerShell e digite os seguintes comandos para adicionar uma nova confiança de parte confiável com uma política de emissão de reivindicação padrão para o 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

Adapte o valor do parâmetro "-Name" (linha 13) às suas necessidades. Esse é o nome exibido na interface gráfica do usuário do ADFS. Além disso, o nome da política de controle de acesso (linha 16) pode ser diferente no seu sistema.

Todas as configurações podem ser alteradas posteriormente por meio do PowerShell ou da interface gráfica do usuário do ADFS.

Configuração semi-automática usando o PowerShell

Esse método é muito semelhante ao método "automático" descrito acima. Ele requer o download prévio do arquivo XML de metadados e sua cópia para o servidor ADFS.

O arquivo de metadados pode ser baixado do seguinte URL:

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

Os comandos a seguir pressupõem que o arquivo XML de metadados esteja disponível no diretório atual do prompt de comando do PowerShell como "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

A principal diferença em relação ao método "automático" é o uso do parâmetro "-MetadataFile" (em vez de "-MetadataUrl" - linha 14). Os parâmetros "-AutoUpdateEnabled" e "-MonitoringEnabled" foram omitidos, pois ambos exigem que seja fornecido um URL de metadados válido.

Configuração manual usando o Powershell

A configuração manual requer o download e a extração da chave pública do certificado de assinatura/criptografia do provedor de serviços TeamViewer SAML.

Execute os seguintes comandos em um prompt de comando do PowerShell para adicionar manualmente uma confiança de parte confiável:

$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

Dê uma olhada também na documentação oficial do commandlet do PowerShell "Add-AdfsRelyingPartyTrust": https://technet.microsoft.com/en-us/library/ee892322.aspx

Configuração semi-automática usando as ferramentas de gerenciamento do ADFS (gráficas)

1. Inicie as ferramentas de gerenciamento do ADFS no Gerenciador de servidores.

2. Navegue até ADFSRelying Party Trusts e clique em Add Relying Party Trust... no painel de navegação à direita

3. Selecione Aviso de sinistros e inicie o assistente clicando no botão Iniciar.

4. Dependendo do fato de você desejar ter a variante ou a variante, selecione:

  • Importar os metadados por meio do URL

5. Escolha um nome para a confiança da parte confiável, como TeamViewer ou sso.teamviewer.com ou escolha o nome pré-preenchido, se aplicável

6. Selecione a política de controle de acesso para a confiança da parte confiável. Por exemplo, escolha permitir todos

7. Clique em Next na tela de resumo para adicionar a confiança da parte confiável

Em seguida, a política de emissão de reivindicações precisa ser configurada para a nova confiança da parte confiável.

  1. Selecione a confiança da parte confiável e clique em Edit Claim Issuance Policy... (Editar política de emissão de solicitações) no painel de navegação à direita.
  2. Clique em Add Rule (Adicionar regra) e selecione Send LDAP Attributes as Claims (Enviar atributos LDAP como reivindicações)
  3. Digite um nome para a regra de transformação, por exemplo, TeamViewer Login
  4. Selecione Active Directory como armazenamento de atributos.
  5. Adicione os dois mapeamentos a seguir:
Atributo LDAP Tipo de reivindicação de saída Observações

objectGUID

ID do nome

Insira o valor do campo Atributo LDAP manualmente.

Pode ser necessário clicar primeiro na seta suspensa antes de começar a digitar.

Endereço de e-mail

Endereço de email

-

6. Clique em Finish (Concluir).

7. Adicione uma segunda regra de reclamação adicionando Adicionar regra novamente e selecione Enviar reclamações usando uma regra personalizada.

8. Digite um nome para a regra de reclamação personalizada, por exemplo, TeamViewer Customer ID

9. Insira a seguinte regra personalizada e defina o valor como seu identificador de cliente gerado:

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

Certifique-se de adicionar ao campo de valor seu próprio identificador de cliente gerado.

10. Clique em Finish (Concluir)

Configuração manual usando as ferramentas de gerenciamento do ADFS (gráficas)

A configuração manual requer o download e a extração da chave pública do certificado de assinatura/criptografia do provedor de serviços TeamViewer SAML.

Consulte a seção Informações técnicas abaixo para saber como obter o certificado.

1. Inicie as ferramentas de gerenciamento do ADFS no Gerenciador de servidores

2. Navegue até ADFS - Relying Party Trusts e clique em Add Relying Party Trust... no painel de navegação à direita

3. Selecione Aviso de sinistros e inicie o assistente clicando no botão Iniciar.

4. Selecione para inserir os dados manualmente (terceiro ponto).

5. Escolha um nome para a confiança da parte confiável, como TeamViewer ou sso.teamviewer.com ou escolha o nome pré-preenchido, se aplicável.

6. Navegue até o arquivo de certificado (veja o comentário acima).

7. Marque a caixa Habilitar suporte para o protocolo SAML 2.0 WebSSO e digite o seguinte URL de serviço: https://sso.teamviewer.com/saml/acs

8. Na página Configure Identifiers (Configurar identificadores), adicione https://sso.teamviewer.com/saml/metadata como identificador.

9. Confirme a adição da confiança da parte confiável.

10. Configure a política de emissão de reclamações conforme descrito no procedimento automático acima.

11. Em seguida, configure o certificado de assinatura da confiança da parte confiável. Portanto, abra as propriedades (clique duas vezes) e navegue até a guia Signature (Assinatura). Navegue até o mesmo arquivo de certificado mencionado acima

12. Opcionalmente, adicione um segundo ponto de extremidade SAML à confiança da parte confiável. Navegue até a guia Endpoints e clique em Add SAML endpoint

  • Selecione SAML Assertion Consumer como tipo de ponto de extremidade
  • Selecione Redirect como vinculação
  • Defina o índice como 1
  • Defina o URL confiável como https://sso.teamviewer.com/saml/acs

TeamViewer Configuração de cliente

TeamViewer é compatível com o Single Sign-On a partir da versão 13.2.1080.

As versões anteriores não são compatíveis com Single Sign-On e não podem redirecionar os usuários para o seu provedor de identidade durante o login. A configuração do cliente é opcional, mas permite alterar o navegador usado para o login de SSO do IdP.

O cliente TeamViewer usará um navegador incorporado para a autenticação do provedor de identidade por padrão. Se preferir usar o navegador padrão do sistema operacional, você pode alterar esse comportamento:

Windows:

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

macOS:

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

📌Lembrete: É necessário reiniciar o cliente TeamViewer após criar ou alterar o registro.