Data import
General settings
| Setting | Description |
|---|---|
| Name | Type a unique name for the system. Two systems cannot have the same name. |
| System ID | Type a unique System ID for the system. Two systems cannot have the same System ID. You cannot change this setting. |
| Description | Type an optional description of the system. |
| Status | Status 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. |
| Content | This option is disabled and can be selected only when onboarding the Exchange Online Connector. |
| Trusts | Select one or more trusted systems to associate with the system. |
| Prevent self-service | Optionally, decide if it will be possible or not to request the resource in a self-service requests in that system. |
Connection details
| Setting | Description |
|---|---|
| Authentication | The authentication method to use with the Exchange system. You can use the following authentication methods: - Certificate thumbprint (on-premises only, not available in Omada Identity Cloud) - Certificate with password |
| Connection URI | The URL for Exchange Online PowerShell. In order to find the appropriate URL for your Exchange Online organization, go to: Microsoft documentation and Outlook documentation. |
| Username | The username for the user to authenticate against the Exchange server. |
| Password | The password for the user to authenticate against the Exchange server. Each time that you make a change to any of the settings in the Connection details dialog box, you must type your password again. |
| Organization | Specifies the organization that is used. Be sure to use an .onmicrosoft.com domain for the parameter value. |
| Application ID | Specifies the application ID of the service principal that's used in certificate based authentication. |
| Certificate thumbprint | Specifies the thumbprint value of the certificate used for certificate based authentication. Available only when the Certificate thumbprint is selected in the Authentication field. |
| Certificate (PEM format) | The certificate used for certificate based authentication. Value should be enclosed with -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- |
| Private key (PEM format) | A private key used for certificate based authentication. Value should be enclosed with -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- |
| Private key password | Specifies a password for the private key used for certificate based authentication. |
| Session options | Advanced options using New-PSSessionOption. For information about possible parameters and their functions, refer to the New-PSSessionOption article or the PSSessionOption Class article. -SkipCACheck -SkipCNCheck -SkipRevocationCheck |
| Import threads | Configure the number of simultaneous PowerShell sessions to use for retrieving the Send as and Full access information and speed up the run time for these two permissions. Use this setting for an asynchronous PowerShell to speed up the run time, wherever possible. Members of admin groups are fetched asynchronously. The default value is 1 (one). |
| Test connection | Enable this setting to test the connection information that you have specified. If you want to use this functionality you must install Omada Provisioning Service and make sure it has the necessary permissions to communicate with the target system. |
Queries and mappings
Out of the box, the Exchange Online Connectivity provides the mappings listed below. The suggested list of destinations to have the History checkbox enabled:
- ADDITIONAL_EMAILS
- HIDEINADDRESSLIST
- ISSUEWARNINGQUOTA
- PROHIBITSENDQUOTA
- PROHIBITSENDRECEIVEQUOTA
- WEBMAIL
Role Groups (Resource)
Parameters
| Parameter | Value |
|---|---|
| Source | Administrative resources |
| Distinct | No |
| Filter | Type=="RoleGroups" |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Business key | Expression | string.Format(" |
| Security resource business key | Expression | string.Format(" |
| Name | Map | RoleGroupName |
| Category | Constant | Group |
| Type | Constant | Exchange Admin Role Group |
| Distinguished name | Map | RoleDistingushedName |
| Description | Map | RoleGroupDescription |
| Scope | Map | Scope |
| RoleGroup Type | Map | RoleGroupType |
Members group (Resource parent/child)
Parameters
| Parameter | Value |
|---|---|
| Source | Administrative resources |
| Distinct | No |
| Filter | Type=="Members" && RecipientType?.ToString().IndexOf("Group") !=-1 |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Indirect | Constant | 0 |
| Parent resource business key | Expression | string.Format(" |
| Child resource - business key | Lookup | DistinguishedName=MemberDistinguishedName |
User mailboxes (Resource assignment)
Parameters
| Parameter | Value |
|---|---|
| Source | Mailboxes |
| Mailbox subtype | UserMailbox,LinkedMailbox |
| Distinct | No |
| Filter | Type=="User mailbox" |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Resource Business key | Expression | |
string.Format("<system>{0}</system><genericresource>{1}</genericresource>",BuiltIn.SystemShortName,RecipientTypeDetails) | ||
| Account - CBK | Lookup | Name=GrantSendOnBehalfTo |
| Business key | Expression | Type=="User mailbox"?" |
| PRIMARY_EMAIL | Map | PrimarySmtpAddress |
| ADDITIONAL_EMAILS | Map | EmailAddresses |
| HIDEINADDRESSLIST | Map | HiddenFromAddressListsEnabled |
| ISSUEWARNINGQUOTA | Map | IssueWarningQuota |
| PROHIBITSENDQUOTA | Map | ProhibitSendQuota |
| PROHIBITSENDRECEIVEQUOTA | Map | ProhibitSendReceiveQuota |
| WEBMAIL | Map | OWAEnabled |
| MAILBOXLOCATION | Map | MailboxLocation |
Shared mailboxes (Resource assignment)
Parameters
| Parameter | Value |
|---|---|
| Source | Mailboxes |
| Mailbox subtype | DiscoveryMailbox, EquipmentMailbox, GroupMailbox, LegacyMailbox, LinkedMailbox, LinkedRoomMailbox, RoomMailbox, SchedulingMailbox, SharedMailbox, TeamMailbox |
| Distinct | No |
| Filter | Identity != null && Type !="Full access" && Type !="Send as" && Type !="Send on behalf" |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Resource Business key | Expression | string.Format(" |
| Account - CBK | Lookup | Name=GrantSendOnBehalfTo |
| Business key | Expression | Type=="User mailbox"?" |
| PRIMARY_EMAIL | Map | PrimarySmtpAddress |
| ADDITIONAL_EMAILS | Map | EmailAddresses |
| HIDEINADDRESSLIST | Map | HiddenFromAddressListsEnabled |
| ISSUEWARNINGQUOTA | Map | IssueWarningQuota |
| PROHIBITSENDQUOTA | Map | ProhibitSendQuota |
| PROHIBITSENDRECEIVEQUOTA | Map | ProhibitSendReceiveQuota |
| LINKEDMAILBOXDOMAIN | Map | LinkedMasterAccount |
| WEBMAIL | Map | OWAEnabled |
| MAILBOXLOCATION | Map | MailboxLocation |
Mailbox access (Resource assignment)
Parameters
| Parameter | Value |
|---|---|
| Source | Mailbox access |
| Mailbox subtype | UserMailbox,EquipmentMailbox,RoomMailbox,SharedMailbox,LinkedMailbox |
| Distinct | No |
| Filter | LinkedMasterAccount != null && LinkedMasterAccount != "NT AUTHORITY" |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Resource Business key | Expression | string.Format(" |
| Account - CBK | Lookup | Name=GrantSendOnBehalfTo |
| Target - CBK | Expression | string.Format("0_ |
| Business key | Expression | |
string.Format("<account>{0}</account><resource>{1}</resource><target>{2}</target>", LinkedMasterAccount, Type, ExchangeGuid) | ||
| LinkedMasterAccount | Map | LinkedMasterAccount |
| AccessType | Map | Type |
| MAILBOXREF | Expression | string.Format("0_ |
Send on behalf (Resource assignment)
Parameters
| Parameter | Value |
|---|---|
| Source | Mailboxes |
| Mailbox subtype | UserMailbox,LinkedMailbox,DiscoveryMailbox,EquipmentMailbox,GroupMailbox,LegacyMailbox,LinkedRoomMailbox,RoomMailbox,SchedulingMailbox,SharedMailbox,TeamMailbox |
| Distinct | No |
| Filter | Type=="Send on behalf" |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Resource Business key | Expression | string.Format(" |
| Account - CBK | Lookup | Path=GrantSendOnBehalfTo |
| Target - CBK | Expression | string.Format("0_ |
| Business key | Expression | string.Format(" |
| PRIMARY_EMAIL | Map | PrimarySmtpAddress |
| Identity | Map | Identity |
| RecipientTypeDetails | Map | RecipientTypeDetails |
| ExternalDirectoryObjectID | Map | ExternalDirectoryObjectID |
| GrantSendOnBehalfTo | Map | GrantSendOnBehalfTo |
| MAILBOXREF | Expression | string.Format("0_ |
Role assignments (Resource assignment)
Parameters
| Parameter | Value |
|---|---|
| Source | Administrative resources |
| Distinct | No |
| Filter | Type=="Members" && RecipientType?.ToString().IndexOf("Group") < 0 |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Resource Business key | Expression | string.Format(" |
| Account - CBK | Lookup | UID=MemberName |
| Description | Map | RecipientType |
Distribution groups (Resource)
By default, there is only one query for distribution groups. To onboard distribution groups and separately mail-enabled security groups, apply additional filtering. Use the DistributionGroupType attribute - provide the SecurityEnabled value to provision mail-enabled groups.
Parameters
| Parameter | Value |
|---|---|
| Source | Distribution groups |
| Distinct | No |
| Filter | Type==""DistributionGroups" |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Business key | Map | DistributionGroupGuid |
| Secret resource business key | Map | DistributionGroupName |
| Name | Map | DistributionGroupName |
| Category | Constant | Distribution Group |
| Type | Constant | Exchange Distribution Group |
| Display name | Map | DistributionGroupDisplayName |
| Account - CBK | Lookup | BusinessKey=MemberExternalDirectoryObjectId |
Default source fields
Add the DistributionGroup prefix to use any other field returned by the Get-DistributionGroup command. Example: To get the alias field, add the mapping for DistributionGroupAlias.
DistributionGroupName
DistributionGroupDisplayName
DistributionGroupDistinguishedName
DistributionGroupType
DistributionGroupPrimarySmtpAddress
DistributionGroupManagedBy
DistributionGroupHiddenFromAddressListsEnabled
DistributionGroupRequireSenderAuthenticationEnabled
Type
Distribution group members (Resource assignment)
Parameters
| Parameter | Value |
|---|---|
| Source | Distribution groups |
| Distinct | No |
| Filter | Type==""DistributionGroupMembers" |
Mappings
| Destination | Operator | Source |
|---|---|---|
| Resource business key | Map | DistributionGroupGuid |
| Account - CBK | Lookup | BusinessKey = MemberName |
Default source fields
Add the Member prefix to use any other field returned by the Get-DistributionGroupMember command. Example: To get the ExchangeGuid field, add the mapping for MemberExchangeGuid.
DistributionGroupName
MemberDistinguishedName
MemberName
MemberDisplayName
MemberAlias
RecipientType
Type
Extension script
Utilizing the PowerShell extension script is supported for the Exchange collector.
To enable it specify the Script file name, containing available functions, in the Connection details section.
You can implement extension script in two ways.
In the Queries and mappings section add a mapping with the Source parameter set to Script. Then configure the Function name parameter to indicate which function from the extension script file you want to utilize. Then specify the required mappings.

Alternatively, for the queries with source set to Mailboxes there is an additional parameter Extension attribute function name. The specified function is then performed after retrieving the mailboxes. This provides additional attributes, that are otherwise not available with the Get-Mailbox command.
This way PSObjects are returned with the ExchangeGuid, used for mapping results of the function mailbox return by query, and required attributes.
Advanced queries and mappings configuration
If you require any custom mappings for your system implementation, this section describes the details of the fields available in the Queries and mappings task.
This collector supports any number of queries and has the following query parameters which should be specified when creating or editing a query.
- In the Distinct field, you can specify if the collector should remove possible duplicate rows.
- In the Filter field under the Parameters section, you can provide a Dynamic Expresso expression that is used for filtering the data imported into Omada Identity. It returns a TRUE/FALSE result for each imported data row. If the expression returns "FALSE" for the given row that row is skipped during import.
The filter can be supplied with special functions #MinRow() or #MaxRow(). The #MinRow()/#MaxRow() are custom functions that can be combined with regular DynamicExpresso expressions thanks to the # prefix, for example, in line:
#MinRow(col1, col2)#col=="active"
the custom function is encapsulated with # at the start and optionally at the end - if a regular filter is to be appended like in the example (col=="active").
The MinRow()/MaxRow() functions take two parameters. The intention is similar to a Group by function in SQL server that allows you to eliminate duplicates and to take the lowest or highest*[order by column] for each [unique column] row, i.e., MinRow([unique column], [order by column])*.