Skip to main content

Data provisioning

Omada Provisioning Service contains two Active directory connectors:

  • Active Directory (legacy)
  • Microsoft Active Directory

Enabling provisioning

  1. In the system onboarding view, select the Enable provisioning task.
  2. In the Method for accounts field, select Omada Provisioning Service.
  3. In the Method for assignments field, select Omada Provisioning Service.
  4. In the Provisioning connector field, select Microsoft Active Directory (Template).
  5. In the Name field, provide a name to your new connector.
  6. Decide if the connector should use default configuration by selecting the checkbox. Click OK.

The Use default configuration checkbox influences the task mappings and data objects used by the connector.

  • If you choose to use the default configuration, the connector will also use the default provided task mappings. Any changes done to these mappings are then saved within the original data objects overwriting them.
  • If you choose not to use the default configuration, any changes to the default task mappings create a copy of the out of-the-box mappings and save them in the copies of the provided data objects, retaining the original ones unchanged.

When you onboard a new system utilizing the Microsoft Active Directory connectivity, Omada Identity automatically creates new default Resource Types, Account Resources, Attributes, and Attribute Sets and assign the Attribute Set to the Resource Type of the AD Account. If you use the default configuration, all the necessary steps to perform basic provisioning of a user account to Microsoft Active Directory (with minimum required attributes) are provided out-of-the-box.

note

The OPS connector for Active Directory removes backslashes from followed by LDAP special characters object names. Attempts to provision an object with requested name being for example Doe\, John results in backslash removal as it's considered an attempt to escape the comma, which is required.

Provisioning configuration

ParameterDescription
ScopeType the scope for the provisioning, for example dc=company,dc=com or ou=department,dc=company,dc=com. This setting is mandatory, so you must type a relevant value in this field.
Domain controllerSpecify the domain controller to which the connector will connect.
PortThe port number used for communication with the Active Directory domain controller. Standard is 389 and 636 for SSL
Use SSLEnable this to use secure communication.
UsernameType the name of the user utilized for provisioning. If you leave this field blank, the username specified for importing is used.
PasswordType the password of the user, if you have entered a user name in the Username field above.
Initial passwordType an initial password for new users. If the Initial password is entered for a system in the Connection settings, this is only applied if there is no other initial password provided elsewhere (for example,if INITIALPASSWORD is not configured in the Attributes).
Allow deletion of user leaf objectsSome applications, for example ActiveSync, use the ability to create child objects on, for example, user objects, even if this is not typically understood as a container object. In such cases, OPS may generate errors when it tries to deprovision such user objects.
If you want OPS to delete these leaf objects and all other leaf objects attached to user objects, enable this setting.
Create missing containersIf one or more OUs in the DN do not exist in AD, they will be automatically created as part of the OPS provisioning job.
Enable connection cachingEnable caching and reusing of Active Directory connections in order to increase the performance of the AD connector.
Test connectionEnable this setting to allow the system to check if the connection details are correct.
If no details are provided, the connection details taken from the collector are used.
note

In the case of connectivity with Active Directory stored on a different server than the OPS, it may also be helpful to provide Domain controller hostname as well as Fully Qualified Domain Name to the hosts file on the server that the OPS is located.

Data model

The Data model for Microsoft Active Directory Connectivity supports the following objects.

AdUser

The AdUser object is used to create, update, and delete users in Active Directory.

important

Bear in mind that actual operations issued by RoPE for accounts in target systems are CreateOrUpdate and DeleteIfExists.

ParameterTypeDescription
dn*stringTypeThe dn value is the distinguished name of the OU to place new users in, or where to move users to.
samAccountNamestringTypeThe samAccountName of the user.
allowReversiblePasswordEncryptionbooleanType
accountExpirationDatedateTimeTypeSpecify if the user should auto-expire at a specific date.
delegationPermittedbooleanTypeSpecify if the users’ rights can be delegated.
displayNamestringTypeThe user’s display name.
DescriptionstringTypeDescription.
emailAddressstringTypeEmail address for the user. Note that this is usually populated by the Exchange Server.
employeeIdstringTypeThe employee’s ID.
EnabledbooleanTypeShould the user be enabled or not? Default is True.
givenName**stringTypeGiven name or first name for User.
homeDirectorystringType
homeDrivestringType
middleNamestringTypeMiddle name for the user.
name**stringTypeThe name of the user. The name should be unique in the OU in which it is placed. In AD it is used as the CN attribute.
password**secureStringTypeThe password for the user.
Note: The connector expects a clear-text string. The OPS service creates the necessary decryption.
passwordMustChangebooleanTypeSet this to True to force the user to change the password on next logon.
passwordNeverExpiresbooleanTypeSet to True to ensure that the password never expires.
passwordNotRequiredbooleanTypeSet to True if a password is not required for the user. This property can cause some issues if you provision new AD users as a non-domain administrator.
permittedWorkstationsstringType(**)Multi-value list of workstations for which to add or remove the user.
scriptPathstringType
surname**stringTypeSurname or last name of the user.
smartcardLogonRequiredbooleanType
userCannotChangePasswordbooleanTypeSet to True to make sure that the user cannot change the password directly.
userPrincipalName**stringTypeThe user principal name, for example, account@contoso.com.
voiceTelephoneNumberstringTypeVoice telephone number.
groupsstringType**Multi-value list of the groups for which to add or remove the user. The value should be the CN value of the group.

The parameters listed in the table above are not all the available parameters but only the commonly used ones. You can extend the object with additional parameters if required. Properties marked with * are required. Properties marked with ** are required on Create actions.

The dn and name parameters are used to form the DistinguishedName of objects in Active Directory. The DistinguishedName in the CN=xxx,OU=xxx,DC=xxx,DC=xxx format. The CN attribute is taken from the name parameter, while the OU and DC sections is taken from the dn parameter. Example:

name is John Smith, dn is OU=Sales,DC=Company,DC=com. In this case, the DistinguishedName formed from these parameters is CN=JohnSmith,OU=Sales,DC=Company,DC=com.

AdAssignment

The AdAssignment object is used to add or remove a user from a group by specifying the keys of the user in addition to the group.

ParameterTypeDescription
assignee*stringTypeThe name or DN of the user.
groupToAssignstringTypeThe name or DN of the group.

Properties marked with * are required.

AdGroup

The AdGroup object is used to create, update and delete Groups in Active Directory.

ParameterTypeDescription
dnstringTypeThe dn value is the distinguished name of the OU to place new groups in.
isSecurityGroupbooleanTypeSet to True to make a security group. The default value is True.
groupScopestringTypeMust be a string with one of the following values: Local, Global, or Universal.
displayNamestringTypeThe group’s display name.
descriptionstringTypeA description of the group.
namestringTypeThe name of the group. The value must be unique within the OU in which it is placed.
userPrincipalNamestringTypeThe user principal name, for example, account@contoso.com.
samAccountNamestringTypeThe samAccountName of the group.
membersstringType**A multi-valued list of users to add or remove as members of the group.
groupsstringType**A multi-valued list of groups to add or remove the group as member of.

The parameters listed in the table above are not all the available parameters but only the commonly used ones. You can extend the object with additional parameters if required. Properties marked with * are required. Properties marked with ** are required on Create actions.

AdOrgUnit

The AdOrgUnit object is used to create, update, and delete Organizational Units in Active Directory.

ParameterTypeDescription
namestringTypeThe name of the Organizational Unit.
parentstringTypeAbsolute or relative to the scope (from connector's settings) DN to the parent OU. Organizational Units without parent specified are created in the default scope location.
descriptionstringTypeA description of the Organizational Unit.
protectedFromAccidentalDeletionbooleanTypePrevents the Organizational Unit from being deleted or moved.
managedByreferenceTypeProvides a username that is resolved by the connector into DN required by the Active Directory for this attribute.
This is a single value parameter that should be provided as a DN or DN lookup.

Expressions

Expression helper class which provides functions which makes it easier to write expressions an task mappings. GetDomainFromScope method returns the domain name from a scope string or a distinguished name. The following example:

ADExpressions.GetDomainFromScope("ou=europe,dc=acme,dc=com")

returns acme.com.

The following expression can be used to get the domain name on the domain where OPS is scoped to work in:

ADExpressions.GetDomainFromScope(ConnectorConfiguration.GetValue("adParentNode")))

Task mappings

Omada Microsoft Active Directory Connectivity provides the following mappings out of the box. The mappings are provided as templates and can be adopted to meet customer specific requirements. Attribute names between DataModel and taskMappings are case sensitive.

ParameterDescription
Active Directory - Distribution Group AssignmentContains mappings of ROPE assignments to AD Distribution Group assignments
Active Directory - Distribution GroupContains mappings of Resource Lifecycle Management resources to AD Distribution Groups
Active Directory - Password ResetContains mappings for Self-Service Password Reset resources in Active Directory
Active Directory - Security Group AssignmentContains mappings of ROPE assignments to AD Security Group assignments
Active Directory - Security GroupContains mappings of Resource Lifecycle Management resources to AD Security Groups
Active Directory - UserContains mappings of assignments from the ROPE Account to AD User
Active Directory - Organizational UnitContains sample mappings for organizational units that are not linked by default to the Microsoft Active Directory connector.
To enable them follow instruction in the Enabling Organizational Units mapping section.

Configuration of Task mappings in Omada Identity

To configure and enable task mappings, map the assignments to resources manually:

  1. Open the system onboarding view of your Active Directory system.

  2. Click Task mappings in the Provisioning section of the view.

  3. Click New to create a new task mapping. In the New task mapping window the object types from the Data Model are listed. Select which object you want to create a task mapping for and in the drop-down list, select the corresponding template task mapping.

  4. Click OK to go to next page.

  5. Select the corresponding Resource type and Mapping type, and optionally a description for the task mapping.

  6. Click the Mappings tab to display the default mappings and adjust them according to your requirements.

  7. Click OK to confirm and save the changes.

Use the following guidelines when configuring task mappings for group assignments:

  • To provision to multiple domains in the same forest, use the DistinguishedName as an assignee.
  • To support an external domain trust - one and two-way - use the ObjectSid of the account as assignee.
  • If there is only a single domain, use samAccountName.

The default mapping for the assignee is using an expression to cater for those options.

Enabling Organizational Unit mappings

Enabling sample Organizational Unit mappings requires the following manual adjustments:

  • The DISTINGUISHEDNAME property needs to be added to organizational unit Data Object Type.
  • The MANAGER property has to be limited to users Data Object Type.

The MANAGER property is multivalued. For sample task mappings to work it can only store 0 or 1 users. In case there are two of them stored the OPS task results in failure.

Example:

XML mapping example:

<?xml version="1.0" encoding="UTF-8"?>
<taskMapping xmlns="http://schemas.omada.net/ops/2015/TaskMappingConfigurationML">
<connectorObjectType mappingType="Constant">AdOrgUnit</connectorObjectType>
<mappedObjectType mappingType="Constant">AdOrgUnit</mappedObjectType>
<mappedOperation mappingType="SourceField">Operation</mappedOperation>
<mappedObjectId mappingType="SourceField">ObjectId</mappedObjectId>
<fieldMappings>
<fieldMapping name="name" mappingType="SourceField" action="modify" enabled="true" dataType="stringType" multiValued="false">DOLM_NAME</fieldMapping>
<fieldMapping name="parent" mappingType="Expression" action="modify" enabled="true" dataType="stringType" multiValued="false">DOLM_PARENTOU_Key != null ? NameValuePairExtensions.GetAttributeValue(DOLM_PARENTOU_DISTINGUISHEDNAME, DOLM_PARENTOU_Key) : ""</fieldMapping>
<fieldMapping name="description" mappingType="SourceField" action="modify" enabled="true" dataType="stringType" multiValued="false">DOLM_DisplayName</fieldMapping>
<fieldMapping name="protectedFromAccidentalDeletion" mappingType="Expression" action="modify" enabled="true" dataType="booleanType" multiValued="false">Operation == "Create" || Operation == "CreateOrUpdate" ? "false" : null</fieldMapping>
<fieldMapping name="managedBy" mappingType="SourceField" action="modify" enabled="true" dataType="referenceType" multiValued="false">DOLM_MANAGER_OBJECTGUID</fieldMapping>
</fieldMappings>
</taskMapping>

Defining your own mappings using different source fields does not require additonal configuration.

ProxyAddress mappings

The Active Directory Connector allows you to handle proxyAddresses by easily converting a primary address to a historical address and adding a new primary address. To prevent any unwanted regression on existing configurations, this feature must be enabled manually, by adding the following line to the Connector configuration property of the Active Directory Connector:

EnableProxyAddressHandling=true

Then, two mappings for the proxyAddresses property need to be added:

The first mapping must have action=remove, which can be set in the Edit section. The value "SMTP:*" instructs the AD Connector to convert the primary address to a historic address, for example, SMTP:someone@acme.com to smtp:someone@acme.com. If there are multiple primary addresses, they are all converted. Apart from smtp, other protocols are also supported (such as sip). You can specify the protocol name in the mapping (for example: SIP:*).

The second mapping must have action=add. This mapping adds the new primary address. The functionality is idempotent and ensures that the new address is not added multiple times.