El objetivo del Inicio de Sesión Único de TeamViewer (SSO en inglés) es reducir los esfuerzos de gestión de usuarios de las grandes empresas mediante la conexión de TeamViewer con los proveedores de identidad y los directorios de usuarios.

Este artículo concierne a los clientes de TeamViewer con una licencia Enterprise/Tensor.

Requisitos

Para utilizar Inicio de Sesión Único de TeamViewer, necesitas:

  • una versión de TeamViewer 13.2.1080 o superior
  • un proveedor de identidad compatible con SAML 2.0 (IdP)
  • una cuenta de TeamViewer para acceder a la Management Console y añadir dominios
  • acceso a la gestión de DNS de tu dominio para verificar la propiedad del dominio
  • una licencia de TeamViewer Tensor (Classic)

Configuración de la Management Console (MCO)

El Inicio de Sesión Único (SSO) se activa a nivel de dominio para todas las cuentas de TeamViewer utilizando una dirección de correo electrónico con este dominio. Una vez activado, todos los usuarios que inician sesión en la cuenta de TeamViewer correspondiente se redirigen al proveedor de identidades que se ha configurado para el dominio.

Por razones de seguridad y para evitar abusos, es necesario verificar la propiedad del dominio antes de activar la función.

Añadir un nuevo dominio

Para activar SSO, inicia sesión en la Management Console y selecciona la entrada del menú Inicio de Sesión Único. Haz clic en Añadir el primer dominio e introduce el dominio para el que quieres activar el SSO.

También debes proporcionar los metadatos de tu proveedor de identidad. Hay tres opciones disponibles para hacerlo:

  • vía URL: introduce tu URL de metadatos IdP en el campo correspondiente
  • vía XML: selecciona y carga tus metadatos XML
  • Configuración manual: introduce manualmente toda la información necesaria. Ten en cuenta que la clave pública debe ser una cadena codificada Base64.

 

Crear un identificador personalizado

Una vez añadido el dominio, se puede generar el identificador personalizado. TeamViewer no almacena este identificador personalizado, pero se utiliza para la configuración inicial de SSO. No debe ser cambiado en ningún momento, ya que esto interrumpirá el Inicio de Sesión Único y será necesario configurarlo de nuevo. Cualquier cadena aleatoria puede ser utilizada como identificador de cliente. Esta cadena se requiere posteriormente para la configuración del IdP.

Verificar la propiedad del dominio

En el momento en el que el dominio haya sido agregado correctamente, es necesario verificar la propiedad del dominio.

El Inicio de Sesión Único no se activará antes de que se complete la verificación del dominio.

Para verificar el dominio, crea un nuevo registro TXT para tu dominio con los valores mostrados en la página de verificación.

📌Nota: El proceso de verificación puede tardar varias horas debido al sistema DNS.

El cuadro de diálogo para añadir un registro TXT puede parecerse a:

 

📌Nota: Dependiendo de su sistema de gestión de dominio, la descripción de los campos de entrada puede variar.

Después de crear el nuevo registro TXT, inicia el proceso de verificación haciendo clic en el botón "Iniciar verificación".

📌Ten en cuenta que el proceso de verificación puede tardar varias horas debido al sistema DNS.

💡Sugerencia: TeamViewer buscará el registro de verificación TXT durante 24 horas después de iniciar la verificación. Si no podemos encontrar el registro TXT en 24 horas, la verificación falla y el estado se actualiza acorde. En este caso, reinicia la verificación a través de este cuadro de diálogo. 

💡Sugerencia2: Al añadir un dominio para el Inicio de Sesión Único, se recomienda añadir la cuenta de propietario a la lista de exclusión. La razón de esto es un escenario de fallback que mantiene el acceso a la configuración del dominio incluso si el IdP no está funcionando.

Ejemplo: La cuenta de TeamViewer "[email protected]" añade el dominio "example.com" para el Inicio de Sesión Único. Después de añadir el dominio, la dirección de correo electrónico "[email protected]" debe añadirse a la lista de exclusión. Esto es necesario para realizar cambios en la configuración de SSO, incluso cuando Single Sign-On no funciona debido a una configuración errónea.

💡Sugerencia3: Al añadir un dominio para Single Sign-On, se recomienda añadir propietarios adicionales al dominio SSO, ya que la propiedad SSO no se hereda dentro de tu empresa. 

Ejemplo: Después de que la cuenta de TeamViewer "[email protected]" añade el dominio "example.com" para el Inicio de Sesión Único, añade varios administradores de empresa (por ejemplo, "[email protected]") como propietarios del dominio, para que también puedan gestionar el dominio y su configuración SSO.

Configuración del proveedor de identidades para Active Directory Federation Services (ADFS)

Los siguientes pasos describen el procedimiento de configuración para Active Directory Federation Services (ADFS). Las instrucciones y comandos se han tomado de una máquina que ejecuta Windows Server 2016 Standard (Versión 1607).

La configuración consiste básicamente en los dos pasos siguientes:

1) Añade un ADFS Relying Party Trust para el servicio TeamViewer Single Sign-On. Este paso requiere que se introduzcan los metadatos del servicio SSO de TeamViewer. Esto se puede hacer de una de las siguientes maneras:

  • Manual: Si ninguno de los métodos anteriores es aplicable, los metadatos pueden introducirse manualmente en el ADFS.
  • Semi-Automático: Al igual que el método automático, pero en lugar de proporcionar una URL a los metadatos, el propio archivo se descarga de antemano y se entrega a ADFS como archivo XML. Esto puede ser útil si el servidor ADFS no tiene acceso a Internet.
  • Automático: Esto sólo requiere introducir una URL en el archivo XML de metadatos. El archivo es descargado por el ADFS y todos los campos obligatorios del fideicomiso de la parte que confía se rellenan automáticamente. Requiere que el servidor ADFS tenga acceso a Internet.

2) Añade una regla de transformación a la política de emisión de reclamaciones de la nueva parte en la que confías.

Las siguientes secciones describen la configuración para los tres escenarios usando el prompt de PowerShell command y la interfaz gráfica de usuario de ADFS Management:

Configuración automática con PowerShell

Abre una nueva ventana de comandos de PowerShell e introduce los siguientes comandos para añadir la confianza a la nueva parte en la que confías con una política de emisión de reclamaciones predeterminada a 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

Adapta el valor del parámetro "-Nombre" (línea 13) a tus necesidades. Este es el nombre que se muestra en la interfaz gráfica de usuario del ADFS. Además, el nombre de la política de control de acceso (línea 16) puede variar en tu sistema.

Todos los ajustes se pueden modificar posteriormente a través de PowerShell o de la interfaz gráfica de usuario de ADFS.

Configuración semi-automática utilizando PowerShell

Esto es muy similar al método "automático" descrito anteriormente. Es necesario descargar previamente el archivo XML de metadatos y copiarlo en el servidor ADFS.

El archivo de metadatos se puede descargar desde la siguiente URL:

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

Los siguientes comandos suponen que el archivo XML de metadatos está disponible en el directorio actual del símbolo del sistema de 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

La principal diferencia con el método "automático" es la utilización del parámetro "-MetadataFile" (en lugar de "-MetadataUrl" - línea 14). Se han omitido los parámetros "-AutoUpdateEnabled" y "-MonitoringEnabled", ya que ambos requieren una URL de metadatos válida.

Configuración manual utilizando Powershell

La configuración manual requiere la descarga y extracción de la clave pública del certificado de firma/cifrado del proveedor de servicios de TeamViewer SAML.

Ejecuta los siguientes comandos en una línea de comandos de PowerShell para agregar manualmente la confianza de la nueva parte en la que confías:

$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

Consulta también la documentación oficial del comando "Add-AdfsRelyingPartyTrust" de PowerShell: https://technet.microsoft.com/en-us/library/ee892322.aspx

Configuración semi-automática utilizando las herramientas de gestión ADFS (gráficos)

1) Inicia ADFS Management desde el administrador de servidores.

2) Navega a ADFS --> entidades de confianza y haz clic en agregar entidad de confianza.... en el panel de navegación de la derecha.

3) Selecciona reclamaciones conocidas e inicia el asistente haciendo clic en el botón inicio

4) Dependiendo de si deseas tener la variante automática o semi-automática, selecciona:

  • importa los metadatos a través de la URL
  • Introducir los metadatos URL: https://sso.teamviewer.com/saml/metadata.xml importa los metadatos en forma de un archivo. Busca el archivo XML de metadatos descargado. El archivo se puede descargar desde la URL anterior.

5) Elige un nombre para la entidad de confianza, como TeamViewer o sso.teamviewer.com o elige un nombre predefinido.

6) Selecciona la política de control de acceso para la entidad de confianza. Por ejemplo, elegir permitir a todos

7) Haz clic en siguiente en la pantalla de resumen para agregar la confianza de la entidad de confianza.

A continuación, la política de emisión de reclamaciones debe configurarse para el nueva entidad de confianza.

1) Selecciona la confianza de la entidad de confianza y haz clic en "editar la política de emisión de reclamaciones..." en el panel de navegación de la derecha.

2) Haz click en añadir regla y elige enviar atributos LDAP como reclamación

3) Introduzce un nombre para la regla de transformación, p. ej. Inicio de sesión TeamViewer

4) Selecciona Active Directory como almacenamiento de atributos.

5) Asigna estos dos atributos:

LDAP attribute Outgoing claim type Remarks

objectGUID

Name ID

Enter the value of the LDAP Attribute field manually.

You may need to click on the dropdown arrow first, before starting to type.

E-mail addresses

E-mail addresses

-

6. Haz clic en finalizar

7) Añade una segunda regla de reclamación añadiendo añadir regla de nuevo y selecciona enviar reclamaciones utilizando una regla personalizada.

8) Introduce un nombre para la norma de reclamación aduanera, por ej. ID de cliente de TeamViewer.

9) Introduce la siguiente regla personalizada y establece el valor de tu identificador de cliente generado:

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

Por favor, asegúrate de añadir tu propio identificador de cliente generado al campo de valor.

10) Haz clic en finalizar.

Configuración manual usando las herramientas de gestión ADFS (gráfica)

La configuración manual requiere la descarga y extracción de la clave pública del certificado de firma/cifrado del proveedor de servicios de TeamViewer SAML.

Por favor, consulta la sección de información técnica a continuación para saber cómo obtener el certificado.

1) Inicia la herramienta ADFS Management desde el administrador de servidores

2) Navega hasta ADFS - Entidades de confianza y haz clic en añadir entidades de confianza.... en el panel de navegación de la derecha.

3) Selecciona reclamaciones detectadas e inicia el asistente haciendo clic en el botón inicio.

4) Selecciona para introducir los datos manualmente (tercer punto)

5) Elige un nombre para la entidad de confianza, como TeamViewer or sso.teamviewer.com o un nombre predefinido.

6) Busca el archivo del certificado (consulta el comentario anterior)

7) Comprueba la casilla Habilitar compatibilidad con el protocolo SAML 2.0 WebSSO e introduce la siguiente URL de servicio: https://sso.teamviewer.com/saml/acs

8) En la página configurar identificadores, añade https://sso.teamviewer.com/saml/metadata como identificador

9) Confirma añadiendo la entidad de confianza.

10) Configura la política de emisión de reclamaciones como se describe en el procedimiento automático anterior.

11) A continuación, configure el certificado de firma de la entidad de confianza. Para ello, abre las propiedades (haz doble clic) y vete a la pestaña firma. Busca el archivo de certificado mencionado anteriormente.

12) Opcionalmente, añade un segundo punto final SAML a la entidad de confianza. Vete a la pestaña de puntos finales y haz clic en añadir punto final SAML.

  • Selecciona SAML Assertion Consumer como tipo de punto final
  •  Selecciona redireccionar como encuadernado
  • Ajusta el índice a 1
  • Añade el URL de confianza https://sso.teamviewer.com/saml/acs

Configuración del client de TeamViewer

TeamViewer es compatible con el Inicio de Sesión Único a partir de la versión 13.2.1080.

Las versiones anteriores no admiten el Inicio de Sesión Único y no pueden redirigir a los usuarios a su proveedor de identidad durante el inicio de sesión. La configuración del client es opcional, pero permite cambiar el navegador utilizado para el inicio de sesión único del IdP.

El client de TeamViewer utilizará un navegador integrado para la autenticación del proveedor de identidad de forma predeterminada. Si prefieres utilizar el navegador predeterminado del sistema operativo, puedes cambiar este comportamiento a través de la siguiente clave de registro.

Windows:

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

macOS:

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

📌Nota: El client de TeamViewer tiene que ser reiniciado después de crear o cambiar el registro.