Giter Club home page Giter Club logo

ad-connector's Introduction

TeamViewer Active Directory Connector (AD Connector)

A PowerShell integration script to synchronize users of Active Directory (AD) groups to a TeamViewer company via REST based API.

Build Status

Further information can be found in the knowledge base article "Active Directory-Connector".

Download

You can download the AD Connector package from releases page.

Configuration

The script comes with a configuration interface that can be started by executing the Invoke-Configuration.ps1 PowerShell script in the TeamViewerADConnector directory, or by double-clicking the Configure TeamViewer AD Connector.bat batch file.

The graphical configuration provides the following features:

  • Validate the entered TeamViewer API token.
  • Show and adapt the synchronization configuration.
  • Manually trigger a run of the synchronization.
  • Install / uninstall a scheduled task to run the synchronization script automatically.

The graphical configuration requires to be run with elevated user rights to be able to install and uninstall the scheduled task. The script automatically asks for elevated rights (if required).

Configuration Parameters

  • Parameter ApiToken:

    The TeamViewer API access token that is used for accessing the TeamViewer company user directory. For more information on how to create such a token please visit: TeamViewer for developers

    The TeamViewer API token requires the following access permissions:

    • User management: Create users, view users, edit users (corresponds to the WebAPI permissions Users.CreateUsers, Users.Read, Users.ModifyUsers)
    • (optional) Account management: View full profile (corresponds to the WebAPI permissions Account.Read, Account.ReadEmail. Used to skip possible deactivation of API token owner.)
    • (optional) Group management: View, create, delete, edit and share groups
    • (optional) User Group management: View, create, delete and edit groups. Required when user group synchronization is enabled.
  • Parameter ActiveDirectoryGroups:

    The LDAP identifiers (without the leading LDAP:// protocol scheme) of the AD groups used for the synchronization.

  • Parameter UserLanguage:

    The two-letter language identifier used as default language for newly created TeamViewer users. For example it is used to localize the "User Welcome" email.

  • Parameter UseDefaultPassword:

    If set to true TeamViewer users will be created with the initial password specified by the DefaultPassword parameter. This parameter cannot be used in conjunction with the UseSsoCustomerId or UseGeneratedPassword parameters.

  • Parameter DefaultPassword:

    The initial password used for newly created TeamViewer users.

  • Parameter UseSsoCustomerId:

    If set to true TeamViewer users will be created having Single Sign-On (SSO) already activated. Therefore a customer ID needs to be specified in the SsoCustomerId parameter. This parameter cannot be used in conjunction with the UseDefaultPassword or UseGeneratedPassword parameters.

  • Parameter SsoCustomerId:

    The TeamViewer Single Sign-On (SSO) customer identifier.

  • Parameter UseGeneratedPassword:

    If set to true TeamViewer users will be created with a generated password. The users will receive an email for resetting their password.

  • Parameter TestRun:

    If set to true the synchronization will not modify any TeamViewer user resources but instead only log the actions that would have been executed.

  • Parameter DeactivateUsers:

    If set to true TeamViewer users that are not member of the selected AD group will be disabled.

  • Parameter RecursiveGroups:

    If set to true users of nested AD groups will be included.

  • Parameter UseSecondaryEmails:

    If set to true the secondary email addresses configured for an AD user will also be taken into account when trying to map to a TeamViewer user.

  • Parameter EnableUserGroupsSync:

    If set to true the script attempts to synchronize the given AD groups and their respective users with the TeamViewer user groups. Those user groups can then be used to configure TeamViewer functionality, for example: Single Sign-On ownership or exclusions. The user groups synchronization step runs after the user sync. This option requires the API token to have additional permissions, see point ApiToken above.

Scheduled Task

The scheduled task will be created with the specified interval as:

\TeamViewer\TeamViewer AD Connector

Output of the scheduled task is redirected to the configured log file location.

Synchronization Logic

The actual synchronization is done by the Invoke-Sync.ps1 script in the TeamViewerADConnector directory using the following logic:

  • Users of the configured AD group that are not yet part of the configured TeamViewer company (identified by the API token) will be created with the specified initial password.
  • Users of the configured AD group that are already part of the configured TeamViewer company will be activated and/or updated if the name of the user has been changed or the TeamViewer user is deactivated.
  • If configured, users of the TeamViewer company that are not present in the configured AD group will be deactivated.

Identification of users is done based on the email addresses. If configured, the secondary email addresses of AD users are also taken into account for the mapping between AD users and TeamViewer users.

License

Copyright (c) 2018-2023 TeamViewer Germany GmbH

See file LICENSE.

ad-connector's People

Contributors

baumann-tv avatar christianj-tv avatar danieljoos avatar karthickgandhitv avatar stefanhubertus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ad-connector's Issues

[Bug] Failed to create TeamViewer user xxxxxxxx: @{error=invalid_request; error_description=Parameter "name" must have between 5 and 50 characters.

Summary
The 'Parameter "name" must have between 5 and 50 characters. ' is a problem. We do have quite a number of users with last name of four or even only three letters. I assume this error is because of the last name. I see no way how I could influence this (except changing their name ...).
It could also be the login name or "user id" which in our AD is set to the last name of the user.
This is not clear from the error message.

Expected Behavior
Accept also user names with only three or four letters.

Steps To Reproduce

  1. have users in your AD with shorter name
  2. run sync job
  3. see error in log

Attachments
Failed to create TeamViewer user [email protected]: @{error=invalid_request; error_description=Parameter "name" must have between 5 and 50 characters.

Permission synchronization and new button "Add Device Groups

Hello,

my inquiry would be:
In the synchronization area another field with a filter for the added AD groups permissions.
In the 3rd tab another checkbox with the name "Add devices group".

Background thoughts on this:
Active Directory

One has an OU as an example :
CN=ACL_APK_TeamViewer_IT,OU=TeamViewer,OU=Applications,OU=Groups,DC=your,DC=domain
in this OU you have groups for example ACL_APK_TeamViewer_IT in which the users are directly in or are members via a nested group and fetch them. (Already existing)

In the TeamViewer OU another OU, example:
CN=ACL_APK_TeamViewer_Permission_IT,OU=01_Permission,OU=TeamViewer,OU=Applications,OU=Groups,DC=your,DC=domain

Here the groups for role management synchronized and permissions are defined.
Group in 01_Permission example:
ACL_APK_TeamViewer_Permission_Standard-User
ACL_APK_TeamViewer_Permission_Admin
Thus, this role / permissions created is assigned to

If then the group ACL_APK_TeamViewer_IT is a member of the group ACL_APK_TeamViewer_Permission_Admin, he has the permissions and therefore the access to a device group that was set.

TeamViewer / AD-Connector
If the checkbox is active it should get the members of these (example ACL_APK_TeamViewer_IT) groups, create device groups, name them with the attribute "cn" and add the users or user groups that are in the AD groups.

Or is there another way to automate this further.

Thank you in advance.

AD-Connector_Group

AD-Connector_Syncronization

Map TeamViewer-roles to spec. AD-Groups?

Hello,

Wondering if a future implementation will support mapping TeamViewer-roles such as:
Member, Admin, Company Admin
to specific AD-groups?

Today it syncs all users in the specified AD-groups as TeamViewer "members".

Best Regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.