<main>
<article class="userContent">
<h2 data-id="general">General</h2><div class="blockquote"><div class="blockquote-content"><p class="blockquote-line"><em>This article applies to TeamViewer customers with an Enterprise/Tensor </em><a href="https://www.teamviewer.com/en/credentials/enterprise-solutions/" rel="nofollow noreferrer ugc"><em>license</em></a><em>.</em></p></div></div><p>TeamViewer Single Sign-On (SSO) aims to reduce the user management efforts for large companies by connecting TeamViewer with identity providers and user directories.</p><p><br></p><h3></h3><h2 data-id="requirements">Requirements</h2><p>To use TeamViewer Single Sign-On, you need</p><ul><li>a TeamViewer version 13.2.1080 or newer</li><li>a SAML 2.0 compatible identity provider (IdP)<strong>*</strong></li><li>a TeamViewer account to access the Management Console and add domains</li><li>access to the DNS management of your domain to verify the domain ownership</li><li>a TeamViewer Tensor license.</li></ul><p><br></p><h3 data-id="-1"></h3><h2 data-id="teamviewer-management-console-(mco)-configuration">TeamViewer Management Console (MCO) Configuration</h2><p>Single Sign-On (SSO) is activated on a domain level for all TeamViewer accounts using an email address with this domain. Once activated, all users that sign into a corresponding TeamViewer account are redirected to the identity provider that has been configured for the domain.</p><p>For security reasons and to prevent abuse, it is required to verify the domain ownership before the feature is activated.</p><p><br></p><h3 data-id="-2"></h3><h2 data-id="add-a-new-domain">Add a new domain</h2><p>To activate SSO, log in to Management Console and select the <strong>Single Sign-On</strong> menu entry. Click on <strong>Add domain</strong> and enter the domain you want to activate SSO for.</p><p>You also need to provide you identity provider’s metadata. There are three options available to do so:</p><ul><li><strong>via URL</strong>: enter your IdP metadata URL into the corresponding field</li><li><strong>via XML</strong>: select and upload your metadata XML</li><li><strong>Manual configuration</strong>: manually enter all necessary information. Please note that the public key must be a Base64 encoded string.</li></ul><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/lithium_attachments/3366iB84BCF57B569804A.jpg" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/lithium_attachments/3366iB84BCF57B569804A.jpg" alt="Add domain.png" height="180" width="320" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p><br></p><h3 data-id="-3"></h3><h2 data-id="create-custom-identifier">Create custom identifier</h2><p>After the domain has been added, the <strong>custom identifier</strong> can be generated. This custom identifier is not stored by TeamViewer, but is used for the initial configuration of SSO. It must not be changed at any point in time, since this will break Single Sign-On and a new setup will be necessary. Any random string can be used as customer identifier. This string is later required for the configuration of the IdP.</p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/lithium_attachments/8435i63A952A7185CA4A0.jpg" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/lithium_attachments/8435i63A952A7185CA4A0.jpg" alt="CustomIdentifier1.png" height="180" width="320" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p> </p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/CBJUYRXA0AR4/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/CBJUYRXA0AR4/image.png" alt="image.png" height="470" width="750" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p> </p><h3 data-id="-4"></h3><h2 data-id="verify-domain-ownership">Verify domain ownership</h2><p>After a domain has been added successfully, you need to verify the domain ownership. Single Sign-On will not be activated before the domain verification is completed.</p><p>To verify the domain, please create a new TXT record for your domain with the values shown on the verification page.</p><p><strong>📌Note</strong>: The verification process can take several hours because of the DNS system.</p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/lithium_attachments/5749i9223913E964AB6DA.jpg" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/lithium_attachments/5749i9223913E964AB6DA.jpg" alt="20180910_domain_verification.png" height="180" width="320" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p><br></p><p>The dialog to add a TXT record might look similar to:</p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/lithium_attachments/3472i3A4757D9F3548DCC.jpg" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/lithium_attachments/3472i3A4757D9F3548DCC.jpg" alt="AddDNSrecord.png" height="180" width="320" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<p><strong>📌Note</strong>: Depending on your domain management system, the description of the input fields may vary.</p><p>After creating the new TXT record, start the verification process by clicking on the “Start Verification” button.</p><p><strong>📌Please note</strong> that the verification process can take several hours because of the DNS system.</p><p><strong>💡Hint</strong>: TeamViewer will look for the TXT verification record for 24 hours after starting the verification. In case we cannot find the TXT record within 24 hours, the verification fails and the status is updated accordingly. You need to restart the verification through this dialog in this case. </p><p><strong>💡Hint2</strong>: When adding a domain for Single Sign-On, it is recommended to add the owning account to the exclusion list. The reason for this is a fallback scenario that you keep the access to the domain configuration even if the IdP is not working. </p><p>Example: The TeamViewer Account "admin@example.com" adds domain „example.com“ for Single Sign-On. After adding the domain, the email address "admin@example.com" should be added to the exclusion list. This is required in order to make changes to the SSO configuration, even when Single Sign-On doesn't work due to misconfiguration.</p><p><strong>💡Hint3:</strong> When adding a domain for Single Sign-On, it is recommended to add additional owners to the SSO domain, since the SSO ownership is not inherited within your company. </p><p>Example: After the TeamViewer Account "admin@example.com" adds domain „example.com“ for Single Sign-On, they add multiple company administrators (e.g. "admin2@example.com") as domain owners, so that they can also manage the domain and its SSO settings.</p><p><br></p><h3 data-id="-5"></h3><h2 data-id="identity-provider-setup-with-okta">Identity Provider Setup with Okta</h2><p>This section describes how to set-up Okta to be used as IdP for the TeamViewer SSO service.</p><p><strong>💡Hint</strong>: You need to assign users to the application in Okta, depending on your settings.</p><p>Find the <a href="https://saml-doc.okta.com/SAML_Docs/Configuring-SAML-2.0-in-TeamViewer.html" rel="nofollow noreferrer ugc">Okta documentation here</a>.</p><h3 data-id="automatic-configuration-using-the-teamviewer-okta-app">Automatic configuration using the TeamViewer Okta app</h3><p>1) Login to your Okta Administrator Dashboard</p><p>2) Add the TeamViewer application</p><p>3) Select SAML 2.0</p><ul><li>Copy and save your metadata URL</li></ul><p>4) Assign users to the application</p><p>5) Activate SAML using your metadata in the Domain Management in MCO</p><h3 data-id="manual-configuration-using-the-okta-web-user-interface">Manual Configuration using the Okta Web User Interface</h3><p>Go to the administration interface and add a new SAML application. Specify the following values on the <strong>SAML Settings</strong> page:</p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/43SNT0CQSQT2/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/43SNT0CQSQT2/image.png" alt="image.png" height="263" width="515" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<h4 data-id="for-you-to-copypaste%3A">For you to copy/paste:</h4><p><strong>Single Sign On URL: </strong><a href="https://sso.teamviewer.com/saml/acs" rel="nofollow noreferrer ugc"><strong>https://sso.teamviewer.com/saml/acs</strong></a></p><p><strong>Audience URI (SP Entity ID):</strong> <a href="https://sso.teamviewer.com/saml/metadata" rel="nofollow noreferrer ugc"><strong>https://sso.teamviewer.com/saml/metadata</strong></a></p><p><strong>Name ID Format: </strong> EmailAddress</p><p><strong>Application username: </strong>Email </p><p><br></p><div class="embedExternal embedImage display-large float-none">
<div class="embedExternal-content">
<a class="embedImage-link" href="https://us.v-cdn.net/6032394/uploads/4Z9OLCP6ZX34/image.png" rel="nofollow noreferrer noopener ugc" target="_blank">
<img class="embedImage-img" src="https://us.v-cdn.net/6032394/uploads/4Z9OLCP6ZX34/image.png" alt="image.png" height="373" width="692" loading="lazy" data-display-size="large" data-float="none"></img></a>
</div>
</div>
<h4 data-id="-6"> </h4><p><strong>Add the following attribute statements (Name Format - Unspecified):</strong></p><ul><li><a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" rel="nofollow noreferrer ugc"><strong>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</strong></a><ul><li><strong>Value:</strong> user.email</li></ul></li><li><a href="http://sso.teamviewer.com/saml/claims/customeridentifier" rel="nofollow noreferrer ugc"><strong>http://sso.teamviewer.com/saml/claims/customeridentifier</strong></a><ul><li>This attribute has to be specified by each customer when initially setting up TeamViewer SSO.</li></ul></li></ul><p>📌<strong>Please note:</strong> The "<strong>Customer Identifier</strong>" that has been set initially <strong>must not change otherwise SSO will break.</strong> TeamViewer is not storing this value. </p><p> </p><p>-More complex mapping-</p><p><strong>📌Please note:</strong> The <strong>value</strong> of the <strong>emailaddress</strong> attribute statement may include more complex mapping rules. Okta therefore provides you with an expression language You can see the official documentation about it here: <a href="https://developer.okta.com/reference/okta_expression_language/index" rel="nofollow noreferrer ugc">https://developer.okta.com/reference/okta_expression_language/index</a></p><p>Company A has reserved two email address domains for its users - <strong>@a1.test </strong>and <strong>@a2.test</strong>. The Okta users have the <strong>@a1.test</strong> domain associated to their account.</p><p>TeamViewer SSO should be enabled for the <strong>@a2.test</strong> email addresses only.</p><p>The value for the <strong>emailaddress</strong> statement could look like the following:</p><p>String.append(String.substringBefore(user.email, "@"), "@a2.test")</p><p><br></p><p>This causes the SAML response to include the correct email address.</p><p><br></p><h3 data-id="-7"></h3><h2 data-id="teamviewer-client-configuration">TeamViewer Client Configuration</h2><p>TeamViewer is compatible with Single Sign-On starting from version 13.2.1080.</p><p>Previous versions do not support Single Sign-On and can not redirect users to your identity provider during the login. The client configuration is <strong>optional</strong> but allows changing the used browser for the SSO login of the IdP.</p><p>The TeamViewer client will use an embedded browser for the identity provider authentication by default. If you prefer to use the default browser of the operating system, you can change this behavior:</p><p><strong>Windows:</strong></p><pre class="code codeBlock" spellcheck="false" tabindex="0">HKEY_CURRENT_USER\Software\TeamViewer\SsoUseEmbeddedBrowser = 0 (DWORD)
</pre><p><strong>macOS:</strong></p><pre class="code codeBlock" spellcheck="false" tabindex="0">defaults write com.teamviewer.teamviewer.preferences SsoUseEmbeddedBrowser -int 0
</pre><p><strong>📌Note</strong>: You need to restart the TeamViewer client after creating or changing the registry.</p>
</article>
</main>