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.
Para usar o TeamViewer Single Sign-On, você precisa
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.
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:
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).
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).
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.
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:
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.
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.
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.
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
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. Dependendo do fato de você desejar ter a variante ou a variante, selecione:
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.
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)
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
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.