SailPoint Active Directory Connector Guide
SailPoint Active Directory Connector Guide
Supported Features 1
Prerequisites 4
Required Permissions 5
Forest Settings 18
Domain Settings 20
IQService Settings 23
Exchange Settings 24
JNDI Configuration
32
Provisioning Policy 33
36
Supported Operations 40
Prerequisite 41
Administrator Permissions 41
Supported Operations 46
Prerequisites 46
Administrator Permissions 46
Prerequisites 54
Partitioning Aggregation 59
Writing a Script 61
Creating a Rule 67
Delta Aggregation 70
Parameter References 71
Identity Attributes 71
Troubleshooting 91
Integrating SailPoint with Active
Directory
Note
IdentityIQ connector information is now available as online help and PDF. The online help
describes the latest updates for the connector.
To find documents related to a specific version of IdentityIQ, refer to the page on Compass.
Configuration details for connectors may vary not only by release version but also by patch
ver- sion. Be sure to refer to the correct documentation for your specific release and patch
level.
This document is designed to give specific information about the requirements and field
definitions needed to get a working instance of an Active Directory connector in IdentityIQ.
The SailPoint Active Directory connector offers complete management of your Active Directory
infrastructure, which can be distributed across multiple domains/multiple forests. You can manage
users, contacts, groups, Exchange mail- box, mail users, mail contacts, and Skype users front a single
source.
For more information on what you can do with the Active Directory connector, refer to Supported
Features.
Exchange management operations with the Active Directory Connector will work with the
exchange server when the certificate signing of PowerShell serialization payload is
enabled. For more information, refer to Certificate signing of PowerShell serialization
payload in Exchange Server - Microsoft Support.
No longer supports Microsoft Exchange Server 2013 and Microsoft Lync Server 2013, as
Microsoft has ended support.
Supported Features
The connector supports the following features:
Account Management
Authentication, Delta Partitioning Aggregation
Create, Update, or Delete
Enable, Disable, Unlock, or Change Password
Add/Remove Entitlements (includes Foreign Security
Principals)
Terminal Services, Dial-in Attributes
Create, Update, or Delete Exchange User Mailbox
Create, Update, or Delete Exchange Mail User
Create, Update, or Delete Skype for Business user
Enable or Disable, setting policies for Skype for Business
user
Reset Skype for Business user PIN
Password Interception
Manages Active Directory Contacts as Accounts
Aggregation, Delta Aggregation, Partitioning Aggregation,
or Refresh Account
Active
Directory
Create, Update, or Delete
Contacts
Add or Remove Entitlements
Create, Update, or Delete Exchange Mail Contact
Active
Directory
Aggregation, Partitioning Aggregation, or Refresh Account
Service
Accounts
Create, Update, or Delete
(Managed Ser-
Add or Remove Entitlements
vice Account-
s/Group
Managed
Service
Manages Active Directory Groups as Account-Groups
Aggregation, Delta Aggregation, Refresh Group
Create, Update, or Delete
Create or Delete Exchange Distribution List
Manage Shared Mailbox as Account Groups. For more information, see Microsoft Exchange Shared
Mailbox.
For more information, see Active Directory Resource Forest Topology Exchange Management.
Permission Management
Application can be configured for following unstructured target collectors to read permissions
from the following end system:
Windows File Share: Read Windows File Share permissions directly assigned to accounts and
groups.
Supports automated revocation of the aggregated permissions and creates work items for
requests only when the default provisioning action is overridden, and Manual Work Item is
selected as the provisioning action.
Other
Restore deleted objects (Active Directory Accounts and Groups) using 'Active Directory Recycle
Bin'
Supports executing native before/after scripts for provisioning requests
Provides support for Simple Authentication and Security Layer (SASL) when binding to Active
Directory
Active Directory Connector provides support for serverless configuration for better reliability
and ease of con- figuration.
For more information, see Prerequisites.
IQService support TLS and client authentication to ensure the channel is secure and
IQService is com- municating with legit Client (IdentityIQ).
Microsoft Windows Server 2016
Microsoft Windows Server 2012 R2
Microsoft Windows Server 2012
Microsoft Windows Server 2008 R2
Note
Microsoft has not made any changes in the functional level for Active Directory in Microsoft Win- dows S
As a result, Microsoft Windows Server 2016 is the latest Active Directory functional level sup- ported.
Microsoft Exchange Server 2019
Microsoft Exchange Server 2016
Microsoft Skype for Business Server 2019
Microsoft Skype for Business Server 2015
Prerequisites
Create an Active Directory service account with the required permissions. A service account is
a special user account that is created for the sole purpose of running a particular service or
application on the Windows oper- ating system. Services use the service accounts to log on
and interact with the operating system.
If the Authentication Type is set to Strong, then the IQService host must be in the same
domain or in a trusted domain.
For managing Terminal Services (Remote Desktop Services profile) attributes, install the
IQService on a server class Windows Operating System.
Secure Active Directory connector.
For an application managing multiple domain trees, either from same or different forests,
there must be two- way trust relationship between them.
For managing Managed Service Accounts (MSA) or Group Managed Service Accounts (GMSA),
the following prerequisites are required:
For reading msDS-GroupMSAMembership and msDS-
AllowedToActOnBehalfOfOtherIdentity GMSA object properties, IQService is required
and Active Directory Module for Windows PowerShell must be enabled on the IQService
Host.
For Provisioning operations of MSA and GMSA objects, IQService is required and Active
Directory Mod- ule for Windows PowerShell must be enabled on the IQService Host.
Required Permissions
Service Account Permissions
A service account is a special user account that is created for the sole purpose of running a particular
service or applic- ation on the Windows operating system. Services use the service accounts to log on
and interact with the operating system. The service account must have appropriate permissions on
Active Directory. The Domain Controller must be accessible from the IQService host computer.
Note
The permissions discussed in the following section grant limited account creation privileges to a user. T
The service account specified in the application must be the member of the Account Operators group.
Provision Accounts
Write Members
Create User Objects
Change Password
Password Management
Reset Password
For the Active Directory connector, there are updated service account permissions to load and
provision Microsoft Lyn- c/Skype for Business. One of the following permissions is required, depending
on the service account type:
For Microsoft Skype for Business Server user management, the service account must be a
member of the CSUserAdministrator and one of the following domain groups:
RTCUniversalServerAdmins
Custom group with SQL permission
Databas
Security login Database Role Membership Databases
e
Instance
Group required to be added in SQL RTC, XDS,
RTCLOCAL server: DB_Owner
RTCDYN
Custom Group and
CSUserAdministrator
Group required to be added in SQL
RTC server: DB_Owner RTCXDS, XDS
Custom Group and
CSUserAdministrator
For managing Managed Service Accounts and Group Managed Service Accounts, the following
permissions are required:
Aggregation and Refresh Account: Member of Account Operators group.
Create, Update, and Delete: In addition to Account Operators, service accounts must have
full permission on the Active Directory container from which service account is to be
managed.
Prerequisites
The domains must have two-way trust.
The service account must have delegated permissions across other domains for user,
contact, and group objects.
Permissions must be delegated to the service account. Use the Delegation Control Wizard to
delegate per- missions to the contact.
To delegate permissions using the Delegation Control Wizard, complete the following:
2. Right-click on the Domain and select Delegate Control to open Delegation of Control Wizard
and then select Next.
3. Select the Add button to add a service account user and then select Next.
6. On the next screen, under Permissions select Full Control, then select Next.
7. Select Finish.
To delegate permissions using the Delegation Control Wizard, complete the following:
2. Right-click on the ForeignSecurityPrincipals container, select Delegate Control, and then select
Next.
3. Select the Add button to add a service account user and then select Next.
5. Select This folder, existing objects in this folder and creation of objects in this folder.
6. On the next screen, select Full Control under Permissions, and then select Next.
7. Select Finish.
To delegate permissions using the Delegation Control Wizard, complete the following:
3. Select Next.
7. Select Next.
8. Select Only the following objects in the folder option, then select Contact Objects and Create and
Delete selected objects in the folder.
9. On the next screen, select Full Control under Permissions, and then select Next.
a. In the Active Directory Users and Computers browser menu, select View, and then right-
click and select the Advanced features checkbox.
b. Right-click the domain node and select property, and then open the Security tab.
d. Select the user and select the Allow checkbox for Replicating Directory Changes permission.
2. To provide Read permissions on the Deleted Object Container to the service account.
a. Log on to any domain controller in the target domain with a user account that is a
member of the Domain Administrators group.
b. Open a command prompt. Enter the following command: dsacls "Deleted objects
container DN" /takeownershipIn the above command, the Deleted objects container
DN is the distinguished name of the deleted objects container. For example, dsacls
"CN=Deleted Object- s,DC=SailPoint,DC=Com" /takeownership
d. To grant Read permission to the objects in the Deleted Objects container to a user
type, enter the fol- lowing command: dsacls "Deleted objects container DN" /G
In the above command, LCRP stands for the list object and read properties permission. For
example,
dsacls "CN=Deleted Objects,DC=SailPoint,DC=Com" /G SailPoint\John:LCRP
<ProvisioningPlan>
<AccountRequest op="Modify">
<AttributeRequest name="memberOfSharedMailbox"
op="Add" >
<Value>
<List>
<String>DN of the shared Mailbox </String>
</List>
</Value>
</AttributeRequest>
</AccountRequest>
</ProvisioningPlan>
The above request assigns Full Access and Send As permissions to the user. These are the
default per- missions that are assigned if permission names are not provided explicitly in
the request. The default per- mission to be assigned can be changed by using the
defaultSharedMBPermissions application configuration attribute.
For example:
<entry key="defaultSharedMBPermissions"
value="fullAccess,sendAs,sendonbehalf"/>
This configuration sets default permissions to fullAccess, sendAs, and sendOnBehalf.
The following example only assigns the sendOnBehalf permission to the user:
<ProvisioningPlan>
<AccountRequest op="Modify">
<AttributeRequest name="memberOfSharedMailbox"
op="Add" >
<Attributes>
<Map>
<entry key="sharedMailboxPermission"
value="sendOnBehalf" />
</Map>
</Attributes>
<Value>
<List>
<String>DN of the Shared Mailbox</String>
</List>
</Value>
</AttributeRequest>
</AccountRequest>
</ProvisioningPlan>
Note
The connector supports only assigning of specific permissions. To remove a specific permission on the S
1. Assign Shared Mailbox permission to Active Directory User or Group by updating the Shared
Mailbox fullAc- cess, sendAs, and sendOnbehalf properties.
For example, the following plan executes the modify operation on the shared mailbox and
assigns fullAc- cess and sendAs permission to the user or group:
IdentityIQ and Active Directory Domain Controller/ Target system: For read operations *
IdentityIQ and IQService: For provisioning operations **
IQService and Active Directory Domain Controller/ Target system: For provisioning
* IQService is used for read operation for Skype and terminal attributes if defined in schema.
**Out-of-the-box IQService uses a fixed, known default encryption key when IQService is installed.
This enables Iden- tityIQ to communicate with IQService with no specific configuration for encryption
being put in place ahead of time, while still providing encryption for the data payload. No data
persists on the disk with these keys so observers would have to trace the data in-flight to be able to
decrypt any communications. Because of this extremely temporary and transitory nature of the
communication stream the risk associated with using default keys here is considered extremely low.
The risk can be further reduced by deployment specific keys which can be easily configuring using
the IQService public key exchange task.
From this point forward, IdentityIQ and IQService use TLS for encrypting the XML data payload.
Note
SailPoint recommends securing every communication path for the Active Directory application by follow
2. Double-click the .cer file, select Install Certificate, and select Next.
3. Choose Place all certificates in the following store and select Browse.
6. Select OK.
The Common Name (CN) in the Subject and DNS entry in the Subject Alternative Name fields in SSL
certificate must match the fully qualified domain name (FQDN) of the server.
Note
The FQDN of the Active Directory host must be specified (instead of IP address) in the Servers
field when the Use TLS option is selected under Domain Configuration.
1. Export server certificate and copy the exported .cer file to the IdentityIQ host.
keytool -importcert
In the preceding command line,–trustcacerts
aliasName is the–alias
name ofaliasName
the alias. –file <absolute
path of certificate> -keystore
3. Create the Active Directory application and provide all the required values after selecting
the Use TLS for IQService checkbox.
TLS Communication
Note
Client Authentication is mandatory for operations that use IQService with TLS Communication. Before c
1. On the application configuration page, select the Use TLS for IQService checkbox.
For more information on the TLS communication between IQService and an IdentityIQ, see
IQService.
2. Select Save.
Client Authentication
The Active Directory connector supports client authentication for IQService. This ensures that IQService
is com- municating with an authorized version of IdentityIQ.
To configure the client authentication, you need to have a domain user whose credentials can be
used for connection between IdentityIQ and IQService. This user must be able to self-authenticate
on the IQService host machine. To ensure that the authentication works correctly, IQService expects
the client to send the credentials of a user that is already registered with every request.
Note
For client authentication, configure the IQService with the following command: IQSer- vice.exe -a <
For client authentication, if the IQService host machine is not added to any domain, instead of the dom
In cases where a load balancer configured for IQServices (which are under same domain), you can regis
2. Select Save.
Forest Settings 18
Domain Settings 20
IQService Settings 23
Exchange Settings 24
JNDI Configuration 32
Note
This procedure provides the basic information necessary to configure your connector. For addi- tional in
To view the latest online IdentityIQ guides, refer to the .
3. The Edit Application page opens to the Details page. Enter the following information:
o
Owner – The owner of the application. The owner specified here is responsible for
certifications and account group certifications requested on this application if no
revoker is specified.
o
Application Type – The dropdown list contains the applications to which IdentityIQ can
connect. This list will grow and change to meet the needs of IdentityIQ users.
o
Description – A brief description of the application. Use the language selector to enter the
description in multiple languages. The dropdown list displays languages supported by
your instance of IdentityIQ.
o
Revoker – The default IdentityIQ user or workgroup to be assigned revocation requests
associated with entitlements on this application. If no user is specified in this field, all
revocation requests are assigned to the to application owner by default.
o
Proxy Application – Specify an application to manage accounts and provide connector and
schema settings for this application. The proxy application is an application that handles
the processing (aggreg- ation and provisioning) on behalf of your application.
o
Profile Class – A class used to associate this application with a larger set of applications
for role mod- eling purposes.
o
Authoritative Application – Select this option if this application in an authoritative
application. An authoritative source is a repository for employee information for your
enterprise that represents the primary and most trusted information about
identities, such as a human resources application.
o
Case Insensitive – Select this option to remove case sensitivity and ignore capitalization
differences within values.
o
Native Change Detection – Select this option if this application should be included when
IdentityIQ per- forms native change detection during aggregation.
Attributes to Detect – Indicates which attributes are compared when accounts are
modified. If the entitlement option is selected, all entitlement attributes are
included. If you select user defined, enter the name of the attributes to compare
in the attribute names box.
o
Maintenance Enabled – Select this option to exclude this application from provisioning
and aggreg- ation during the defined maintenance period.
Maintenance Expiration – The date at which the maintenance will end. If no date is
defined, this application will be in maintenance indefinitely.
o
Extended Attributes – This section displays any extended attributes that were
configured for your deployment of IdentityIQ.
o
For more information on the fields displayed on the Details page, refer to the IdentityIQ
Application Con- figuration Guide for your release.
4. Select Configuration and enter the information required for IdentityIQ to connect and interact
with the applic- ation. The information required varies by application.
5. Select Save.
Forest Settings
An Active Directory forest is a set of all the directory partitions in a particular Active Directory
instance that includes all domain, configuration, schema, and optional application information.
Multiple forests can share the Active Directory responsibilities across an enterprise. To support a
multi-forest configuration for the Active Directory source, configure multiple forests.
You can find the details of your existing configuration by using PowerShell commands. For more
information, refer to Active Directory PowerShell Commands.
1. Enter the Forest Name you want to set for a new forest to use in an organization.
2. (Optional) Enter the Global Catalog Server information using the following format: IP address /
FQDN:Port Number
The Global Catalog configuration also facilitates domain discovery within that forest.
3. (Optional) Enter the User with the required permissions using the following format: Domain
Name/User Name
For Strong Authentication (SASL) to work, the user must use the following
format: User- [email protected]. For more information, refer to
Required Permissions.
5. (Optional) Select the Authentication and Security from the drop-down menu.
Simple - The account to authenticate is identified by the DN of the entry for that
account, and the proof identity comes in the form of a password. SailPoint recommends
that you Use TLS with simple authen- tication as this encrypts data during transit.
Strong (SASL) - Strong authentication bind is performed, which uses Kerberos or NTLM
depending upon whether the IdentityIQ system is in a network (of service account
domain) or outside network. SASL has implicit security layer for data encryption.
6. (Optional) Select the Use TLS checkbox if the connection is over TLS. If you select this option,
you must spe- cify the TLS port in the Global Catalog Server field. For more information on
enabling TLS communication, refer to Securing the Active Directory Application.
7. (Optional) Select the Resource Forest checkbox if this is a dedicated resource forest to manage
Microsoft Exchange resources. For more information, refer to Active Directory Resource Forest
Topology Exchange Man- agement.
8. (Optional) Select Manage All Domains to manage all domains under that forest using the forest
credential. If selected, you do not have to configure the domain configuration section. For
domains that the application man- ages, you can preview them by selecting the Preview
button. If you do not select this option, domains in this forest can be enumerated in the
Note
If you change the Authentication and Security type, ensure that the Manage All Domains attribute is
9. (Optional) To create another forest, select Add and repeat the previous steps.
Domain Settings
This page displays the list of forests that you have configured and enables you to
configure domains. To create and set up a new domain, complete the following:
1. Enter the Forest Name you want to configure for this domain.
3. Enter the Service Account with the required permissions using the following format: Domain
Name\User Name.
5. (Optional) Enter the Servers information for the domain controller servers that you want to
configure using the following format: IP Address or FQDN. To configure multiple servers, enter
a server and then press the Enter key. If you have configured two or more servers and the
connection to the first servers fails, the source attempts to bind to the next domain controller
Note
If you do not provide the IP or FQDN information, it is a server-less bind that requires the correct D
6. (Optional) Select the Authentication and Security from the drop-down menu.
Simple - The account to authenticate is identified by the DN of the entry for that
account, and the proof identity comes in the form of a password. SailPoint recommends
that you Use TLS with simple authen- tication as this encrypts data during transit.
Strong - Strong authentication bind is performed, which uses Kerberos or NTLM
depending upon whether the IdentityIQ system is in a network (of service account
domain) or outside network. SASL has implicit security layer for data encryption.
7. (Optional) Select the Use TLS checkbox if the connection is over TLS.
8. (Optional) To configure another domain, select Add and repeat the previous steps.
9. Select Save.
If auto partitioning is not enabled, each of these search DNs is also considered as a partition for
partitioned full aggreg- ation. Users, Contacts, Managed Service Accounts, and Groups can have
different set of searchDNs to define dif- ferent scope for each of them. The search scopes are stored
in the following search DNs respectively:
Contact Search Scope: contact.searchDNs
Managed Service Account Search Scope: gmsa.searchDNs
In cases where the scope is not defined for Groups, it follows Account's Search Scope. Defining one
search DN to the minimum is required to successfully configure the connector.
Auto Partitioning
SailPoint recommends that you enable the Auto Partitioning feature to enable faster retrieval of
Active Directory data. For more information on configuring partitions manually, refer to Partitioning
Note
The Allow Partitioning feature is only available for account aggregation.
Aggregation.
1. Verify the Enable Partitioning checkbox is selected in your Account Aggregation task. For
more information on configuring your account aggregation, refer to Account Aggregation.
4. In the Number of Partitions dropdown, select the number of partitions. These help improve the
performance of auto partitioning and can be tuned by selecting the appropriate partitioning
count. For higher user pop- ulations, a higher partitioning count is preferred.
2. (Optional) Specify an Iterate Search Filter string to limit the results returned by the search
DN. For more information on the search syntax, refer to the Microsoft Active Directory:
LDAP Syntax Filters wiki.
3. (Optional) Specify Group Membership Search DN to determine the group membership of the
users that you are loading. Separate multiple entries with a semicolon.
4. (Optional) Specify a Group Member Filter String as an LDAP search filter string that applies
while fetching the user's group membership.
5. (Optional) Select Add to create another search filter or select Delete to remove a search filter.
6. Once you have configured all the search scopes, select Save.
1. (Optional) In the Search DN field, enter the distinguished name of the domain or OU that
defines the scope for contacts.
2. (Optional) Specify an Iterate Search Filter string to limit the results returned by the search
DN. For more information on the search syntax, refer to the Microsoft Active Directory:
LDAP Syntax Filters wiki.
3. (Optional) Specify Group Membership Search DN to determine the group membership of the
contacts that you are loading. Separate multiple entries with a semicolon.
4. (Optional) Select Add to create another search filter or select Delete to remove a search filter.
5. Once you have configured all the search scopes, select Save.
1. (Optional) In the Search DN field, enter the distinguished name of the domain or OU that
defines the scope for the managed service account.
2. (Optional) Specify an Iterate Search Filter string to limit the results returned by the search
DN. For more information on the search syntax, refer to the Microsoft Active Directory:
LDAP Syntax Filters wiki.
3. (Optional) Specify Group Membership Search DN to determine the group membership of the
5. Once you have configured all the search scopes, select Save.
Note
By default, If the scope is not defined for Groups, the connector users the Account search scope.
1. (Optional) In the Search DN field, enter the distinguished name of a container for a group to
define the search scope of groups.
2. (Optional) Specify an Iterate Search Filter string to limit the results returned by the search
DN. For more information on the search syntax, refer to the Microsoft Active Directory:
LDAP Syntax Filters wiki.
3. (Optional) Select Add to create another search filter or select Delete to remove a search filter.
4. Once you have configured all the search scopes, select Save.
IQService Settings
Install IQService to support execution of provisioning operations and native rules. IQService is
required by the Active Directory connector for all provisioning, and for reading certain fields from a
user's entry, including Terminal Services and Lync attributes.
1. (Optional) In the IQService Host field, enter the FQDN/IP of the system where IQService is installed.
2. (Optional) Enter the IQService Port number used to connect. If you enable TLS, configure the
corresponding IQService TLS port.
5. (Optional) Select the Use TLS checkbox if the connection is over TLS. If you select this checkbox,
IQService User and IQService Password attributes are mandatory. For more information, refer
to IQService: TLS and Cli-
6. Select Save.
Exchange Settings
Use this page to configure the exchange
server.
1. (Optional) Enter the Exchange Forest where the exchange servers are installed.
Important
If you select an exchange forest, the Exchange Host, Service Account, Password, and
Account Forest fields are mandatory.
2. (Optional) In the Exchange Host field, enter the exchange FQDN or IP of the Exchange server host.
3. (Optional) Enter the User with the required permissions using the following format: Domain
Name\User Name
5. (Optional) In the Account Forest field, enter the name of the account's or user's forests
served by this exchange server.
6. (Optional) Select the Use TLS checkbox if the connection is over TLS.
7. (Optional) To configure another exchange server, select Add and repeat the previous steps.
8. Select Save.
Additional Configuration Parameters
Additional binary/Sid/Guid Attributes
Caching Ports
rollbackCreatedAccountOnError
To rollback a created account in case one or more requested attribute /s for that account fails
during provisioning operations, set this attribute to true as follows:
reportPostScriptFailuresAsWarnings
When set to true, the native postscript errors are returned as warnings instead of errors for all
update operations. This ensures that the attributes are successfully provisioned to Active Directory
unlockOnChangePassword
The default behavior of unlocking the account on change password can be turned off by setting
the unlock-
OnChangePassword attribute to false. Default: true
setAttributeLevelResult
Enabling this parameter would marginally increase the time taken to process the request.
aggregationMaxRetries
Count of maximum retry attempts for Active Directory aggregation in case of failures with any
of the retry-able errors. Default: 5
manageLync
<entry key="manageLync">
<value>
<Boolean>true</Boolean>
</value>
</entry>
authSearchAttributes
List of attributes which would be used to search user during Pass Through Authentication.
The authSearchAttributes attribute can be changed as follows in the application debug page:
<entry key="authSearchAttributes">
<value>
<List>
<String>sAMAccountName</String>
<String>msDS-PrincipalName</
String>
<String>mail</String>
</List>
</value>
</entry>
memoryStoreSizeInElements
Defines the number of cache elements to be stored in memory (RAM). If all elements must be
stored in-memory and nothing on the disk, specify the value as -2 as follows:
disableComputePreloading
Default: false
To disable auto detection of group membership pre-loading for forests, set the value to true as
follows:
<entry
key="disableComputePreloading">
<value>
<Boolean>true</Boolean>
</value>
</entry>
useSingleThreadedCookieSearch
During full aggregation, dirsync cookies are fetched as per domain basis using concurrent threads.
To fetch cookies sequentially on a single thread, set the value to true as follows:
displayAttributeForContacts
CN is used as default for display name of contact objects in IdentityIQ. To use any other schema
attribute, define the name of the attribute as the as value of this attribute:
disableFspAggregation
Default: false
To disable aggregating foreign memberships of any user, set the value to true as follows:
<entry
key="disableFspAggregation">
<value>
<Boolean>true</Boolean>
</value>
</entry>
ldapExtendedControls
For Active Directory Services managed system not to generate any further references
(crossRef objects) in response to the search query add the following entry key in the
application debug page:
<entry key="ldapExtendedControls">
<value>
<List>
<String>1.2.840.113556.1.4.1339</
String>
</List>
</value>
</entry>
Active Directory Connector search does not rely on referrals to fetch information from the
managed system. To have the comprehensive data aggregated, Domain Setting configuration
must be up to date with required inform- ation.
skipDeletedObjScopeCheckInDelta
Default: false
If set to true as follows during account delta aggregation, connector does not make a call to
Active Directory to check whether deleted object was in scope of the application.
skipObjTypeCheckForMembersInDelta
Default: false
If set to true as follows during account delta aggregation, connector does not make a call to
Active Directory to check if objectType of member is added/removed to a group:
skipBindUsingDNS
Default: false
If set to true as follows, DNS server would not be used to find out Domain Controller for any
given domain in serverless configuration:
skipGetObjInMembershipDelta
Default: false
If set to true as follows, Connector would not make a call to Active Directory to get additional
attributes of the changed object intercepted during delta aggregation.
searchInContainers
Default: false
By default, the pass-through authentication (PTA) searches for the users in the entire domain
defined (in case of multiple searchDNs configured) which can delay PTA.
To enable PTA check for the users in configured search DNs only, set the following entry key to
true (only applies to pass-through authentication) in the application debug page:
disableLDAPHostnameVerification
To disable hostname verification during LDAP Communication over TLS, configure the following
attribute in the application debug page:
skipIterateSearchFilterInPTA
Default: false
If set to true as follows, Connector would not consider iterate search filter configured for single
search DN to authenticate the user in Pass through authentication (PTA):
buildPartialROOnAuthentication
Default: false
domainIterateSearchFilter
(Applicable only for User Delta Aggregation) Define this attribute in domain settings to override the
Iterate filter defined in Search Scope for Users.
disableContainerFilterForDelta
(Applicable only for Delta Aggregation) This attribute is used to skip the iterate search filter when set to
true
while performing DirSync delta aggregation.
adSystemConfUseUpdatedSASLCommunication
This attribute is used to resort back to previous implementation (non-cached). Add the following
attribute to the
IdentityIQ > Debug Page > Configuration > System Configuration
Or
IdentityIQ > Debug Page > Configuration Object (drop-down) > System Configuration
as follows:
<entry key="adSystemConfUseUpdatedSASLCommunication" value="false"/>
attrsDisplayInBinaryFormat
To display attributes values in binary format which is also the default display format:
<entry
key="attrsDisplayInBinaryFormat">
<value>
<List>
<String>Attribute name1</String>
<String>Attribute name2</String>
</List>
</value>
</entry>
attrsDisplayInSIDFormat
<entry
key="attrsDisplayInSIDFormat">
<value>
<List>
<String>Attribute name1</String>
<String>Attribute name2</String>
</List>
</value>
</entry>
attrsDisplayInGUIDFormat
<entry key="attrsDisplayInGUIDFormat">
<value>
<List>
<String>Attribute name1</String>
<String>Attribute name2</String>
</List>
</value>
</entry>
Caching Ports
Port numbers for caching mechanism to replicate the cached data across different task servers.
Note
SailPoint recommends that the ports are open and not in use by any other application.
enableCache
<entry key="enableCache">
<value>
<Boolean>true</Boolean>
</value>
</entry>
cacheRmiPort
cacheRemoteObjectPort
cacheReplicationTimeout
Maximum time in minutes to wait for membership cache replication on task server. Default: 10
minutes
cacheSocketTimeoutMillis
Maximum time in milliseconds to wait for the client sockets to send messages to a remote listener.
Default: 2000 milliseconds.
JNDI Configuration
This section covers information on JNDI systems.
The Active Directory connector supports all JNDI system properties. For more information,
refer to https://- docs.oracle.com/javase/jndi/tutorial/ldap/connect/config.html.
com.sun.jndi.ldap.connect.pool.maxsize
com.sun.jndi.ldap.connect.pool.protocol
com.sun.jndi.ldap.connect.pool.timeout
com.sun.jndi.ldap.connect.pool.initsize
com.sun.jndi.ldap.connect.pool.authentication
com.sun.jndi.ldap.connect.pool.debug
For example:
Provisioning Policy
When SailPoint provisions new accounts to the Active Directory source, it uses the attributes on the
Provisioning Policy page as instructions or a template for what to include in the account. Each source
can have its own con- figuration that specifies which attributes to include in account creation and
how to set their values. SailPoint pre- defines this for most source types, but you can edit the way the
attributes are mapped.
When new access is granted on a source where a user does not already have an account,
IdentityIQ automatically includes account creation in the provisioning. This applies whether
provisioning started from an access request or from automated role or lifecycle state assignment.
For direct-connect sources, IdentityIQ automatically creates the account from this configuration. If the
source is not configured as a direct-connect source, IdentityIQ creates and assigns a provisioning task
to the source owner and includes the values for the source owner to use in manually creating the
Warning
This section describes the configuration of the default Provisioning Policy. However, SailPoint recommen
account.
The Active Directory source has a skipDeletedObjScopeCheckInDelta attribute that you can
set to con- figure the binding of deleted and recycled objects in Active Directory and process
them in IdentityIQ accord- ingly.
Active Directory does not show the InvalidCastException attribute in logs when
provisioning a Lync account.
Active Directory updates the msExchHideFromAddressLists attribute value in 'modify'
provisioning oper- ation.
Active Directory returns the attribute level results by setting the setAttributeLevelResult
attribute to "true". Any attribute provisioning failures do not result in the failure of subsequent
attributes with same error, when setAttributeLevelResult is set to "true".
Note
The value must be inside quotation marks as it is being passed as a string and not a boolean valu
To pass additional information (metadata) in a provisioning plan to be used for any
customization (for example, IQService Before/After script), see the example of AccountRequest
metadata xml provided in the IQService Before/After Scripts.
For more information on provisioning attributes, refer to the Default Provisioning Attributes
Reference.
Note
The Schema tab is used to define the attributes for each object type in the application being configured
The schema attributes that are not present in the out-of-the-box must be defined as string if not specifi
For more information on the account schema attributes, see .
Account_Group objects that are used to hold entitlements shared across identities.
7. Select Save.
When creating custom names, be aware that the name that displays in Active Directory may
be different than the LDAP name. For more information, refer to List of LDAP Attribute Names
and Associated Name in Active Directory.
server)
User Account Control userAccountControl
thumbnailPhoto / exchangePhoto (supports high
User Photo resolution
photos) / jpegPhoto / photo / thumbnailLogo
Profile Path profilePath
Login Script scriptPath
Home Folder homeDirectory
Home Drive homeDrive
Log on to userWorkstations
Home homePhone
Pager pager
Mobile mobile
Fax facisimileTelephoneNumber
IP Phone ipPhone
Notes info
Title title
Department department
Company company
Manager manager
Mail Alias mailNickName
Simple Display Name displayNamePrintable
Hide from Exchange Address Lists msExchHideFromAddressLists
Sending Message Size (KB) submissionContLength
Receiving Message Size (KB) delivContLength
Accept Messages from Authenticated Users msExchRequireAuthToSendTo
Only
Reject Messages From unauthOrig
Accept Messages From authOrig
Send on Behalf publicDelegates
Forward To altRecipient
Deliver and Redirect deliverAndRedirect
Recipient Limits msExchRecipLimit
Use Mailbox Store Defaults mDBuseDefaults
Issue Warning at (KB) mDBStorageQuota
Note targetAddress
For the extern-
alEmailAddress attribute,
The Active Directory connector supports managing Exchange Linked Mailbox, Mail user, and Mail
contact from the Resource Forest. Whenever a user from the Account Forest requests a mailbox, a
Linked Mailbox is created on the Resource Forest Exchange server with an associated disabled
user. The connector uses the following terms:
Shadow Account for disabled user
Master Account for the user of Account Forest
The connector aggregates all Exchange properties of the Shadow Account and maps these to the
corresponding Master Account.
The connector relies on the connection details provided under the Exchange Settings, Forest Settings,
and Domain Settings to carry out all the supported operations.
Supported Operations
Operations Features
Aggregate Linked Mailbox properties for the Account Forest User
Aggregation
Aggregate Mail user, Mail contact from the Resource Forest Exchange
Create Linked Mailbox, Update Linked Mailbox properties
Delta Aggregation
Mail enabled Distribution List membership changes for the shadow
account
Create, Update, Delete Mail User object from the Resource Forest
Exchange
Linked Mailbox for the Account Forest User
Create, Update, Delete
Mail enabled Distribution List from the Resource Forest
Prerequisite
Minimum one-way trust from Exchange Resource Forest to Account Forest.
Administrator Permissions
For read operations of the Linked mailbox properties, service account from the Resource
Forest Domain must be a member of Account Operator group.
For all provisioning operations of Linked mailbox, service account from the Resource Forest
Domain must be a member of Recipient Management group.
disableShadowAccountMembership
By default, the connector considers the memberships of Shadow Account as Master Accounts
memberships.
To discard membership of shadow account, set this Boolean (or as a String) attribute to true
under domainSet- tings of respective Resource Forest domain, as follows:
shadowAccountMembershipFilter
By default, the connector retrieves all memberships of Shadow Account, but these
memberships can be filtered based on a LDAP filter.
For example, the following entry key only considers distribution group of shadow account:
<entry key="shadowAccountMembershipFilter"
provisionGroupToShadowAccount
value=" (!
By default, the connector supports assigning of only Universal and Global Distribution List from
Resource Forest Domain to the Shadow Account. To override this and to support all other types
of group provisioning to the Shadow Account, pass this attribute in the metadata of the
AttributeRequest for memberOf attribute as given in the following example:
supportFSPsFromResourceForest
Set this Boolean attribute to true to enable aggregating and provisioning FSPs from the
Resource Forest Domains for the Master Account. By default, the value is False.
retainShadowAccountOnDelete
To retain shadow account on delete of the master account set this Boolean attribute to true.
Default: False
Account searchDNs: For aggregating Linked Mailbox data, no additional Account Search
Scope required. The connector by default considers domains from Resource Forest as
search scope for Shadow Accounts.
Account Search scope can contain the searchDNs from the Resource Forest domains if Mail
User from the Resource Forest is to be managed.
Contact searchDNs: Adding searchDNs from the Resource Forest will allow managing contact
objects from the Resource Forest.
Group searchDNs: To manage groups from the Resource Forest domains, add searchDN
entries from the Resource Forest Domain.
msExchRecipientTypeDetails
Type of the Microsoft Exchange recipient object. Value 2 indicates that the mailbox type is a Linked
shadowAccountDN
The distinguished name of the Linked Mailbox Shadow Account (Disable Account which was
created while cre- ating Linked Mailbox).
shadowAccountGuid
shadowAccountDN
The distinguishedName of the Linked Mailbox shadow account (Disable Account which was created
while cre- ating Linked Mailbox).
Note
You can use PowerShell commands to find your configuration information if it's running on a com- puter
1. Select the Windows Start button, search for PowerShell, and then select Windows PowerShell.
2. To view your domain information, enter the following command: Get -ADDomain, and then press
the Enter
key.
3. To view your forest information, enter the following command: Get -ADForest, and then press
the Enter key.
The application user for provisioning of the Exchange server must be remote shell enabled. To enable
remote shell for a user, complete the following:
1. Set the RemotePowerShellEnabled parameter to $True on the Set-User cmdlet. For example:
Set-User UserName -RemotePowerShellEnabled $True
As a prerequisite, Active Directory module for Windows PowerShell on IQService machine must be
installed and the Active Directory DS role must be installed on a machine.
To enable the Active Directory module for Windows PowerShell, complete the following:
1. Go to Server manager > Features > Remote Server Administration Tools > AD DS & LDS tools and
select Active Directory module for Windows PowerShell.
2. In the PowerShell console window, use the Install-WindowsFeature cmdlet to install the
module. Specify the feature -Name (RSAT-AD-PowerShell) and add the -IncludeAllSubFeature
parameter to add any child features. For example, Install-WindowsFeature -Name RSAT-
AD-PowerShell - IncludeAllSubFeature
The Active Directory connector supports managing Shared Mailbox as Account Group object. For
this feature, the schema attributes and provisioning plan for the Shared Mailbox must be added
in the application xml file.
Supported Operations
Operations Features
Aggregate Shared Mailbox as Account Group Object
Aggregation
Aggregation of User’s Shared Mailbox assignment as an entitlement.
Prerequisites
IQService must be configured in the application
Exchange configuration details are required for aggregation and provisioning operations
Administrator Permissions
For aggregation of Shared Mailbox and aggregating user's Shared Mailbox Membership, the
service account must be a member of Account Operator Group and Recipient Management
Group.
For Create, Update, and Delete operations on a Shared Mailbox and when assigning a
Shared Mailbox to a user account:
Service account must be a member of Account Operator Group and Recipient Management
Group.
1. On the Exchange admin center page, select Permissions in the left pane.
2. Under the admin roles tab, click + icon to create new Role Group.
3. On the Role Group window that appears, enter the Name and Description.
4. From the list of displayed Roles, search and select Active Directory Permissions Role and select
Save.
This creates a Universal Security Group with the given name under Microsoft Exchange Security
Groups organ- izationUnit. Add the service account to this group.
The value of schemaObjectType can be set to string if the Shared Mailbox object schema is not
added in the application.
3. Add Create and Update Provisioning policies. The connector supports updating attributes
which are present in the Shared Mailbox schema.
Copy the following policies under the <ProvisioningForms> tag:
defaultSharedMBPermissions
Comma separated names of Shared Mailbox permissions which would be assigned to user
when Shared Mail- box access is requested by using the memberOfSharedMailbox attribute.
Default value: fullAccess, sendAs
For example:
To avoid the intensive time process of reading users Shared Mailbox assignment except for
aggregation oper- ation, connector returns user’s Shared Mailbox values which were
aggregated in the previous aggregation. This configuration attribute will get latest values of
Note
Setting this flag to true has a performance impact on get account operation.
fullAccess
Multi-valued attribute representing Active Directory objects having Full Access permission on
Shared mailbox. Object’s name is represented in msDs-PrincipalName format.
sendAs
Multi-valued attribute representing Active Directory objects having Send As permission on Shared
mailbox. Object’s name is represented in msDs-PrincipalName format.
sendOnBehalf
Multi-valued attribute representing Active Directory objects having Send As permission on Shared
mailbox. Object’s name is represented in distinguishedName format.
memberOfSharedMailbox
List of Shared Mailbox names that the user has Full Access, Send As, Send On Behalf, or all
three per- missions.
Note
Attributes marked with an asterisk (*) are mandatory.
distinguishedName*
mailNickname*
homeMDB
fullAccess
sendAs
sendOnBehalf
Prerequisites
Note
Recycle Bin feature must be enabled on Active Directory.
IQService can be installed on Windows system with one of the following Operating System:
Microsoft Windows Server 2019
Microsoft Windows Server 2016
Microsoft Windows Server 2012 R2
Microsoft Windows Server 2012
Install Active Directory module for Windows PowerShell on the computer where IQService is
installed.
Note
By default, this module is installed on all DCs.
For non-DC but server class Operating System computer, open Windows PowerShell Console and
execute the following commands:
Import-module servermanager
Add-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature
Run the following PowerShell command on all domain controllers (DCs) in the forest which must
be managed:
Enable-PSRemoting
Note
If multiple servers are managed, run the above command on all the servers present under the "do
2. Modify manageRecycleBin attribute in the Active Directory application with the value set to true.
<entry
key="manageRecycleBin">
<value>
<Boolean>true</Boolean>
</value>
</entry>
3. After account and account-group aggregation, the deleted object would be visible under the
Manage Recycle Bin quick link. Accounts/Groups can be restored individually or all together.
The unstructured target collector that can be configured with Active Directory application is Windows
file share.
Note
Active Directory Connector supports automated revocation of the Target Permissions.
objectSid for Accounts and Groups
This target collector requires a the IQService to be installed on a machine that has visibility to the
directory or share to include in the target scan. Refer to the Installation Guide for information on
installing and registering the IQService.
The unstructured targets defined on this tab are used by the Target Aggregation task to correlate
targets with per- missions assigned to identities and account groups for use in certifications.
Field Description
Field Description
Number of tar-
Number or targets (files) to include in each block of data returned.
gets per block
File Shares: The required information for each share.
UNC Style path to a share or local directory.
You can target a specific file or a directory and its sub-directories containing
Path
multiple files from which to extract the required data. If you target a directory,
use the Wildcard and Directory Depth fields to narrow the query if possible.
Use to instruct to the collector to ignore files and just report back directory
Directories permission inform-
Only
ation.
The sub-directory depth from which to extract data.
Directory The Directory Depth field enables you to extend your query up to ten (10) sub-
Depth directories below the one specified in the Path field.
Use wild cards to target a particular file type of naming scheme.
Wildcard For example, to search only Excel spread sheets, use *.xls or to search only files
with names beginning with finance_, use finance_*.*
Include
Use to instruct the collector to not report permissions unless they are directly
Inher- ited
assigned. Only dir- ectly assigned permissions will be returned
Per-
missions
The administrator that has access to this share so you can collect permissions. This
Administrator value should be the users principal [email protected] name or a fully qualified domain
user name in the
domain\\user format.
The password associated with the specified administrator.
Password The service will be running as System or can be configured to be run as any user,
so the Admin- istrator/Password fields may not be required in all cases.
Rules: Specify the rules used to transform and correlate the targets.
Note
Select the "..." icon to launch the Rule Editor to make changes to your rules if needed.
The rule used to determine how the unstructured data extracted from data source is
Creation Rule transformed
into data that can be read by IdentityIQ.
Correlation The rule used to determine how to correlate accounts (users and contacts)
information from the
Rule
application with identity cubes in IdentityIQ.
Provisioning related attributes: Select the settings for provisioning to the share.
Field Description
visioning
Provisioning
The overriding provisioning action for the collector.
Action
To revoke permissions for Active Directory users and/or groups using Windows File Share Target
Collector, perform the following:
Partitioning Aggregation
With IdentityIQ version 8.1 Patch 4, 8.2, or 8.0p5, auto partitioning can be performed by going to
Configuration
> Settings > Account and selecting the Allow Auto Partitioning checkbox. For more information, refer
to Account and Group Settings.
In the Active Directory connector, data can be partitioned by specifying a searchDN and/or a
searchFilter as a partition entry. The The Active Directory connector partition entries are the
application configuration searchDNs list with each entry of the list treated as a single partition.
Typically, for a container-based partitioning of data, define the searchDNs or partition list as follows:
<entry key="searchDNs">
<value>
<List>
<Map>
<entry key="searchDN" value="ou=test1,DC=test,DC=sailpoint,DC=com"/>
<entry key="iterateSearchFilter" value="(&(objectclass=user)
)"/>
<entry key="searchScope" value="SUBTREE"/>
</Map>
<Map>
<entry key="searchDN" value="ou=test2,DC=test,DC=sailpoint,DC=com"/>
<entry key="iterateSearchFilter" value="(&(objectclass=user) )"/>
<entry key="searchScope" value="SUBTREE"/>
</Map>
</List>
</entry>
And for filter-based partition, define the searchDNs list or partition list as follows:
<entry key="searchDNs">
<value>
<List>
<Map>
<entry key="searchDN" value="DC=test,DC=sailpoint,DC=com"/>
<entry key="iterateSearchFilter" value="(&(objectclass=user)
(sn=a*))"/>
<entry key="searchScope" value="SUBTREE"/>
</Map>
<Map>
<entry key="searchDN" value="DC=test,DC=sailpoint,DC=com"/>
<entry key="iterateSearchFilter" value="(&(objectclass=user)
(sn=b*))"/>
<entry key="searchScope" value="SUBTREE"/>
</Map>
</List>
</entry>
As seen above, in the first example, the OUs on which the search is performed are different although
the searchFil- ter is the same. Whereas, in the second partitions entry, the OUs are same, but the
iterateSearchFilter values are different. Since the required key values are similar, you could have
both the above examples coupled together into the application configuration of a single Active
Directory Connector application. Active Directory Connector combines the searchDN value and the
iterateSearchFilter value and considers it as the partition context, avoiding any additional
Note
Each of the partitions specified must be unique by way of the searchDN value or the iter- ateSearch
When there is no defined partition list, the aggregation executes over the baseDN and the iteraterSea
required configurations.
In addition to the basic action, some organizations may require supplementary actions performed
by each function from Windows system. The IQService supports customization of the functions by
allowing integrating before / after scripts implemented in any language. Following are some
features of the IQService Before/After script:
Centralized configurations (in IdentityIQ) for setting up Before/After scripts
Supports Object Oriented scripting
Script refers SailPoint library to get the request, result classes
Can be executed with specific context
Script can modify request/result
A script is a group of statements that perform one or more actions and manipulate request / result
attributes. Scripts can be used to automate any required actions that are currently performed
manually. Scripts called before processing the request are referred to as native before scripts and
scripts called after processing the request are referred to as native after scripts.
The scripts needs to be defined in a Rule and then configured for an Application in IdentityIQ. Based
on the rule type, the connector would send the scripts to IQService that needs to be executed
before / after processing the request.
The IQService supports executing before and after Rules for Create, Modify, and Delete request
operations.
Writing a Script
IQService divides scripts in the following categories:
Scripts with Object Oriented Support
Scripts without Object Oriented Support
Sample script that demonstrates how to read AccountRequest metadata (additional
attributes passed with Account request/objectRequest object).
Sample connectorBeforeModify script that demonstrates how to read AccountRequest
arguments.
Sample PowerShell after script that ensures that the request was processed successfully and
creates home dir- ectory at the path specified in the request.
Sample after script that displays how to access any application configuration attribute in the
script.
Sample batch after script that ensures that the request was processed successfully and creates
home directory at the path specified in the request.
Scripting languages with Object Oriented capabilities (for example, PowerShell) are popular because
of their simplistic nature and easy to use. These scripts can form objects of any type by referring
any library/assembly imple- mented in any language and call its methods.
Native scripts implemented in these languages have easier and more powerful access to request and
result objects. IQService comes with a class library named Utils.dll which bundles all required classes
to access the request and res- ult objects. The inputs provided to the script would be in the form of
process environment variables. The following table describes the environment variables created by
IQService:
The data in the environment variables is in XML. The script creates respective objects using Utils.dll.
Once the object is modified, the script should convert it to XML by calling toxml() method of the
object and write the xml to a file at the path that is passed as the only argument to the script. The
script returns non-zero value in case of error and writes the error message in the file at the path that
is passed as the argument to the script. This failure is communicated to Iden- tityIQ as part of result.
The following is a sample PowerShell before script that modifies the value of an attribute
and adds one new attribute to the request:
The following before script demonstrates how to read AccountRequest metadata
(additional attributes passed with Account request/objectRequest object).
The before/after script requires additional information to determine execution flow of the script
that cannot be passed as AttributeRequest obejct because the out-of-the-box connector is
not able to provision those attributes. Therefore attributes that are only used in scripts, must be
sent as a metadata (Attributes) of Accoun- tRequest instead of AttributeRequests.
The following example of the AccountRequest xml displays how to pass this metadata in the
request. In the following example the country, city, and jobTitlepassing attributes are passed as
metadata:
<ProvisioningPlan nativeIdentity="TESTDOMAIN\User100" targetIntegration="AD">
<AccountRequest application="AD" nat- iveIdentity="CN=User100,CN=Users,DC=TESTDOMAIN
<Attributes>
<Map>
<entry key="flow" value="AccountsRequest"/>
<entry key="interface" value="LCM"/>
<entry key="operation" value="Enable"/>
<entry key="provisioningPolicies">
<value>
<List>
<String>ChangePassword</String>
</List>
</value>
</entry>
<entry key="country" value="US" />
<entry key="city" value="Austin"/>
<entry key="jobTitle" value="Sr Manager" />
</Map>
</Attributes>
<AttributeRequest name="displayName" op="Add" value="SailorX"/>
</AccountRequest>
</ProvisioningPlan>
The following connectorBeforeModify script demonstrates how to read AccountRequest
arguments:
Add-type -path "C:\Program Files\SailPoint\IQService\utils.dll"
}
if( $country -eq "US") {
$memberOfList.Add("CN=USEmployees,OU=Employees,DC=TESTDOMAIN,DC=LOCAL")
}
if( $memberOfList.Count -gt 0) {
$attributeObject = New-Object SailPoint.Utils.objects.AttributeRequest;
$attributeObject.Name = "memberOf";
$attributeObject.Value= $memberOfList;
$attributeObject.Operation = "Add";
$requestObject.AttributeRequests.Add($attributeObject);
}
# Write the request xml to file at the path passed as argument
$requestObject.toxml()|out-file $args[0];
The following is a sample PowerShell after script that ensures that the request was processed
successfully and creates home directory at the path specified in the request:
}
}
The following after script displays how to access any application configuration attribute in the
script.
The following example reads application attributes with name Office365Username and password
and uses them to connect to Exchange Online and sets Mailbox properties:
#Connect to Office365
Import-Module msonline
Connect-MsolService -Credential $cred
#Connect Exchange-Online
$msoExchangeURL = "https://ps.outlook.com/powershell/"
$session = New-PSSession -ConfigurationName Microsoft.Exchange -
ConnectionUri
$msoExchangeURL -Credential $cred -Authentication Basic -
AllowRedirection
Import-PSSession $session
# Set mailbox properties
Set-MailBox -identity $nativeIdentity -UseDatabaseQuotaDefaults $false -
IssueWarningQuota "200MB" -ProhibitSendQuota "250MB" -
ProhibitSendReceiveQuota "280MB"
Non Object Oriented scripts do not support referring to the class library or a way of parsing XML. To
have easy access to each attribute along with their operation and values, IQService creates process
environment variables for each of the application and request attributes with names in the form
SP_<OPERATION>_<NAME> for requests and SP_APP_
<NAME> for applications. For native identity, the environment variable would be SP_NativeIdentity.
These types
of scripts have limited access to descriptive results and get only SUCCESS or FAIL in the Result
environment vari- able. Therefore the after scripts implemented using these scripting languages
cannot modify any attribute/result. The before scripts can add, modify, or remove any attribute from
the request. The script needs to write the newly added or modified attribute to the file at the path
passed as an argument to the script in the form SP_<OPERATION>_<NAME>-
>=<VALUE>. For removing the attribute from the request, write /~<ATTRIBUTE_NAME> to the file. Value
for the mul- tivalued attribute is delimited by /#/.
The following is a sample batch after script that ensures that the request was processed
successfully and creates home directory at the path specified in the request:
2. Use the following format to add attributes to the Rule in the form:
<Attributes>
<Map>
<entry key=<Name>
value=<Value>/>
</Map>
</Attributes>
Defaul
Name Description
t
Value
objectOrientedScrip Whether the rule source uses object oriented scripting. False
t
disabled Set to true if the rule should not be executed on the IQService False
side.
extension Extension of the script. .bat
Program/application that can execute this type of script.
cmd.ex
program Ensure that this program is installed on the system where
e or
IQService is running and i properly configured to execute the
cmd
scripts.
Time interval (in seconds) that IQService should wait for script
timeout to return. 10
After this interval, IQService aborts the script.
With this releases, IdentityIQ user interface does not have facility to configure Native Rule
applicable for IQService in Application. Navigate to the debug page, open the application and add
<nativeRules> under Attributes map with list of names of the Rules that must be configured for this
application.
For example:
<entry key="nativeRules">
<value>
<List>
<String>AfterCreate-Powershell</
String>
<String>BeforeCreate-Powershell</
String>
<String>BeforeModify-Batch</String>
</List>
</value>
</entry>
Delta Aggregation
Note
This includes changes such as when a user or group has been added, updated, or deleted on the manag
By default, Active Directory supports the DirSync mode of delta aggregation which is based on
DirSync feature of Act- ive Directory.
2. Create a task with delta aggregation flag set for Account and Account - Group Aggregation.
Parameter References
The following topics contain the parameter reference topics. These provide details on the important and
default para- meters for configuration, provisioning, or schemas.
Identity Attributes 71
Identity Attributes
SailPoint requires certain attributes remain in your configuration. These attributes are referred to as
Identity Attributes, and they must not be updated. If you update these attributes from their default
values, the connector may fail. To resolve any issues caused by changing Identity Attributes, re-
configure them to their default values. The following table lists the Identity Attributes for this
connector:
distinguishedName Account
distinguishedName Group
Account Creation
Note
For an account that has been moved or renamed in Active Directory since last aggreg- ation, ensure tha
ObjectType
For users, the object type must be User.
For contacts, the object type must be Contact.
For managed service accounts, the object type must be
msDS-Man- agedServiceAccount.
distinguishedName Distinguished name of the new account.
sAMAccountName sAMAccountName of the new account.
manager Manager for the new account.
mail Email address of the new account.
password Password for the new account.
givenName First name associated with the account.
sn Last name associated with the account.
This attribute can only be set as true or false.
When set to true, the pwdLastSet attribute value is set to 0 and it
selects the User must change password on logon checkbox for the Active
Directory user object's account in ADUC.
pwdLastSet
When set to false, the pwdLastSet attribute value is set to -1 and sets
this attrib- ute to the current time, and it deselects the User must change
password on logon checkbox.
Attribute Description
For example:
If you send an email address in the mail attribute, the exchange may not use it, if the E-mail
Policy in the exchange is set to create it differently. The email address is not taken and sent
back to Active Directory after it is created, based on the policy.
For the Active Directory source, the mailNickname, homeMBD, and
msExchHideFromAddressLists attrib- utes are case insensitive when processed by the
IQService.
The Active Directory source sets the MS-Exchange attributes - homeMDB and mailNickname
as AD attrib- utes, if MS-Exchange is not enabled.
Attribute Description
The Active Directory connector supports updating any Exchange mailbox attributes supported by
set-mailbox cmdlet, using the following methods:
1. Add the attribute in the provisioning policy with Exch_ as a prefix. For example,
to set the Hid- denFromAddressListsEnabled exchange attribute, add the
attribute name as Exch_Hid- denFromAddressListsEnabled in the provisioning
policy.
2. Alternatively, this can be done by editing the application xml file by adding an application
attribute named exchangeAttributes of string type with a comma separated name of the
Exchange attributes added in pro- visioning policy.
For example, for the HiddenFromAddressListsEnabled attribute, add the following to the debug
page:
<entry key="exchangeAttributes"
Attributes for Skype for Business
value="HiddenFromAddressListsEnabled,
Attribute Description
dNSHostName The DNS host name of the service account. This attribute is mandatory
for gMSA
provisioning.
msDS-Sup- The supported encryption types for the service account. This is a multi-
valued attrib-
portedEncryptionTypes
ute.
msDS-Man-
The number of the days for the password change interval.
agedPasswordInterval
The principals that are allowed to retrieve Managed Password of this
msDS-
Group-Man- aged
GroupMSAMem-
Service Account. This is a multi-valued attribute.
bership
msDS-
The accounts that can act on the behalf of this Group Managed Service
AllowedToActOnBe-
Account. This is a multi-valued attribute.
halfOf
OtherIdentity
servicePrincipalName The service principal names for the service account. This is a multi-
valued attribute.
For the Active Directory source, the accountExpires attribute must be defined as a string. The value
of the accoun- tExpires attribute can be set in the Microsoft defined timestamp that represents the
number of 100-nanosecond intervals since January 1, 1601 (UTC).
The value can also be entered in a human readable format: MM/DD/YYYY HH:MM:SS AM TimeZone.
For example, 05/11/2019 12:00:00 AM IST. A value of 0, never, or 9223372036854775807 indicates
that the account never expires.
The value of the accountExpires attribute is displayed in the MM/DD/YYYY hh:mm:ss aa Z format. For
example, if previously the time of account expiry was displayed as 5/14/2019 12:0:0 AM IST, it will now
be displayed as 05/14/2019 12:00:00 AM IST.
The Active Directory source supports never as a value of the accountExpires attribute in provisioning,
when the
timeZone attribute is present in the source configuration.
Note
SailPoint recommends that the accountExpires attribute must be defined as a string. However, the A
The Active Directory source supports rollback of created account in case provisioning of one or more
requested attrib- utes fails during the provisioning operation. Set the rollbackCreatedAccountOnError
attribute to True.
Note
Attributes with an asterisk (*) are the Terminal Services/Remote Desktop Services attributes. By default
Account Attributes
businessCategory
carLicense
This attribute type contains the license plate or vehicle registration number associated with the
user.
cn
This attribute type contains names of an object. Each name is one value of this multi-
valued attribute. If the object corresponds to a person, it is typically the person's full name.
departmentNumber
This attribute contains a numerical designation for a department within your enterprise.
description
This attribute type contains human-readable descriptive phrases about the object. Each
description is one value of this multi-valued attribute.
For example, "Updates are done every Saturday, at 1am.", and "distribution list for sales".
destinationIndicator
This attribute type contains country and city strings associated with the object (the addressee)
needed to provide the Public Telegram Service. The strings are composed in accordance with
CCITT Recommendations F.1 [F.1] and F.31 [F.31]. Each string is one value of this multi-valued
attribute.
For example, "AASD" as a destination indicator for Sydney, Australia. "GBLD" as a destination
indicator for Lon- don, United Kingdom.
The directory does not ensure that values of this attribute conform to the F.1 and F.31 CCITT
recommendations. It is the application's responsibility to ensure destination indicators that it
stores in this attribute are appropriately constructed.
displayName
This attribute contains the preferred name to be used for this person throughout the application.
distinguishedName
employeeNumber
This attribute contains the numerical identification key for this person within your enterprise.
employeeType
or part time.
externalEmailAddress
This attribute contains external email address of the mail user. Mail user is an AD user having
mailbox outside of organization.
facsimileTelephoneNumber
This attribute type contains telephone numbers and any required parameters for facsimile
terminals. Each tele- phone number is one value of this multi-valued attribute.
givenName
This attribute type contains name strings that are the part of a person's name that is not
their surname. Each string is one value of this multi-valued attribute.
homeMDB
homePhone
homePostalAddress
initials
internationalISDNNumber
This attribute type contains Integrated Services Digital Network (ISDN) addresses, as defined in
the International Telecommunication Union (ITU) Recommendation E.164 [E.164]. Each address
is one value of this multi-valued attribute.
This attribute type contains names of a locality or place, such as a city, county, or other
geographic region. Each name is one value of this multi-valued attribute.
This attribute type contains the RFC822 mailbox for the user.
mailNickname
Exchange Alias.
manager
This attribute type contains the distinguished name of the manager to whom this person reports.
memberOf
This attribute type contains the account group membership for this person on the application.
mobile
This attribute type contains the mobile telephone number of this person.
msDS-PrincipalName
msExchHideFromAddressLists
msNPAllowDialin
Indicates whether the account has permission to dial in to the RAS server.
msNPCallingStationID
If this property is enabled, the server verifies the caller's phone number. If the caller's phone
number does not match the configured phone number, the connection attempt is denied.
msRADIUSCallbackNumber
The phone number that is used by the server is set by either the caller or the network
administrator. If this prop- erty is enabled, the server calls the caller back during the
connection process.
msRADIUSFramedIPAddress
Use this property to assign a specific IP address to a user when a connection is made.
msRADIUSFramedRoute
Define a series of static IP routes that are added to the routing table of the server running
the Routing and Remote Access service when a connection is made.
NetBIOSName
This attribute type contains the names of an organization. Each name is one value of this multi-
valued attribute.
objectClass
The values of the objectClass attribute describe the kind of object which an entry represents. The
objectClass attribute is present in every entry, with at least two values. One of the values is either
"top" or "alias".
objectguid
objectSid
objectType
ou
This attribute type contains the names of an organizational unit. Each name is one value of
this multi-valued attribute.
pager
This attribute type contains the telephone number of this person's pager.
physicalDeliveryOfficeName
This attribute type contains names that a Postal Service uses to identify a specific
post office. For example, "Austin, Downtown Austin" and "Chicago, Finance
Station E".
postalAddress
This attribute type contains addresses used by a Postal Service to perform services for the
object. Each address is one value of this multi-valued attribute.
postalCode
This attribute type contains codes used by a Postal Service to identify postal service zones.
Each code is one value of this multi-valued attribute.
postOfficeBox
This attribute type contains postal box identifiers use by a postal service to locate a box on the
premises of the Postal Service rather than a physical street address. Each postal box identifier
is a single value of this multi-val- ued attribute.
preferredDeliveryMethod
This attribute type contains an indication of the preferred method of getting a message to the
For example, If the mhs-delivery Delivery Method is preferred over telephone-delivery, which is
preferred over all other methods, the value would be: "mhs $ telephone".
preferredLanguage
This attribute type contains the preferred written or spoken language of this person.
registeredAddress
This attribute type contains postal addresses to be used for deliveries that must be signed for
or require a phys- ical recipient. Each address is one value of this multi-valued attribute.
roomNumber
This attribute type contains the room or office number or this person's normal work location.
sAMAccountName
secretary
This attribute type contains the distinguished name of this person's secretary.
seeAlso
This attribute type contains the distinguished names of objects that are related to the subject
object. Each related object name is one value of this multi-valued attribute.
For example, the person object "cn=Elvis Presley,ou=employee,o=XYZ\, Inc." is related to the role
objects "cn=Bowling Team Captain,ou=sponsored activities,o=XYZ\, Inc." and "cn=Dart
Team,ou=sponsored activ- ities,o=XYZ\, Inc.". Since the role objects are related to the person
object, the seeAlso attribute contains the dis- tinguished name of each role object as separate
values.
sIDHistory
(Optional) User can add this attribute manually to view the data in a readable string format.
sn
This attribute type contains name strings for surnames, or family names. Each string is one value
of this multi-val- ued attribute.
st
This attribute type contains the full names of states or provinces. Each name is one value of
this multi-valued attribute.
street
This attribute type contains site information from a postal address (that is, the street name,
place, avenue, and the house number). Each street is one value of this multi-valued attribute.
telephoneNumber
This attribute type contains telephone numbers that comply with the ITU Recommendation E.123
[E.123]. Each number is one value of this multi-valued attribute.
teletexTerminalIdentifier
The withdrawal of Recommendation F.200 has resulted in the withdrawal of this attribute.
telexNumber
This attribute type contains sets of strings that are a telex number, country code, and
answer back code of a telex terminal. Each set is one value of this multi-valued attribute
title
This attribute type contains the persons job title. Each title is one value of this multi-
valued attribute. For example, "Vice President", "Software Engineer", and "CEO".
uid
This attribute type contains computer system login names associated with the object. Each
name is one value of this multi-valued attribute.
Group Attributes
cn
description
This attribute type contains human-readable descriptive phrases about the object. Each
description is one value of this multi-valued attribute.
For example, "Updates are done every Saturday, at 1am.", and "distribution list for sales".
distinguishedName
This attribute contains the distinguished name by which the user is known.
GroupScope
GroupType
mailNickname
memberOf
This attribute type contains the group membership for this person on the application.
msDS-PrincipalName
NetBIOSName
objectSid
objectguid
owner
sAMAccountName
TS_TerminalServicesProfilePath*
The roaming or mandatory profile path to be used when the user logs on to the RD Session Host
server.
TS_TerminalServicesHomeDrive*
TS_TerminalServicesHomeDirectory*
TS_TerminalServicesInitialProgram*
The path and file name of the application that the user wants to start automatically when the
user logs on to the RD Session Host server.
TS_TerminalServicesWorkDirectory*
TS_EnableRemoteControl*
A value that specifies whether to allow remote observation or remote control of the user's Remote
Desktop Ser- vices session.
TS_AllowLogon*
A value that specifies whether the user is allowed to log on to the RD Session Host server.
TS_BrokenConnectionAction*
TS_ReconnectionAction*
TS_ConnectClientDrivesAtLogon*
A value that specifies if mapped client drives should be reconnected when a Remote Desktop
Services session is started.
TS_ConnectClientPrintersAtLogon*
A value that specifies whether to reconnect to mapped client printers at logon. The value is one
if reconnection is enabled, and zero if reconnection is disabled.
TS_DefaultToMainPrinter*
A value that specifies whether to print automatically to the client's default printer. The value
is one if printing to the client's default printer is enabled, and zero if it is disabled.
TS_MaxConnectionTime*
The maximum duration of the Remote Desktop Services session, in minutes. After the
specified number of minutes have elapsed, the session can be disconnected or terminated.
TS_MaxDisconnectionTime*
The maximum amount of time, in minutes, that a disconnected Remote Desktop Services session
remains active on the RD Session Host server. After the specified number of minutes have
elapsed, the session is terminated.
TS_MaxIdleTime*
The maximum amount of time that the Remote Desktop Services session can remain idle, in
minutes. After the specified number of minutes has elapsed, the session can be disconnected or
terminated.
msRTCSIP-UserEnabled
Whether the user is currently enabled for Microsoft Lync\Skype for Business Server.
LineServerURI
EnabledForFederation
PublicNetworkEnabled
EnterpriseVoiceEnabled
LineURI
SipAddress
VoicePolicy
MobilityPolicy
ConferencingPolicy
PresencePolicy
VoiceRoutingPolicy
RegistrarPool
LocationPolicy
ClientVersionPolicy
ClientPolicy
ExternalAccessPolicy
HostedVoicemailPolicy
PersistentChatPolicy
UserServicesPolicy
ExperiencePolicy
ArchivingPolicy
LegalInterceptPolicy
PinPolicy
LyncPinSet
LyncPinLockedOut
msDS-AllowedToActOnBehalfOfOtherIdentity
Accounts that can act on the behalf of this Group Managed Service Account. Values of this multi
valued attribute must be in Distinguished Name format.
msDS-GroupMSAMembership
Principals allowed to use this Group Managed Service Account. Values of this multi valued attribute
must be in Distinguished Name format.
msDS-ManagedPasswordInterval
Interval in days after which Active Directory changes the password of the Managed Service
Account.
msDS-SupportedEncryptionTypes
Supported Encryption Types for the Managed Service Account. This attribute can have multiple
values.
servicePrincipalName
Service principal names for the Managed Service Account. This attribute is
Troubleshooting
If you encounter any of the following issues or errors, SailPoint recommends that you follow the
guidance provided below to resolve the error before contacting SailPoint Support.
For more information, refer to the Active Directory Connector - FAQ and Troubleshooting document.
Authentication Error
Abc.com
xyz.abc.com
and you want to perform PTA for users present at xyz.abc.com, the format
should be user- [email protected].
Organizational Units (OU) Child Objects Don't Update Following a Delta Aggregation
If you make a change to an OU which contains accounts or groups, such as renaming or moving
it, a delta aggregation doesn't pick up the changes. This is a limitation in Microsoft DirSync
Control explained here: https://- docs.microsoft.com/en-us/windows/win32/ad/polling-for-
changes-using-the-dirsync-control.
Resolution: Perform a full aggregation to capture the changes and update the child objects. You
might have to do this regularly to ensure the data is up to date.