This article contains the following topics:
Table of Contents
Info | ||
---|---|---|
| ||
This article deals exclusively with how to synchronize user data from other systems via LDAP and REST; to learn how to synchronize user data from Serviceaide Intelligent Service Management and CA Service Desk Manager please refer to Synchronize Users from CA SDM and ISM. |
The Sync Utility specifies how to synchronize data on a regular basis from various sources such as Lightweight Directory Access Protocol (LDAP), Representational State Transfer (REST) APIs such as ServiceNow, Cherwell, Freshservice or any other ITSM tools to Luma. The utility is used to import information such as users, groups, group membership and global user attributes. This utility does not import or update passwords in Luma. The synchronization can be scheduled at a recurring interval that is aligns to your organization's needs. When a user is added or updated from a domain, the Sync Utility automatically synchronizes the information with Luma.
...
Code Block | ||||
---|---|---|---|---|
| ||||
# comment import-data-system.source-system-name = ADFS # this can be only supported connection types (REST/LDAP) etc import-data-system.connection-type = LDAP import-data-system.ldapConfig.admin-user = Administrator@domain.com import-data-system.ldapConfig.password = xxxxxxxxxx import-data-system.ldapConfig.global-catalog-server = ldap://xx.xxx.xxx.xxx:xxxx import-data-system.ldapConfig.domain-controller-server = ldap://xx.xxx.xxx.xxx:xxx import-data-system.ldapConfig.search-base = OU=USERS,DC=ACME,DC=inc import-data-system.ldapConfig.search-filter = (&(objectClass=user)(objectClass=person)(objectClass=organizationalPerson)) import-data-system.ldapConfig.response-type = String # comment import-export-mapping.import-data-model-key-mapping-with-export-data-model-key = [{\ "importDataKey": "",\ "exportDataKey": "",\ "staticColumn": "true",\ "staticColumnName": "Id",\ "staticColumnValue": "",\ "isTransformationNeeded": "false",\ "javascriptImportDataKeyReference": "Id",\ "javascriptXformationFunciton": ""\ },\ {\ "importDataKey": "title",\ "exportDataKey": "Title",\ "staticColumn": "false",\ "staticColumnName": "",\ "staticColumnValue": "",\ "isTransformationNeeded": "false",\ "javascriptImportDataKeyReference": "title",\ "javascriptXformationFunciton": ""\ },\ {\ "importDataKey": "givenName",\ "exportDataKey": "First Name",\ "staticColumn": "false",\ "staticColumnName": "",\ "staticColumnValue": "",\ "isTransformationNeeded": "false",\ "javascriptImportDataKeyReference": "firstName",\ "javascriptXformationFunciton": ""\ },\ {\ "importDataKey": "givenName",\ "exportDataKey": "Middle Name",\ "staticColumn": "false",\ "staticColumnName": "",\ "staticColumnValue": "",\ "isTransformationNeeded": "false",\ "javascriptImportDataKeyReference": "given Name",\ "javascriptXformationFunciton": ""\ },\ {\ "importDataKey": "sn",\ "exportDataKey": "Last Name",\ "staticColumn": "false",\ "staticColumnName": "",\ "staticColumnValue": "",\ "isTransformationNeeded": "false",\ "javascriptImportDataKeyReference": "lastName",\ "javascriptXformationFunciton": ""\ },\ {\ "importDataKey": "givenName",\ "exportDataKey": "User Name",\ "staticColumn": "false",\ "staticColumnName": "",\ "staticColumnValue": "",\ "isTransformationNeeded": "true",\ "javascriptImportDataKeyReference": "userName",\ "javascriptXformationFunciton": "function (entity) { return 'usr_' + parseInt((Math.random() * 20), 10) + entity.firstName.replace(/\s+/, '') } "\ },\ {\ "importDataKey": "mail",\ "exportDataKey": "Email Address",\ "staticColumn": "false",\ "staticColumnName": "",\ "staticColumnValue": "",\ "isTransformationNeeded": "false",\ "javascriptImportDataKeyReference": "eMail",\ "javascriptXformationFunciton": ""\ },\ {\ "importDataKey": "mobile",\ "exportDataKey": "Phone",\ "staticColumn": "false",\ "staticColumnName": "",\ "staticColumnValue": "",\ "isTransformationNeeded": "false",\ "javascriptImportDataKeyReference": "phone",\ "javascriptXformationFunciton": ""\ },\{\ "importDataKey": "dummy",\ "exportDataKey": "Role",\ "staticColumn": "false",\ "staticColumnName": "Role",\ "staticColumnValue": "",\ "isTransformationNeeded": "true",\ "javascriptImportDataKeyReference": "",\ "javascriptXformationFunciton": "function(entity) { if (entity.lastName.indexOf('admin') > -1) {return 'Administrator'; } else if (entity.lastName.indexOf('analyst') > -1) {return 'Analyst';} else {return 'Self-service user';}}"\ },\ {\ "importDataKey": "",\ "exportDataKey": "",\ "staticColumn": "true",\ "staticColumnName": "Associated Groups",\ "staticColumnValue": "G1",\ "isTransformationNeeded": "true",\ "javascriptImportDataKeyReference": "",\ "javascriptXformationFunciton": ""\ }] export-data-system.target-system-name = LUMA export-data-system.target-export-format = Excel export-data-system.exportFileLocation = e:/exportrunner/conf/Template_for_Bulk_Upload.xlsx export-data-system.exportSheetName = Contacts export-data-system.connection-type = LUMA export-data-system.luma.base-url = https://xxx export-data-system.luma.auth-api = /public/tenant/login export-data-system.luma.export-api = /tenant/@replace.tenantId/contact/upload export-data-system.luma.userName = admin@xxxadmin@example.com export-data-system.luma.password = xxxx export-data-system.luma.subDomain = xxxx |
...
Parameter Name | Parameter Description | Example Values |
---|---|---|
ldapConfig.global-catalog-server | Specifies the Domain server and port and is usually the same as the Global Catalog server. | ldap://dcp1s:3268 |
ldapConfig.admin-user | Specifies the Distinguished Name of the service account to use for connecting to AD and retrieving information. | CN=User\\, Admin, OU=Users, DC=Acme, DC=com |
ldapConfig.password | Specifies the password for the service account specified in ldap.bind.user attribute. | XYZ |
ldapConfig.search-base | Specifies the file name for the list of Organizational Units (OUs) to be searched against. | ad.search.base.list |
ldapConfig.search-filter | Specifies the LDAP filter for retrieving user entries from AD. This does not need to be modified and should work for most organizations. | (&(objectClass=user)(objectClass= person)(objectClass=organization alPerson)) |
ldapConfig.response-type | This is a system defined template for processing the XML data. This should NOT be modified unless requested by the Support team. | /home/helptwps/dtd/ProcessXM LDocument.dtd |
target-system-name | Specifies the target system name, however, the value is hardcoded to Luma. | Luma |
target-export-format | Specifies the target export format, which is Excel. | Excel |
exportFileLocation | Specify the export file location. | e:/exportrunner/conf/Template_for_Bulk_Upload.xlsx |
exportSheetName | Specify the export sheet name. | Contacts |
connection-type | Specifies the connection type however, the value is hardcoded to Luma. | Luma |
base-url | Specify the base URL of the export. | Staging or Production URL |
auth-api | Specify the authorization API, which is hardcoded to /public/tenant/login | /public/tenant/login |
export-api | Specifies the export API, which is hardcoded to /tenant/@replace.tenantId/contact/upload. | /tenant/@replace.tenantId/contact/upload |
username | Specify the user name. | admin@xxxadmin@example.com |
password | Specify the password to login. | |
subDomain | Specify the sub domain. |
...