Skip to main content

Data import

Prerequisites

The Omada Identity's customer setting Active Directory category ID defines the ID of the system category, that contains Active Directory accounts used to log in to Omada Identity. The setting affects authorization when users access My reports with the use of integrated authentication.

The default value is AD, which reflects that the Active Directory Collector is used. The value must be changed if the Microsoft Active Directory Collector is used instead. Run the configuration import profile for the setting to take effect.

General settings

SettingDescription
NameType a unique name for the system. Two systems cannot have the same name.
System IDType a unique System ID for the system. Two systems cannot have the same System ID. You cannot change this setting.
DescriptionType an optional description of the system.
StatusStatus of the system. Set the status to Removed to ensure the system is no longer included in warehouse imports, reconciliation or provisioning. Setting a system as removed will delete all objects referring to the system, including resources, manual and automated provisioning tasks, and assignment policies.
ContentThe type of content to import. You can choose:
- Identity data
- Access rights
- Both (Identity data and access rights)
TrustsOptionally, select one or more trusted systems to associate with the system.
info

Trust is specifically designed for use between physical systems. It is not intended for use between logical and physical systems.

Connection details

ParameterDescription
Authentication typeChoose type of authentication used for the connection to Active Directory. The authentication type determines how the user, domain, and password settings are used.
UsernameEnter the username of the Active Directory user utilized for reading information from the domain. Specify the sAMAccountName of the user, for example,_administrator_. The specified user must have read access and the Replicating Directory Changes permission assigned to the root of the partition.
PasswordEnter the password to use with the AD user entered above. Each time you make a change to any of the settings in the Connection details dialog box, you must enter your password again.
DomainEnter the DNS name of the domain, for example, corporate.com or the IP address.
Distinguished name of rootEnter the distinguished name of the root on the domain, for example, _DC=corporate,DC=com_.
SSLThe SSL encryption of the communication with Active Directory is optional, but recommended. This option requires a valid certificate to be installed on the Domain Controller(s) and on the Omada servers where OPS and ODW resides. For the Omada Identity Cloud, the certificates are imported via the Management Portal.
Skip certificate checkSelect this checkbox to ignore any certificate check when connecting using SSL.
Port numberSpecify the TCP port number used for connecting to Active Directory.
The default port is 389.
If SSL is used, the default port is 636.
Test connectionEnable this setting to allow the system to check if the connection details are correct.
Test filterProvide an LDAP filter for the Test connection option, for example, _objectClass=user_.

Queries and mappings

In the case of the Microsoft Active Directory connectivity, the following parameters can be defined for each query.

ParameterDescription
LDAP FilterSpecify an LDAP filter to import specific objects. The filter must follow the LDAP filter specification, for example, (objectClass=person). For more information, go to https://ldap.com/ldap-filters/. The LDAP filter is required.
Sub-tree filterSpecify a sub-tree filter to import only objects from a specific sub-tree, for example, OU=users,DC=corporate,DC=com. This filter would ensure that only objects for organizational unit Users, or any OU below it, are imported. The Sub-tree filter is optional; if it is not specified, all objects in the domain matching the LDAP filter are imported.
FilterLogical expression for each imported row. If evaluated to false - the row is skipped.
DescriptionType an optional description of the query.

Depending on the target object type, that is, Account or Resource, a set of mappings must be defined.

It is possible to use almost any LDAP attribute in your mappings, either by directly mapping the attribute to the destination or using it as part of an expression or lookup. Attributes that cannot be used in mappings are binary attributes.

For queries yielding multiple staged rows based in a reference attribute in Active Directory, that is, Resource assignments, Resource parent/children, or resource owners, the reference value will be available as attribute valuesid. As the name implies, the value will be available as the objectsid of the reference object.

Another special attribute is isUserAccountDisabled, which is available on account queries. The attribute has the value true if the account is disabled, and false if it is enabled.

important

Exercise caution when modifying the queries and mappings provided as the default.

  • For accounts, the objectsid attribute of the account is imported as the Unique ID. Note that the resource assignment query relies on this mapping.
  • For accounts, the msDS-PrincipalName attribute is mapped to the Account name. The msDS-PrincipalName attribute returns the account name supplied with the domain name. This supplementation is essential in a multi-domain environment where the same account name can be used for different accounts and domains.
  • For account mappings, Account name, Distinguished name, and Path should be changed if you also import mailbox information using the Exchange collector. The exchange collector relies on these three property values to identify which account a mailbox belongs to.
  • For accounts, the attribute sAMAccountName is imported as an extension attribute with the same name. This extension attribute is, by default, used for account ownership matching. If you change this mapping, make sure to adjust the account matching rules as well.
  • For resources, the objectsid attribute of the group is imported as an extension attribute ResourceObjectSid. This extension attribute is, by default, used in the child resource lookup in the Parent/Child query.
  • Business keys for accounts and resources are mapped using an expression. The expression is constructed, so the business key is similar to the business key used by the legacy AD collector. If you use the legacy AD collector and wish to migrate the data, do not change the business key mappings

There are default queries provided for the import of computers, parent-child relationships, and resource owners. It is highly recommended to disable or remove these queries if the data is not relevant to you. Removing these queries, especially resource parent-child and resource owners, will increase performance noticeably.

Provided mappings

The following queries and mappings are provided out of the box for the Microsoft Active Directory Connectivity.:

  • Users - Accounts
  • Computers - Accounts
  • Security groups and Distribution groups - Resources
  • Security group memberships - Resource assignments
  • Nested groups - Resource parent/child relationships
  • Group managers - Resource owners

Users - Accounts

With this mapping, Active Directory users are imported as accounts in the Data Warehouse.

When importing accounts, you can add manager attributes using the prefix manager_ + attributeName. For example, to add the attribute sAMAccountName of the manager, use the following mapping:

A manager is represented by an account. The attribute names must be the same as for user accounts (to add the attribute sAMAccountName, configure the attribute manager_sAMAccountName).

ParameterValue
LDAP filter(objectCategory=person)(objectClass=user)(!objectClass=computer)
Active DirectoryData WarehouseComment
<system>"+BuiltIn.SystemShortName+"</system><sid>"+
objectsid+"</sid>"
BusinessKeyThe expression used for the business key is constructed to be identical as in the old collector. Don’t change it if you need to migrate.
objectsidUIDThe unique id is mapped to the objectsid. This value is expected by the resource assignment query.
msDS-PrincipalNameAccountNameAccount name is mapped to msDS-PrincipalName, to support multiple accounts from different domains with the same sAMAccountName.
distinguishedNameDistinguishedNameDo not change this mapping if you’re importing Microsoft Exchange mailbox information using the Exchange collector.
canonicalNamePathDo not change this mapping if you’re importing Microsoft Exchange mailbox information using the Exchange collector.
sAMAccountNamesAMAccountNameThe sAMAccountName is imported as an extension attribute. Note that the value is used by the account rules to detect ownership. The mapping can be changed, but the account rules must subsequently be adjusted.
nameDescription
isUserAccountDisabled == null ? null : (Convert.ToBoolean(isUserAccountDisabled) ? "Disabled" : "Active")Status
whenCreatedValidFrom
accountExpiresValidTo
domainDomain
displayNameDisplayName
userAccountControlStatusMask
lastLogonTimestampLastLogon
pwdLastSetLastPasswordChange
givenNamegivenname
snsn
-Category

Computers - Account

With this mapping, Active Directory computers are imported as accounts in the Data Warehouse.

ParameterValue
LDAP filter(objectCategory=computer)(objectClass=computer)
Active DirectoryData Warehouse
"<system>"+BuiltIn.SystemShortName+
"</system><sid>"+objectsid+"</sid>"
BusinessKey
The expression used for the business key is constructed to be identical as in the old collector. Don’t change it if you need to migrate.
ComputerCategory
The category is set to Computer in order to distinguish these from actual accounts.
objectsidUID
sAMAccountNameAccountName
displayNameDisplayName
nameDescription
whenCreatedValidFrom
accountExpiresValidTo
domainDomain
distinguishedNameDistinguishedName
canonicalNamePath
userAccountControlStatusMask
lastLogonTimestampLastLogon
pwdLastSetLastPasswordChange
-Status

Security groups and Distribution groups - Resources

Active Directory security groups and distributions groups are imported as resources in the data warehouse using a single query.

ParameterValue
LDAP filter(objectCategory=Group)(objectClass=group)
Active DirectoryData Warehouse
"<system>"+BuiltIn.SystemShortName+
"</system><sid>"+objectsid+"</sid>"
BusinessKey
The expression used for the business key is constructed to be identical as in the old collector. Don’t change it if you need to migrate.
groupType.Contains("214748364")?"Active Directory - Security Group":"Active Directory - Distribution Group"Type
The expression used for Type ensures that groups are represented as Security Groups and Distribution groups in the Warehouse and in the Enterprise Server.
objectsidResourceObjectSid
The objectsid of the group is imported as an extension attribute. This value is used by the Resource parent/child query to ensure it is possible to import cross-domain relations.
"<system>"+BuiltIn.SystemShortName+
"</system><sid>"+objectsid+"</sid>"
SecurityResource_BusinessKey
nameName
domainDomain
sAMAccountNameShortName
sAMAccountNameDisplayName
distinguishedNameDistinguishedName
canonicalNamePath
descriptionDescription
GroupCategory
(groupType.Last()=='0'|groupType.Last()=='8')?"Universal":(groupType.Last()=='4'?"Domain Local":"Global")Scope
-LogicKey

Security group memberships - Resource assignments

Members of Active Directory security groups or distribution groups of the Users type are imported as resource assignments with the use of the following mappings.

ParameterValue
LDAP filter(objectCategory=Group)(objectClass=group)
Active DirectoryData Warehouse
"<system>"+BuiltIn.SystemShortName+
"</system><sid>"+objectsid+"</sid>"
Resource_BusinessKey
The expression must be similar to the expression used when importing groups.
UID=valuesidAccount_BusinessKey*
This lookup uses the built-in collector attribute valuesid to look for the account in the current system using the objectsid.
UID=valuesidAccount_ComposedBusinessKey*
This lookup uses the built-in collector attribute valuesid to look for the account in the current system using the objectsid.
-ValidFrom
-ValidTo
-Status
-Description
-PermissionLevel
-PermissionMask
-AccountIsGroup
-BusinessKey

* Either Account_BusinessKey or Account_CBK must be filled.

important

Standard mappings support assignments between different domains in the same forest, and assignment to a domain in an external forest.

If there are cross system assignments, you must configure the trust between the systems under the 1.0.1 General settings task. The trust must be configured on the system with the group or resource.

Nested groups - Resource parent/child relationships

Nested groups, or groups that are members of other groups, are imported as parent/child relationships.

note

If your Active Directory does not use nested groups it is recommended to disable/delete this query.

ParameterValue
LDAP filter(objectCategory=Group)(objectClass=group)
Active DirectoryData Warehouse
falseIndirect
businesskey="<system>"+BuiltIn.SystemShortName+"</system>
<sid>"+objectsid+"</sid>"
Parent resource business key
ResourceObjectSidWoH=valuesidChild resource - business key
ResourceObjectSidWoH=valuesidChild resource - CBK
important

Standard mappings support nested groups between different domains in the same forest, and nested groups to a domain in an external forest.

If there are cross system relations, you must configure the trust between the systems under the 1.0.1 General settings task. The trust must be configured on the system containing the parent resource.

Resource Owner

The managedBy attribute on groups in Active Directory is imported as resource owners in the Data Warehouse. In Active Directory the managedBy can point to a user or to a group, but only users are supported in Omada Identity. The Data Warehouse uses the resolved account user as the resource owner. If the imported account does not have an owner in the Warehouse the information will be ignored.

note

If your Active Directory does not use the managedBy attribute, or if you do not wish to use this information is Omada Identity, it is recommended to disable/delete this query.

ParameterValue
LDAP filter(objectCategory=Group)(objectClass=group)
Active DirectoryData Warehouse
-BusinessKey
-OwnerUID
"<system>"+BuiltIn.SystemShortName+
"</system><sid>"+objectsid+"</sid>"
Resource_BusinessKey
-Type
UID=valuesidOwned account business key
UID=valuesidOwned account CBK

If you create a query to import resource owners, it is possible to specify the resource's owner in two ways. You can do it either by directly importing the UID of the identity or by specifying the account from which the resolved owner is imported as a resource owner. When mapping directly to the UID of identity, ensure that identities are already imported to Omada Identity.

When mapping to an owned account, it is possible to either specify the business key of the account or the composed business key. The former should be used if the account is in the same system as the resource and the latter should be used if the account is imported into any of the trusted systems. When the account stems from another system, you should use a Lookup mapping. Below you can find an example from the Active Directory collector.

Advanced settings

ParameterDescription
Resource assignment attribute prefixA confirmation of group membership ensuring proper resource assignment. Default value is member;.

NOTE: If your domain controller uses the 2012 (or 2012 R2) OS version, change member; to member to ensure the correct resource assignment processing. This change is required for backward-compatibility reasons.
Timeout (seconds)Timeout (in seconds) for establishing connection and for requests. Default value is 180.
Batch sizeA number of objects to retrieve per request when loading missing attributes. Default value is 100.
Due to a limitation in Active Directory LDAP request size, it is not recommended to use values greater than 100.
Max degree of parallelismA number of simultaneous requests to send to Active Directory. Default value is 15.
Omada recommends to configure the MaxPoolThreads setting in Active Directory to match the value of this parameter.
Retry timesA number of retries in case of connection failure or a timeout. Default value is 0.
Sleep before next retry (seconds)Sleep period (in seconds) before a new import retry. Default value is 10.
Full import in case of domain controller changeEnable this checkbox to perform a full import in the case if the Active Directory domain controller changes between imports or if there is a risk of high latency replication between Active Directory controllers. In such situations, this option should be enabled to ensure that data is not lost.
Full import in case of domain controller change and errorEnable this checkbox to perform a full import in the case if the Active Directory domain controller changes and an import error occurs.
Search option scopeSelect a search scope. Domain Scope includes ordinary domain objects (default). Phantom Root includes low-level database objects that Active Directory uses for internal management operations.
Use standard string format for SIDThe collector, by default, imports objectSid as a hexadecimal representation, for example, 01-05-00-00-00-00-00-05-15-00-00-00-1b-74-08-63-d4-51-e0-4b-bb-38-d4-fc-1c-ca-0d-00. Enable this option to use the standard Active Directory format, such as, S-1-5-21-917267712-1342860078-1792151419-50.
Perform unfoldingEnable this to unfold the parent-child hierarchy of the resources (such as groups with members of a group).

Configuring thresholds (optional)

  1. Click Configure import to open its settings dialog box.
  2. In the Configure import thresholds window, type a number (integer) in percentage for New objects, Modified objects, and Deleted objects to enable thresholds for the import of objects from this system.

The value for each operation is by default set to 0, which means that no threshold calculations take place for the operation(s) until you change the integer. See Threshold for more information.

important

Due to technical reasons, data that exceed the import thresholds set in Microsoft Active Directory Connectivity can only be rejected and another import would be required to extract the exceeding data. In such situations, in order to successfully import all the data, you need to raise the value of the import threshold or disable the threshold by setting it to empty.