Le Single Sign-On (SSO ou authentification unique) de TeamViewer vise à réduire les efforts de gestion des utilisateurs pour les grandes entreprises en connectant TeamViewer aux fournisseurs d'identité et aux répertoires d'utilisateurs.

Cet article s'applique aux clients de TeamViewer possédant une licence Tensor.

Prérequis

Pour utiliser lauthentification unique de TeamViewer, vous devez disposer de :

  • une version de TeamViewer <13.2.1080 (ou plus récente
  • un fournisseur d'identité (IdP) compatible SAML 2.0*.
  • un compte TeamViewer pour accéder à la Management Console et ajouter des domaines
  • l'accès à la gestion DNS de votre domaine pour vérifier la propriété du domaine
  • une licence TeamViewer Tensor (Classic).

Configuration de la Management Console (MCO)

L'authentification unique (SSO) est activée au niveau du domaine pour tous les comptes TeamViewer utilisant une adresse électronique avec ce domaine. Une fois activé, tous les utilisateurs qui se connectent à un compte TeamViewer correspondant sont redirigés vers le fournisseur d'identité qui a été configuré pour le domaine.

Pour des raisons de sécurité et pour éviter les abus, il est nécessaire de vérifier la propriété du domaine avant d'activer la fonction.

Ajouter un nouveau domaine

Pour activer le SSO, connectez-vous à la Management Console et sélectionnez le menu Authentification Unique. Cliquez sur Ajouter un domaine et saisissez le domaine pour lequel vous souhaitez activer l'authentification unique.

Vous devez également fournir les métadonnées de votre fournisseur d'identité. Trois options sont disponibles pour ce faire :

  • via l'URL : entrez l'URL de vos métadonnées IdP dans le champ correspondant
  • via XML : sélectionnez et téléchargez vos métadonnées XML
  • Configuration manuelle : saisissez manuellement toutes les informations nécessaires. Veuillez noter que la clé publique doit être une chaîne codée en Base64.

Créer un identifiant personnalisé

Après l'ajout du domaine, l'identifiant personnalisé peut être généré. Cet identifiant personnalisé n'est pas stocké par TeamViewer, mais est utilisé pour la configuration initiale du SSO. Il ne doit être modifié à aucun moment, car cela briserait l'authentification unique et une nouvelle configuration serait nécessaire. Toute chaîne aléatoire peut être utilisée comme identifiant du client. Cette chaîne est ensuite requise pour la configuration de l'IdP.

Vérifier la propriété du domaine

Une fois qu'un domaine a été ajouté avec succès, vous devez vérifier la propriété du domaine. L'authentification unique ne sera pas activée avant que la vérification du domaine ne soit terminée.

Pour vérifier le domaine, veuillez créer un nouvel enregistrement TXT pour votre domaine avec les valeurs indiquées sur la page de vérification.

📌Note : Le processus de vérification peut prendre plusieurs heures en raison du système DNS.

La fenêtre permettant d'ajouter un enregistrement TXT peut ressembler à celui-ci :

📌Note : La description des champs de saisie peut varier en fonction de votre système de gestion des domaines.

Après avoir créé le nouvel enregistrement TXT, lancez le processus de vérification en cliquant sur le bouton "Démarrer la vérification".

Veuillez noter que le processus de vérification peut prendre plusieurs heures en raison du système DNS.

💡Astuce : TeamViewer recherchera l'enregistrement de vérification TXT pendant 24 heures après le début de la vérification. Si nous ne trouvons pas l'enregistrement TXT dans les 24 heures, la vérification échoue et le statut est mis à jour en conséquence. Dans ce cas, vous devez relancer la vérification par le biais de cette boîte de dialogue.

💡Astuce : Lorsque vous ajoutez un domaine pour l'authentification unique, il est recommandé d'ajouter le compte propriétaire à la liste d'exclusion. La raison en est un scénario de repli selon lequel vous conservez l'accès à la configuration du domaine même si l'IdP ne fonctionne pas.

Exemple : Le compte TeamViewer "[email protected]" ajoute le domaine "example.com" pour l'identification unique. Après avoir ajouté le domaine, l'adresse électronique "[email protected]" doit être ajoutée à la liste d'exclusion. Cela est nécessaire pour apporter des modifications à la configuration du SSO, même lorsque l'identification unique ne fonctionne pas en raison d'une mauvaise configuration.

💡Astuce : Lorsque vous ajoutez un domaine pour l'authentification unique, il est recommandé d'ajouter des propriétaires supplémentaires au domaine du SSO, car la propriété du SSO n'est pas héritée au sein de votre entreprise.

Exemple : Après que le compte TeamViewer "[email protected]" ait ajouté le domaine "example.com" pour l'authentification unique, il ajoute plusieurs administrateurs de l'entreprise (par exemple "[email protected]") comme propriétaires du domaine, afin qu'ils puissent également gérer le domaine et ses paramètres SSO.

Configuration du fournisseur d'identification

Les étapes suivantes décrivent la procédure de configuration des services de fédération Active Directory (ADFS). Les instructions et les commandes ont été prises sur une machine fonctionnant sous Windows Server 2016 Standard (Version 1607).

La configuration comprend essentiellement les deux étapes suivantes :

1) Ajouter un ADFS Relying Party Trust pour le service TeamViewer Single Sign-On. Cette étape nécessite la saisie des métadonnées du service SSO TeamViewer. Cela peut être fait de l'une des manières suivantes :

  • Automatique : Il suffit d'entrer l'URL du fichier XML de métadonnées. Le fichier est téléchargé par l'ADFS et tous les champs obligatoires du trust de la partie dépendante sont remplis automatiquement. Il faut que le serveur de l'ADFS ait accès à l'internet.
  • Semi-automatique : Comme la méthode automatique, mais au lieu de fournir une URL aux métadonnées, le fichier lui-même est téléchargé au préalable et remis à l'ADFS sous forme de fichier XML. Cette méthode peut être utile si le serveur ADFS n'a pas accès à l'internet.
  • Manuel : Si aucune des méthodes ci-dessus n'est applicable, les métadonnées peuvent être entrées manuellement dans le système ADFS.

2) Ajouter une règle de transformation à la politique d'émission des demandes de la nouvelle fiducie de la partie dépendante.

Les sections suivantes décrivent la configuration pour les trois scénarios en utilisant l'invite de commande PowerShell et l'interface utilisateur de l'ADFS Management.

Configuration automatique à l'aide de PowerShell

Ouvrez une nouvelle fenêtre de commande PowerShell et entrez les commandes suivantes pour ajouter à l'ADFS une nouvelle fiducie de partie dépendante avec une politique d'émission de réclamation par défaut :

$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

Adaptez la valeur du paramètre "-Name" (ligne 13) à vos besoins. Il s'agit du nom affiché dans l'interface graphique de l'ADFS. De plus, le nom de la politique de contrôle d'accès (ligne 16) peut différer sur votre système.

Tous les paramètres peuvent être modifiés ultérieurement via PowerShell ou l'interface utilisateur graphique de l'ADFS.

Configuration semi-automatique à l'aide de PowerShell

Cette méthode est très similaire à la méthode "automatique" décrite ci-dessus. Elle nécessite de télécharger au préalable le fichier XML de métadonnées et de le copier sur le serveur ADFS. Le fichier de métadonnées peut être téléchargé à partir de l'URL suivant :

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

Les commandes suivantes supposent que le fichier XML de métadonnées est disponible dans le répertoire actuel de l'invite de commande de PowerShell sous le nom "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 principale différence avec la méthode "automatique" est l'utilisation du paramètre "-MetadataFile" (au lieu de "-MetadataUrl" - ligne 14). Les paramètres "-AutoUpdateEnabled" et "-MonitoringEnabled" ont été omis, car tous deux nécessitent l'indication d'une URL de métadonnées valide.

Configuration manuelle à l'aide de Powershell

La configuration manuelle nécessite de télécharger et d'extraire la clé publique du certificat de signature/cryptage du fournisseur de services TeamViewer SAML.

Exécutez les commandes suivantes dans une invite de commande PowerShell pour ajouter manuellement une confiance de la partie dépendante :

$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

Veuillez également consulter la documentation officielle du commandlet PowerShell "Add-AdfsRelyingPartyTrust" : https://technet.microsoft.com/en-us/library/ee892322.aspx

Configuration semi-automatique à l'aide des outils de gestion de l'ADFS (graphique)

1) Lancez les outils de gestion de l'ADFS à partir du Server Manager.

2) Naviguez jusqu'à ADFS ➜ Relying Party Trusts et cliquez sur Add Relying Party Trust... dans le panneau de navigation à droite

3) Sélectionnez Claims aware et démarrez l'assistant en cliquant sur le bouton Start

4) Selon que vous souhaitez avoir la variante automatique ou semi-automatique, sélectionnez

importer les métadonnées via l'URL

  •  Entrez l'URL des métadonnées : https://sso.teamviewer.com/saml/metadata.xml, importez les métadonnées par fichier. Naviguez jusqu'au fichier XML de métadonnées téléchargé. Le fichier peut être téléchargé à partir de l'URL ci-dessus.

5) Choisissez un nom pour le trust de la partie dépendante, comme TeamViewer ou sso.teamviewer.com ou choisissez le nom pré-rempli le cas échéant

6) Sélectionnez la stratégie de contrôle d'accès pour la partie qui fait confiance. Par exemple, choisissez permit everyone

7) Cliquez sur Next dans l'écran récapitulatif pour ajouter la confiance de la partie dépendante

Ensuite, la stratégie d'émission des demandes doit être configurée pour le nouveau trust de la partie dépendante.

1) Sélectionnez la fiducie de la partie dépendante et cliquez sur Edit Claim Issuance Policy... dans le volet de navigation à droite.

2) Cliquez sur Add Rule et choisissez Send LDAP Attributes as Claims

3) Entrez un nom pour la règle de transformation, par exemple TeamViewer Login

4) Sélectionnez Active Directory comme attributs.

5) Ajoutez les deux mappings suivants :

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) Cliquez sur Finish.

7) Ajoutez une deuxième règle de réclamation en ajoutant à nouveau Add Rule et sélectionnez Send Claims Using a Custom Rule.

8) Entrez un nom pour la règle de réclamation personnalisée, par exemple TeamViewer Customer ID

9) Veuillez vous assurer d'ajouter au champ de valeur votre propre identifiant client généré.

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

Saisissez la règle personnalisée suivante et réglez la valeur sur votre identifiant client généré :

10) Cliquez sur Finish

Configuration manuelle à l'aide des outils de gestion de AFSD (graphique)

La configuration manuelle nécessite de télécharger et d'extraire la clé publique du certificat de signature/cryptage du fournisseur de services TeamViewer SAML.

Veuillez consulter la section Informations techniques ci-dessous pour savoir comment obtenir le certificat.

1) Démarrez les outils de gestion ADFS à partir du Server Manager

2) Naviguez vers ADFS - Relying Party Trusts et cliquez sur Add Relying Party Trust... dans le volet de navigation à droite

 3) Sélectionnez Claims aware et démarrez l'assistant en cliquant sur le bouton Start

4) Sélectionnez pour entrer les données manuellement (troisième point)

5) Choisissez un nom pour le trust de la partie dépendante, comme TeamViewer ou sso.teamviewer.com ou choisissez le nom pré-rempli le cas échéant

6) Naviguer vers le fichier de certificat

7) Cochez la case Enable support for the SAML 2.0 WebSSO protocol et entrez l'URL du service suivant : https://sso.teamviewer.com/saml/acs

8) Sur la page Configure Identifiers, ajoutez https://sso.teamviewer.com/saml/metadata comme identifiant

9) Confirmez l'ajout de la confiance de la partie dépendante.

10) Configurez la politique d'émission des créances comme décrit pour la procédure automatique ci-dessus.

11) Ensuite, configurez le certificat de signature de la fiducie de la partie dépendante. Ouvrez donc les propriétés (double-clic) et naviguez jusqu'à l'onglet Signature. Naviguez jusqu'au même fichier de certificat que celui mentionné ci-dessous

En option, ajoutez un deuxième point de terminaison SAML à la confiance de la partie qui se fie à vous. Accédez à l'onglet Endpoints et cliquez sur Add SAML endpoint 

  • Sélectionnez SAML Assertion Consumer comme type d'appareil
  • Sélectionnez Redirect comme contraignant
  • Régler l'index à 1
  • Définissez l'URL de confiance à https://sso.teamviewer.com/saml/acs

Configuration du client TeamViewer

TeamViewer est compatible avec l'authentification unique à partir de la version 13.2.1080.

Les versions précédentes ne supportent pas l'authentification unique et ne peuvent pas rediriger les utilisateurs vers votre fournisseur d'identité lors de la connexion. La configuration du client est optionnelle, mais permet de changer le navigateur utilisé pour la connexion au SSO de l'IdP.

Le client TeamViewer utilisera par défaut un navigateur intégré pour l'authentification du fournisseur d'identité. Si vous préférez utiliser le navigateur par défaut du système d'exploitation, vous pouvez modifier ce comportement via la clé de registre suivante :

  • Windows :
HKEY_CURRENT_USER\Software\TeamViewer\SsoUseEmbeddedBrowser = 0 (DWORD)
  • macOS :
defaults write com.teamviewer.teamviewer.preferences SsoUseEmbeddedBrowser -int 0

📌 Note : Vous devez redémarrer le client TeamViewer après avoir créé ou modifié le registre.