TeamViewer Single Sign-On (SSO) zielt darauf ab, den Aufwand für die Benutzerverwaltung in großen Unternehmen zu reduzieren, indem TeamViewer mit Identitätsanbietern und Benutzerverzeichnissen verbunden wird.

Dieser Artikel richtet sich an TeamViewer Kunden mit einer Enterprise/Tensor Lizenz.

Anforderungen

Um TeamViewer Single Sign-On nutzen zu können, benötigen Sie

  • eine TeamViewer Version 13.2.1080 oder neuer
  • einen SAML 2.0 kompatiblen Identitätsanbieter (IdP)*
  • ein TeamViewer Konto, um auf die Management Console zuzugreifen und Domains hinzuzufügen
  • Zugriff auf die DNS-Verwaltung Ihrer Domain, um den Domainbesitz zu verifizieren
  • eine TeamViewer Tensor (Classic) Lizenz.

Die Konfiguration der TeamViewer Management Console

Single Sign-On (SSO) wird auf Domain-Ebene für alle TeamViewer Konten aktiviert, die eine Email Adresse mit dieser Domain verwenden. Einmal aktiviert, werden alle Benutzer, die sich bei einem entsprechenden TeamViewer Konto anmelden, zu dem Identitätsanbieter umgeleitet, der für die Domain konfiguriert wurde.

Aus Sicherheitsgründen und um Missbrauch vorzubeugen, ist es erforderlich, den Besitz der Domain zu verifizieren, bevor die Funktion aktiviert wird.

Eine neue Domain hinzufügen

Um SSO zu aktivieren, melden Sie sich an der Management Console an und wählen den Menüeintrag Single Sign-On. Klicken Sie auf Domain hinzufügen und geben Sie die Domain ein, für die Sie SSO aktivieren möchten.

Außerdem müssen Sie die Metadaten Ihres Identitätsanbieters angeben. Hierfür stehen drei Optionen zur Verfügung:

  • über URL: geben Sie die URL Ihrer IdP-Metadaten in das entsprechende Feld ein
  • über XML: wählen Sie Ihre Metadaten-XML aus und laden Sie sie hoch
  • Manuelle Konfiguration: geben Sie alle notwendigen Informationen manuell ein. Bitte beachten Sie, dass der öffentliche Schlüssel ein Base64-kodierter String sein muss.

Custom Identifier erstellen

Nachdem die Domain hinzugefügt wurde, kann der Custom Identifier generiert werden. Diese benutzerdefinierte Kennung wird von TeamViewer nicht gespeichert, sondern für die Erstkonfiguration von SSO verwendet. Sie darf zu keinem Zeitpunkt geändert werden, da sonst Single Sign-On unterbrochen wird und eine Neueinrichtung notwendig wird. Als Custom Identifier kann eine beliebige Zeichenkette verwendet werden. Diese Zeichenkette wird später für die Konfiguration des IdP benötigt.

Überprüfen des Domainbesitzes

Nachdem eine Domain erfolgreich hinzugefügt wurde, müssen Sie den Besitz der Domain verifizieren.

Single Sign-On wird nicht aktiviert, bevor die Domain-Verifizierung abgeschlossen ist.

Um die Domain zu verifizieren, erstellen Sie bitte einen neuen TXT-Eintrag für Ihre Domain mit den auf der Verifizierungsseite angezeigten Werten.

📌 Hinweis: Der Verifizierungsprozess kann aufgrund des DNS-Systems mehrere Stunden dauern.

Das Dialogfeld zum Hinzufügen eines TXT-Datensatzes könnte so ähnlich aussehen:

📌 Hinweis: Abhängig von Ihrem Domainverwaltungssystem kann die Beschreibung der Eingabefelder variieren.

Starten Sie nach dem Anlegen des neuen TXT-Eintrags den Verifizierungsprozess, indem Sie auf die Schaltfläche "Verifizierung starten" klicken.

📌 Bitte beachten Sie, dass der Verifizierungsprozess aufgrund des DNS-Systems mehrere Stunden dauern kann.

💡 Tipp 1: TeamViewer sucht nach dem Start der Verifizierung 24 Stunden lang nach dem TXT-Verifizierungssatz. Falls wir den TXT-Record nicht innerhalb von 24 Stunden finden, schlägt die Verifizierung fehl und der Status wird entsprechend aktualisiert. In diesem Fall müssen Sie die Verifizierung über diesen Dialog neu starten. 

💡 Tipp 2: Beim Hinzufügen einer Domain für Single Sign-On ist es empfehlenswert, das Besitzerkonto zur Ausschlussliste hinzuzufügen. Der Grund dafür ist ein Fallback-Szenario, so dass Sie den Zugriff auf die Domainkonfiguration behalten, auch wenn der IdP nicht funktioniert. 

Beispiel: Der TeamViewer Account "[email protected]" fügt die Domain "beispiel.de" für Single Sign-On hinzu. Nach dem Hinzufügen der Domain soll die Email Adresse "[email protected]" zur Ausschlussliste hinzugefügt werden. Dies ist erforderlich, um Änderungen an der SSO-Konfiguration vornehmen zu können, auch wenn Single Sign-On aufgrund einer Fehlkonfiguration nicht funktioniert.

💡 Tipp 3: Beim Hinzufügen einer Domain für Single Sign-On ist es empfehlenswert, zusätzliche Eigentümer zur SSO-Domain hinzuzufügen, da die SSO-Eigentümerschaft innerhalb Ihres Unternehmens nicht vererbt wird. 

Beispiel: Nachdem der TeamViewer Account "[email protected]" die Domain "beispiel.de" für Single Sign-On hinzugefügt hat, fügt er mehrere Firmenadministratoren (z.B. "[email protected]") als Domain-Besitzer hinzu, damit diese die Domain und ihre SSO-Einstellungen ebenfalls verwalten können.

Die Einrichtung des Identitätsanbieters für Active Directory Federation Services (ADFS)

Die folgenden Schritte beschreiben das Einrichtungsverfahren für Active Directory Federation Services (ADFS). Die Anweisungen und Befehle wurden von einem Rechner mit Windows Server 2016 Standard (Version 1607) übernommen.

Die Konfiguration besteht im Wesentlichen aus den folgenden zwei Schritten:

1) Hinzufügen eines ADFS Relying Party Trust für den TeamViewer Single Sign-On Dienst. Dieser Schritt erfordert die Eingabe von Metadaten des TeamViewer SSO Dienstes. Dies kann auf eine der folgenden Arten geschehen:

  • Automatisch: Dies erfordert nur die Eingabe einer URL zur Metadaten-XML-Datei. Die Datei wird von ADFS heruntergeladen und alle erforderlichen Felder des Relying Party Trusts werden automatisch ausgefüllt. Dazu muss der ADFS-Server Zugang zum Internet haben.
  • Halb-automatisch: Wie die automatische Methode, aber anstatt eine URL für die Metadaten-Datei bereitzustellen, wird die Datei selbst vorher heruntergeladen und als XML-Datei an ADFS übergeben. Dies kann sinnvoll sein, wenn der ADFS-Server keinen Internetzugang hat.
  • Manuell: Wenn keine der oben genannten Methoden anwendbar ist, können die Metadaten manuell in ADFS eingegeben werden.

2) Fügen Sie der Claim Issuance Policy des neuen Relying Party Trusts eine Transformationsregel hinzu.

In den folgenden Abschnitten wird die Konfiguration für alle drei Szenarien mithilfe der PowerShell Eingabeaufforderung und der grafischen Benutzeroberfläche des ADFS Managements beschrieben:

Automatische Konfiguration mit PowerShell

Öffnen Sie ein neues PowerShell Befehlsfenster und geben Sie die folgenden Befehle ein, um für ADFS einen neuen Relying Party Trust mit einer Standardrichtlinie für die Anspruchserteilung hinzuzufügen:

$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

Passen Sie den Parameterwert "-Name" (Zeile 13) an Ihre Bedürfnisse an. Dies ist der Name, der in der grafischen Benutzeroberfläche von ADFS angezeigt wird. Auch der Name der Zugriffssteuerungsrichtlinie (Zeile16) kann auf Ihrem System abweichen.

Alle Einstellungen können später über die PowerShell oder die grafische Benutzeroberfläche von ADFS geändert werden.

Halbautomatische Konfiguration mit PowerShell

Dies ist der oben beschriebenen "automatischen" Methode sehr ähnlich. Sie erfordert, dass Sie die Metadaten-XML-Datei vorher herunterladen und auf den ADFS-Server kopieren.

Die Metadaten-Datei kann unter der folgenden URL heruntergeladen werden:

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

Die folgenden Befehle gehen davon aus, dass die Metadaten-XML-Datei im aktuellen Verzeichnis der PowerShell Eingabeaufforderung als metadata.xml vorhanden ist.

$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

Der Hauptunterschied zur "automatischen" Methode ist die Verwendung des Parameters "-MetadataFile" (anstelle von "-MetadataUrl" - Zeile 14). Die Parameter "-AutoUpdateEnabled" und "-MonitoringEnabled" wurden weggelassen, da beide die Angabe einer gültigen Metadaten-URL erfordern.

Manuelle Konfiguration mit Powershell

Die manuelle Konfiguration erfordert das Herunterladen und Extrahieren des öffentlichen Schlüssels des Signatur-/Verschlüsselungszertifikats des TeamViewer SAML Service Providers.

Führen Sie die folgenden Befehle in einer PowerShell Eingabeaufforderung aus, um manuell einen Relying Party Trust hinzuzufügen:

$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

Bitte schauen Sie auch in die offizielle Dokumentation des PowerShell Commandlets "Add-AdfsRelyingPartyTrust": https://technet.microsoft.com/de/library/ee892322.aspx

Halbautomatische Konfiguration mit ADFS Management Tools (grafisch)

1) Starten Sie die ADFS Management Tools über den Server Manager.

2) Navigieren Sie zu ADFS --> Relying Party Trusts und klicken Sie auf Add Relying Party Trust... im rechten Navigationsbereich.

3) Wählen Sie Claims aware und starten Sie den Assistenten, indem Sie auf die Schaltfläche Start klicken

4) Je nachdem, ob Sie die oder die Variante haben wollen, wählen Sie, um 

  • die Metadaten über URL zu importieren oder
  • geben Sie die Metadaten-URL ein: https://sso.teamviewer.com/saml/metadata.xml Importieren Sie die Metadaten über eine Datei. Navigieren Sie zu der heruntergeladenen Metadaten-XML-Datei. Die Datei kann von der oben genannten URL heruntergeladen werden.

5) Wählen Sie einen Namen für den Relying Party Trust, z.B. TeamViewer oder sso.teamviewer.com oder wählen Sie gegebenenfalls den vorausgefüllten Namen

6) Wählen Sie die Zugriffskontrollrichtlinie für den Relying Party Trust. Wählen Sie z.B. permit everyone

7) Klicken Sie im Übersichtsbildschirm auf Next, um den Relying Party Trust hinzuzufügen

Als Nächstes muss die Claim Issuance Policy für den Relying Party Trust konfiguriert werden.

  1. Wählen Sie den Relying Party Trust aus und klicken Sie auf Edit Claim Issuance Policy... im Navigationsbereich auf der rechten Seite.
  2. Klicken Sie auf Add Rule und wählen Sie Send LDAP Attributes as Claims.
  3. Geben Sie einen Namen für die Transformationsregel ein, z.B. TeamViewer Login.
  4. Wählen Sie Active Directory als Attributspeicher.
  5. Fügen Sie die folgenden zwei Mappings hinzu:
LDAP attribut Typ des ausgehenden Anspruchs Bemerkungen

objectGUID

Name ID

Geben Sie den Wert des Feldes LDAP Attribut manuell ein.

Möglicherweise müssen Sie zuerst auf den drop-down-Pfeil klicken, bevor Sie mit der Eingabe beginnen

E-mail-Addresses

E-mail addresses

-

8) Klicken Sie auf Finish.

9) Fügen Sie eine zweite Anspruchsregel hinzu, indem Sie erneut Add Rule hinzufügen und Send Claims Using a Custom Rule auswählen.

10) Geben Sie einen Namen für die benutzerdefinierte Anspruchsregel ein, z.B. TeamViewer Customer ID.

11) Geben Sie die folgende benutzerdefinierte Regel ein und setzen Sie den Wert (Value) auf Ihren erstellten Customer Identifier:

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

Bitte achten Sie darauf, dass Sie in das Wertefeld Ihren selbst erstellten Customer Identifier eintragen.

12) Bestätigen Sie mit dem Klick auf Finish.

Manuelle Konfiguration über ADFS Management Tools (grafisch)

Die manuelle Konfiguration erfordert das Herunterladen und Extrahieren des öffentlichen Schlüssels des Signatur-/Verschlüsselungszertifikats des TeamViewer SAML Service Providers.

Wie Sie das Zertifikat erhalten, entnehmen Sie bitte dem Abschnitt Technische Informationen weiter unten.

1) Starten Sie die ADFS Management Tools über den Server Manager.

2) Navigieren Sie zu ADFS --> Relying Party Trusts und klicken Sie auf Add Relying Party Trust... im rechten Navigationsbereich.

3) Wählen Sie Claims aware und starten Sie den Assistenten, indem Sie auf die Schaltfläche Start klicken

4) Wählen Sie den dritten Punkt, um die Daten manuell einzugeben

5) Wählen Sie einen Namen für den Relying Party Trust, z.B. TeamViewer oder sso.teamviewer.com oder wählen Sie gegebenenfalls den vorausgefüllten Namen

6) Navigieren Sie zu der Zertifikatsdatei (siehe Kommentar oben)

7) Aktivieren Sie das Kontrollkästchen für Enable support for the SAML 2.0 WebSSO protocol und geben Sie die folgende Service-URL ein: https://sso.teamviewer.com/saml/acs

8) Fügen Sie auf der Seite Configure Identifiers https://sso.teamviewer.com/saml/metadata als Identifier hinzu.

9) Bestätigen Sie das Hinzufügen des Relying Party Trusts.

10) Konfigurieren Sie die Claim Issuance Policy wie oben für das automatische Verfahren beschrieben.

11) Als nächstes konfigurieren Sie das Signaturzertifikat des Relying Party Trusts. Öffnen Sie dazu die Eigenschaften (Doppelklick) und navigieren Sie zur Registerkarte Signature. Navigieren Sie zu derselben Zertifikatsdatei wie oben beschrieben

12) Fügen Sie optional einen zweiten SAML-Endpunkt zum Relying Party Trust hinzu. Navigieren Sie zum Tab Endpoints und klicken Sie auf Add SAML endpoint

  • Wählen Sie SAML Assertion Consumer als Endpunkttyp
  • Wählen Sie Redirect als verpflichtend
  • Setzen Sie den Index auf 1
  • Setzen Sie die vertrauenswürdige URL auf https://sso.teamviewer.com/saml/acs

Die Konfiguration des TeamViewer Clients

TeamViewer ist kompatibel mit Single Sign-On ab der Version 13.2.1080.

Ältere Versionen unterstützen kein Single Sign-On und können Benutzer bei der Anmeldung nicht zu Ihrem Identitätsanbieter umleiten. Die Client Konfiguration ist optional, erlaubt es aber, den verwendeten Browser für die SSO-Anmeldung des IdP zu ändern.

Der TeamViewer Client verwendet standardmäßig einen eingebetteten Browser für die Authentifizierung beim Identitätsanbieter. Wenn Sie lieber den Standardbrowser des Betriebssystems verwenden möchten, können Sie dieses Verhalten ändern:

Windows:

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

macOS:

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

📌 Hinweis: Nach dem Erstellen oder Ändern der Registry müssen Sie den TeamViewer Client neu starten.