Using LDAP To Manage Users
Using LDAP To Manage Users
Using LDAP To Manage Users
Users
PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information.
PDF generated at: Sun, 03 May 2015 02:39:32 PST
Introduction
LDAP Integration
Overview
Administrators integrate with a Lightweight Directory Access Protocol (LDAP) [1] directory to streamline the user
login process and to automate administrative tasks such as creating users and assigning them roles. An LDAP
integration allows the ServiceNow system to use your existing LDAP servers as the master source of user data.
Typically, an LDAP integration is also part of a single sign-on implementation.
The integration uses the LDAP service account credentials to retrieve the user distinguished name (DN) from the
LDAP server. Given the DN value for the user, the integration then rebinds with LDAP with the user's DN and
password. The password that the user enters is contained entirely in the HTTPS session. The integration never stores
LDAP passwords.
The integration uses a read-only connection that never writes to the LDAP directory. The integration only queries for
information, and then updates its internal database accordingly.
Note: This page gives general information about the LDAP integration. For detailed information about setting up the integration,
see LDAP Integration Setup.
Data Population
An integration to the LDAP servers allows you to quickly and easily populate the ServiceNow database with user
records from the existing LDAP database. To prevent data inconsistencies, configuration settings provide the ability
to create, ignore, or skip incoming LDAP records.
You can also limit the data the integration imports by specifying LDAP attributes, thereby importing only the data
that you want to expose to an instance. Typically, the LDAP attributes you specify become part of the integration
transform map. If you do not specify any LDAP attributes, the integration imports all available object attributes from
the LDAP server. The instance stores imported LDAP data in temporary import set tables, so the more attributes you
import, the longer the import time. For more information, see Specify Attributes for Better Performance or Security
Considerations.
LDAP Integration
Deleting records
By default, the ServiceNow system does not delete any entries after they disappear from LDAP. This is because
deleting an entry also deletes the entire history and references to the deleted entry.
For example, configuration items (CIs), SLA agreements, software licenses, purchase orders, and service catalog
entries all have a reference to Department, and if a department is deleted, then the integration clears all references to
the department. Also, deleting a user results in losing all history of what that user did. Decide whether to retain or
manually delete LDAP entries according to your organization's needs.
Authentication
When a user enters network domain credentials in the ServiceNow login page, the instance passes those credentials
to each defined LDAP server. The LDAP server responds with an authorized or unauthorized message that the
ServiceNow system uses to determine whether access should be granted. By authenticating against your LDAP
server, users access the ServiceNow platform with the same credentials that they use for other internal resources on
your network domain. Also, you can reuse any existing password and security policies that are already in place. For
example, the LDAP server may already have account lockout and password expiration policies.
When you enable LDAP, the ServiceNow system updates user records with these fields.
Field
Description
Source
Identifies whether or not LDAP is used to validate a user. If the source starts with ldap, then the user is validated via LDAP. If the
source does not start with ldap, then the password on the user record is used to validate the user upon login.
LDAP
Server
Identifies which LDAP server authenticates the user when there are multiple LDAP servers.
Note: The ServiceNow system does not support LDAP password authentication through a MID Server. A ServiceNow instance must
be able to directly connect with an LDAP server to support password authentication.
LDAP Integration
Secure Connections
The LDAP integration ensures security by connecting from a single machine that uses a fixed IP address through a
specific port on the firewall. Furthermore, the connection requires a read-only LDAP account of your choosing for
authentication. If you need additional protection for the LDAP integration, you can use one of these security
features:
MID Server: To shield your LDAP server from external network traffic, install a MID Server on the local
network and configure the ServiceNow system to communicate with the MID Server over a secure channel.
LDAPS: To establish an encrypted LDAPS connection, load the public side of your LDAP server's SSL
certificate. The integration uses the certificate to encrypt all communication between the LDAP server and the
LDAP Integration
ServiceNow system.
VPN: To secure the LDAP server with an encrypted point-to-point IPSEC VPN tunnel, speak to your
ServiceNow account manager for details and pricing.
For more information about VPNs, Mid Servers, and LDAP integrations, see You Don't Need A VPN Part I
the ServiceNow Community.
[3]
on
LDAP Listener
A listener is a dedicated process that periodically searches for changes to users and groups on the LDAP server. The
listener can be deployed on a Microsoft Active Directory server that supports persistent queries (ADNotify), or on an
LDAP server that supports persistent search request control (with OID 2.16.840.1.113730.3.4.3), which is available
starting with the Eureka release.
If the LDAP server supports a persistent search, the LDAP listener recognizes any user and group changes made to
any of the applicable LDAP accounts and forwards them to your instance within approximately 10 seconds. This
allows ServiceNow to have a nearly real-time copy of your users' account details without having to wait for the next
scheduled refresh. The LDAP listener can only synchronize objects that map to the User [sys_users] and Group
[sys_user_group] tables.
To enable a listener on an LDAP server record, see Enable a Listener.
LDAP Monitor
The LDAP monitor provides the current status of the LDAP listener (starting with the Eureka release).
Active
Inactive
Error
Active (Shutting down...)
Error (Shutting down...)
LDAP Integration
Multiple Domains
You can establish multiple network domains within the same forest or for completely non-trusted domains. The
recommended method is to create a separate LDAP server record for each domain. Each LDAP server record must
point to a domain controller for that domain. This means the local network must allow connections to each of the
domain controllers.
After expanding to more than one network domain, it is critical that you identify unique LDAP attributes for the
application user names and import coalesce values. A common unique coalesce attribute for Active Directory is
objectSid [4]. Unique user names may vary based on the LDAP data design. Common attributes are email or
userPrincipalName.
Enhancements
Fuji
Improves the way administrators can add and manage redundant LDAP servers.
Automatically changes the operational status of servers to up or down depending on the results of connection
tests.
Eureka
An LDAP monitor reports on the current status of LDAP listeners and servers.
The LDAP listener functionality is available on the MID Server and supports Microsoft Active Directory servers
and LDAP servers with persistent search request control.
Dublin
ServiceNow can connect to an LDAP server using a MID Server. See Secure Connections.
ServiceNow automatically tests the connection to the LDAP server every time the LDAP Server form is opened
and every time the LDAP Connection Test scheduled job runs the test. By default, the scheduled job tests the
connection every 15 minutes, but administrators can modify this value.
To better notify administrators when the LDAP server connection fails, the following items were added:
The LDAP Admins user group. Administrators should add the necessary LDAP administrators to this group.
The LDAP Connection Failed email notification, which automatically sends email to the LDAP Admins
group when a connection failure occurs.
The LDAP Connection Test scheduled job, which creates the connection failure event, triggering the LDAP
Connection Failed email notification.
References
[1]
[2]
[3]
[4]
Configuration
LDAP Integration Configuration
Overview
Administrators typically enable an LDAP integration to allow single sign-on of ServiceNow users from their
company LDAP directory. The procedures on this page guide you through the process of setting up an LDAP
integration.
For more information about VPNs, Mid Servers, and LDAP, see You Don't Need A VPN Part II
ServiceNow Community.
[1]
on the
3. Click Submit.
Field
Description
URL
Order
The order in which the instance searches for an available LDAP server from lowest value to highest. A business rule
automatically populates this value if you leave the field blank.
Active
A true/false field indicating whether the LDAP server is available for use as a backup server. Only active servers can be used as
backup servers.
Operational
Status
A read-only true/false field indicating whether the LDAP server is currently available. Only servers that are currently operational
can be used as backup servers.
The LDAP Servers embedded list is available starting with Fuji release. If you are using an earlier version, see the
previous version information.
Click the plus to view previous version information
Administrators can specify multiple servers in the Server URL field in the New LDAP Server form to list their network's redundant LDAP servers.
Separate each URL with a space character. The instance searches for an available LDAP server in the order in which they are listed.
Enable SSL
If you use an LDAPS integration and the default SSL port is 636, no further configuration is necessary; SSL is
automatically enabled. If the LDAPS integration uses another SSL port, define the alternate SSL connection
properties.
1.
2.
3.
4.
5.
6.
Enable a Listener
Enabling a listener is optional. If enabled, a listener notifies the ServiceNow system to process LDAP records soon
after there is an update on the LDAP server. See LDAP Listener for more information.
To enable a listener:
1.
2.
3.
4.
10
Note: To use the manager lookup scripts described in Select or Create a Transform Map for LDAP Data, specify manager and dn
(distinguished name) in the Attributes field. Neither attribute is required to be a part of a transform map.
Set Connection
Properties
To set connection properties for a
specific LDAP server:
1. Navigate to System LDAP >
LDAP Servers.
2. Select the LDAP server to
configure.
3. Set the connection property fields
(see table).
4. Click Update.
LDAP attributes
Field
Description
Name
Active
LDAP Server
URLs
Enter the URLs of the primary and backup LDAP servers. This field is available starting with the Fuji release. Servers are first
ordered by operational status, with servers that are Up listed first, then ordered by the Order value that you specify. The first
server listed is the primary LDAP server. The others are redundant servers.
Server URL
Enter the URL of the server (prior to the Fuji release). Starting with the Fuji release, this field is not shown on the form by default.
Configure the form to add this field if necessary. It is a calculated read-only field that shows the list of LDAP servers that you can
also see in the LDAP Server URLs field, separated by a space, and ordered by operational status and the order values of the
URLs.
Login
distinguished
name
Enter the distinguished name (DN) of the user authenticating the LDAP connection.
11
Starting search
directory
Enter the relative distinguished name (RDN) of the default search directory. All queries to this LDAP server will start from this
RDN.
MID Server
Select the MID Server you want to use to connect to the LDAP server. Using a MID Server to establish an LDAP connection
prevents you from having to expose the LDAP server to external network traffic. It also eliminates the need to establish a VPN
tunnel between your LDAP server and ServiceNow data centers.
Notes:
The MID Server user must have the user_admin role in order to be able to read LDAP server configuration records.
The following are not available with the MID Server:
LDAP authentication
SSL connection
Connect
timeout
Specify the number of seconds the integration has to make an LDAP connection. The integration stops the current connection
request after the request exceeds the connection timeout.
Read timeout
Specify the number of seconds the integration has to read LDAP data. The integration stops reading LDAP data after the
connection exceeds the read timeout. If you enable an SSL connection, you can also set a read timeout value with the
com.glide.ssl.read.timeout system property. If you enter timeout values for both this field and the system property,
the lowest timeout value takes precedence. For more information, see Available System Properties.
SSL
Select this check box to require the LDAP server to make an SSL-encrypted connection. For more information, see Enable SSL. If
you selected a MID Server, this field is not available.
Listener
Select this check box to enable the integration to periodically poll Microsoft Active Directory servers or LDAP servers that
support persistent search request control. Additionally, if you selected a MID Server, the listener functionality is available for that
MID Server (starting with the Eureka release).
Listen interval
Specify the number of minutes the integration listens for LDAP data with every connection. The integration stops listening for
LDAP data after the connection exceeds the listen interval.
Paging
Select this check box to have the LDAP server split up LDAP attribute data into multiple result sets rather than submit multiple
queries.
Automatic Validations
When an LDAP Server record is set to active, the system automatically tests every connection to validate it.
Validations include:
The LDAP server is accessible at the provided URL and port
The LDAP server URL is properly formatted
The login credentials are valid
If the LDAP servers fail validation, the system displays an error message explaining the failure (prior to the Fuji
release). For example:
Starting with the Fuji release, the
system displays colored dots next to
each server URL:
Green: The server if active and
operational.
Gray: The server is neither active
nor operational.
Red: The server is active but not
operational.
Sample LDAP server validations prior to the Fuji release
12
Testing the
Connection
You can manually test connection to
LDAP
servers
or
allow
the
ServiceNow system to automatically
test the connections.
You can manually test the connection to the LDAP server from the LDAP server form. For versions prior to Dublin,
this is the only way to test the connection.
1.
2.
3.
4.
Starting with the Dublin Release, the test is performed automatically and the related link does not appear.
7. Under Related Links, click Browse to view the LDAP directory records that the OU definition returns.
13
Field
14
Description
Name
Specify the name the integration uses when referencing this OU. The name you enter here becomes an LDAP target in the data source
record.
RDN
Specify the relative distinguished name of the subdirectory you want to search. This RDN is combined with the start-searching directory
from the LDAP server definition to identify the subdirectory containing information for this organizational unit. For example, the sample
OU definition uses the RDN value of CN=Users to search the LDAP directory CN=Users,DC=service-now,DC=com and any directory
below this point. This field must match a subdirectory in your LDAP system.
Query Specify the name of the attribute within the LDAP server to query for records. The query field must be unique in both single and multiple
field
domain instances. For best results, use email addresses or other credentials that uniquely identify the user in a multiple domain instance.
Active Directory uses the sAMAccountName attribute. Other LDAP servers tend to use the cn attribute.
Note:The Query field must map to the User ID field in the User [sys_user] table. For example, if an Active Directory user logs in as
joe.example, there must be a user record with a User ID value of joe.example and an LDAP record with an sAMAccountName value of
joe.example.
Active Select this check box to activate the OU definition and to allow administrators to test importing data. The Test connection and Browse
related links work on inactive OU definitions for versions prior to the Dublin release. However, the integration can only bring data into the
system from active OU definitions.
Table
Specify the ServiceNow table that receives the mapped data from your LDAP server. For users select User and for groups select Group.
Filter
Enter an LDAP filter string to select specific records to import from the OU. The more specific the LDAP filter query, the more efficient
the query is. For example, the Users LDAP OU definition uses the following filter to select records that are classified as a person, have an
sn attribute value, are not computers, and are not flagged as inactive:
(&(objectClass=person)(sn=*)(!(objectClass=computer))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
You can find a description of LDAP filter syntax by searching the internet for LDAP Filters RFC.
Example OU Definitions
Suppose you have an LDAP server with the following directory structure:
dc=my-domain,dc=com
ou=Groups
cn=Development
cn=HR
cn=Sales
ou=Users
ou=Development
ou=HR
ou=Sales
Further suppose that you want to exclude the HR group and HR users from the ServiceNow application. Do the
following:
1. Create an LDAP server record with a starting search directory of dc=my-domain,dc=com.
2. Create an OU definition record for ou=Groups with a filter to exclude cn=HR.
3. Create an OU definition record for ou=Users with a filter to exclude ou=HR.
If you do not specify additional attributes or filters with an OU definition, the LDAP query returns the entire sub-tree
from the starting directory and RDN.
In these examples, an OU definition with the RDN value of ou=Groups and no filter would have returned all groups.
Likewise, an OU definition with the RDN value of ou=Users and no filter would have returned all users and child
organizational units.
15
Description
Name
Specify the name the integration uses when referencing this data source.
Import set
table name
Enter the name of the staging table where the ServiceNow system temporarily places the imported LDAP records and attributes.
Review this table to view imported LDAP records. You can use the same import set table name for all LDAP data sources.
Type
Select LDAP to indicate the imported data is LDAP data. After you select the type LDAP, the form displays the LDAP target
field.
LDAP target
Transform
Map
Source Table
16
Target Table
sys_user
Description
LDAP User
Import
ldap_import
Default transform map for creating ServiceNow user records from LDAP credentials as
part of LDAP on-demand login. Contains mappings for an Active Directory LDAP server.
LDAP Group
Import
ldap_group_import sys_user_group Default transform map for creating ServiceNow group records from LDAP OUs. Contains
mappings for an Active Directory LDAP server.
Note: By default, the ServiceNow system does not have a transform map for LDAP department records.
Source Field
Target
Table
Target
Field
Description
Coalesce
ldap_import
u_source
sys_user
source
false
ldap_import
sys_user
user_name
true
u_samaccountname
u_dn
u_cn
Administrators do not typically want the ServiceNow system to create new users from the DN value because the new
user has no association with an existing ServiceNow user. Instead, administrators want the import to locate the
manager's existing ServiceNow user record and associate it with the newly imported user. The LDAPUtils script
include contains the setManager and processManagers functions that can parse a DN and search for an
existing ServiceNow user. For best results, use these functions to create a custom transform map.
For example, the LDAP User Import transform map script calls the setManager function:
//
// The manager coming in from LDAP is the DN value for the manager.
// The line of code below will locate the manager that matches the
// DN value and set it into the target record. If you are not
// interested in getting the manager from LDAP then remove or
// comment out the line below
ldapUtils.setManager(source, target);
In some cases, the integration imports a user's record before importing the associated manager's user record. To
handle such cases, you may want to call the processManagers function after the transform completes. For
example, the LDAP User Import transform map uses an onComplete transform script to call the
processManagers function.
// It is possible that the manager for a user did not exist in the
database when
// the user was processed and therefore we could not locate and set the
manager field.
// The processManagers call below will find all those records for which
a manager could
// not be found and attempt to locate the manager again. This happens
at the end of the
// import and therefore all users should have been created and we
should be able to
// locate the manager at this point
ldapUtils.processManagers();
Remove or comment out the setManager and processManagers function calls if your LDAP integration
does not use the manager attribute.
17
References
[1] https:/ / community. servicenow. com/ community/ blogs/ blog/ 2014/ 12/ 02/
you-dont-need-a-vpn--part-ii-ldap-integrations-user-data-imports-and-the-internet-solution
LDAPS
Mutual authentication
Web Services Security
MID Server
Generate a Certificate
A valid certificate must meet these criteria:
The certificate can have a key size up to 2048 bits.
The certificate must have one of these file extensions:
18
Extension
19
Description
DER
The Distinguished Encoding Rules format is a binary message transfer syntax. This format also supports the .CER and .CRT file
extensions.
CER
A certificate file extensions for certificates using the Distinguished Encoding Rules format.
CRT
A certificate file extensions for certificates using the Distinguished Encoding Rules format.
PEM
The Privacy Enhanced Mail format is a base-64 encoded DER certificate enclosed between "-----BEGIN CERTIFICATE-----" and
"-----END CERTIFICATE-----" text strings.
LDAP Certificates
Uploading an SSL certificate allows ServiceNow to establish an LDAP over SSL (LDAPS protocol) connection with
an LDAP server. ServiceNow accepts two types of LDAP certificates:
LDAP server certificate (required for all LDAP configurations): Can be any supported type.
LDAP client certificate (required for mutual authentication [1]): Must be a Java Key Store type certificate.
4. Import a signed primary certificate to the Java keystore. For example, this command imports the signed
certificate mydomain.crt into the keystore.
keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore my.keystore
5. Upload the certificate in the key store file (my.keystore) to the instance.
2. Convert both the certificate file and private key to PKCS#12 (a file with a .pfx or .p12 extension). For example,
this command converts the client certificate and private key to a PKCS#12 certificate called test1-certificate.pfx.
openssl pkcs12 -export -out test1-certificate.pfx inkey test1-key.key -in test1-cert.crt
3. Generate the Java Key Store and import the pkcs12 file into it. For example, this command imports the certificate
to the test1.jks Java Key Store.
keytool -importkeystore -srckeystore test1-certificate.pfx -srctoretype PKCS12 -destkeystore test1.jks
4. Upload the certificate in the key store file (test1.jks) to the instance.
Certificate fields.
20
21
Field
Description
Name
Expiration
notification
Select whether you want ServiceNow to send a notification when the certificate is about to expire.
Active
Select whether ServiceNow should use this certificate for secure communications and signing requests.
Short Description
[Optional] Enter a text description of the certificate such as the requester or server name.
Issuer
ServiceNow automatically adds the certificate issuer to this field. Attach the certificate to the X.509 certificate record to
populate this field.
Subject
ServiceNow automatically adds the certificate subject to this field. Attach the certificate to the X.509 certificate record to
populate this field.
PEM Certificate
Format
Select the certificate format. ServiceNow supports the PEM and DER formats. See Generate a Certificate.
Type
Select the certificate container. ServiceNow recognizes certificates from trust stores, Java key store, and PKCS12 key stores.
Valid from
ServiceNow automatically adds the certificate valid from date to this field. Attach the certificate to the X.509 certificate
record to populate this field.
Expires
ServiceNow automatically adds the certificate expiration date to this field. Attach the certificate to the X.509 certificate record
to populate this field.
[4]
Certificate Trust
By default, ServiceNow trusts a certificate's Certificate Authority
(CA). This ensures ServiceNow accepts self-issued certificates. If you
want to validate a certificate's CA, set the system property
com.glide.communications.trustmanager_trust_all
to false.
PEM Certificate
22
Enhancements
Dublin
References
[1]
[2]
[3]
[4]
23
Differences between
Transform Maps and
Legacy Import Maps
When specifying LDAP mapping
relationships using transform maps
The Table Transform Map form
there is a major difference in how
reference fields are set for manager
and department. When using transform
maps it is necessary to use a transform
script to create references. This is
because the value associated with an
LDAP attribute like manager is the
distinguished name of the manager.
Without some extra logic in place the
LDAP field maps
result is the creation of a ServiceNow
user record with a manager name that
is the distinguished name of that user in LDAP. The integration includes a transform script to facilitate the creation
of these references. The default transform map "LDAP User Import" includes transform scripts for these references.
24
If you do not specify a transform map (such as LDAP User Import), the integration uses the following default
mappings:
ServiceNow User field or variable
LDAP attribute
user_name
sAMAccountName
phone
telephoneNumber
home_phone
homePhone
mobile_phone
mobile
first_name
givenName
last_name
sn
title
title
department
department
manager
manager
middle_name
initials
u_memberof
groups
u_member
members
u_manager
manager
25
LDAP Scripting
These sample scripts automate common LDAP tasks.
Set Disabled Active Directory Users to Inactive
Assign Field Values
Skip Particular Users
Value
Name
Disable AD Users
Table
User [sys_user]
When
Before
Condition
current.u_user_account_control.changes()
Script
var disabledFlag = 2;
//perform a bitwise comparison on userAccountControl to see if the 2
bit flag is enabled
if (current.u_user_account_control & disabledFlag) {
gs.log('Disabling user: ' + current.user_name + 'userAccountControl='
+ current.u_user_account_control);
current.active='false';
current.locked_out='true';
}
26
27
Hosting Methods
The common method of hosting LDAP directory information is to use the default LDAP or LDAPS (secure LDAP)
on ports 389 or 636. These standard LDAP ports always exist on a Domain Controller (DC) and are rarely changed.
Accessing this directory partition provides access to all of the objects within the domain that is hosted on the DC.
There is no way to access objects from other domains using this method.
A DC can also be granted the Global Catalog (GC) role. Global Catalog (GC) role is an LDAP-compliant directory
consisting of a partial representation of every object from every domain within the forest. This LDAP directory can
be accessed on port 3268, with LDAPS on port 3269. LDAPS and the default LDAP ports' certificate requirements
are the same.
Dependencies
The domain controller that your instance connects to must have the Global Catalog role enabled.
Firewall rules must allow inbound traffic to the domain controller on port 3268 (LDAP) or 3269 (LDAPS)
Special Notes
Not all attributes are replicated to the GC partition. Common attributes such as first name, last name, email, phone
number, description, and address are included. Additional attributes can be added to the GC but should be limited
to minimize the impact to forest replication traffic.
Standard LDAP integrations usually use sAMAccountName as the ServiceNow UserID and as the coalesce key in
the LDAP import map since this is guaranteed to be unique within a domain. This attribute is no longer unique
when viewing an entire forest of domains. A new unique attribute needs to be identified and as the UserID and the
coalesce key. These do not need to be the same attribute and may vary based on your forest design. Consult your
Active Directory administrator. Typically, the userPrinicpalName is a unique attribute across domains but this
may not be a user-friendly name to login with, but it could be used for the unique identifier on imports. A
common attribute that is used for the UserID is email address. These decisions impact the LDAP Properties and
LDAP Mapping,
The value used for the coalesce key on the LDAP import map must be unique and exist on every object being
imported. If it is not unique or does not exist, incorrect records are updated with changes.
If you already have an LDAP integration and wish to change it to a GC, change the import coalesce key. The new
key values must be imported before you can change the coalesce key.
If you make any changes to your LDAP integration that break your integration, your first step should be to revert
those changes. After that, contact Customer Support with complete information about what you're attempting.
28
Overview
In OpenLDAP 2.3 systems that use the back-bdb (Berkley backend), administrators make a minor modification to
their schema to facilitate the ServiceNow integration.
29
References
[1] http:/ / community. service-now. com
30
31
Error Codes
The LDAP Log file lists industry standard error codes for both LDAP and Active Directory (AD). The LDAP error
codes are two-digit numbers, while the Active Directory error codes are three-digit numbers. For a list of the
most-common error codes, see LDAP Error Codes.
Defining Attributes
Once you expand to more than one domain it is critical that you identify unique LDAP attributes for the application
user names and import coalesce values. A common unique coalesce attribute for Active Directory is objectSid.
Unique user names will vary based on your LDAP data design. Common unique attributes are email or
userPrincipalName.
If the connection is successful, ServiceNow displays a Connection Successful message under the LDAP
Servers title bar. If the connection fails, see LDAP Authentication Errors.
4. (Optional) If the connection was successful, click Browse to view the source LDAP directory structure that is
visible to ServiceNow.
32
33
Invalid CN
glide.scheduler.worker.0 WARNING *** WARNING *** Exception formatting LDAP results: Invalid name: CN=+ABC\@XXX//++
[1]
Invalid Connection
If the integration cannot connect to the LDAP server, it displays error messages at the top of the form. Verify the
LDAP server name and IP address and try again.
Browse Issues
When defining OUs within the server, there is a Browse related list that is used to view the LDAP directory records
that the OU definition returns. When you click this link, the ECC Queue should show a single output message with a
topic name of LDAPBrowseProbe. After data has been returned from the MID Server, the ECC Queue should show
an input message with the same topic name. If the Name column for the input message shows true, the test was
successful. Drill down into the record to view the payload and ensure it does not contain error messages.
Click the link in the Name column to view the details of the error.
34
35
References
[1] http:/ / java. sun. com/ products/ jndi/ tutorial/ beyond/ names/ syntax. html
Error
Description
LDAP_SUCCESS
LDAP_OPERATIONS_ERROR
Indicates an internal error. The server is unable to respond with a more specific
error and is also unable to properly respond to a request. It does not indicate that
the client has sent an erroneous message. In NDS 8.3x through NDS 7.xx, this was
the default error for NDS errors that did not map to an LDAP error code. To
conform to the new LDAP drafts, NDS 8.5 uses 80 (0x50) for such errors.
LDAP_PROTOCOL_ERROR
Indicates that the server has received an invalid or malformed request from the
client.
LDAP_TIMELIMIT_EXCEEDED
Indicates that the operation's time limit specified by either the client or the server
has been exceeded. On search operations, incomplete results are returned.
LDAP_SIZELIMIT_EXCEEDED
Indicates that in a search operation, the size limit specified by the client or the
server has been exceeded. Incomplete results are returned.
LDAP_COMPARE_FALSE
Does not indicate an error condition. Indicates that the results of a compare
operation are false.
LDAP_COMPARE_TRUE
Does not indicate an error condition. Indicates that the results of a compare
operation are true.
LDAP_AUTH_METHOD_NOT_SUPPORTED
Indicates that during a bind operation the client requested an authentication method
not supported by the LDAP server.
LDAP_STRONG_AUTH_REQUIRED
Indicates one of the following: In bind requests, the LDAP server accepts only
strong authentication. In a client request, the client requested an operation such as
delete that requires strong authentication. In an unsolicited notice of disconnection,
the LDAP server discovers the security protecting the communication between the
client and server has unexpectedly failed or been compromised.
Reserved.
10
LDAP_REFERRAL
Does not indicate an error condition. In LDAPv3, indicates that the server does not
hold the target entry of the request, but that the servers in the referral field may.
11
LDAP_ADMINLIMIT_EXCEEDED
Indicates that an LDAP server limit set by an administrative authority has been
exceeded.
12
LDAP_UNAVAILABLE_CRITICAL_EXTENSION Indicates that the LDAP server was unable to satisfy a request because one or more
critical extensions were not available. Either the server does not support the control
or the control is not appropriate for the operation type.
13
LDAP_CONFIDENTIALITY_REQUIRED
Indicates that the session is not protected by a protocol such as Transport Layer
Security (TLS), which provides session confidentiality.
14
LDAP_SASL_BIND_IN_PROGRESS
Does not indicate an error condition, but indicates that the server is ready for the
next step in the process. The client must send the server the same SASL
mechanism to continue the process.
15
16
Not used.
LDAP_NO_SUCH_ATTRIBUTE
Indicates that the attribute specified in the modify or compare operation does not
exist in the entry.
36
17
LDAP_UNDEFINED_TYPE
Indicates that the attribute specified in the modify or add operation does not exist
in the LDAP server's schema.
18
LDAP_INAPPROPRIATE_MATCHING
Indicates that the matching rule specified in the search filter does not match a rule
defined for the attribute's syntax.
19
LDAP_CONSTRAINT_VIOLATION
20
LDAP_TYPE_OR_VALUE_EXISTS
Indicates that the attribute value specified in a modify or add operation already
exists as a value for that attribute.
21
LDAP_INVALID_SYNTAX
Indicates that the attribute value specified in an add, compare, or modify operation
is an unrecognized or invalid syntax for the attribute.
22-31
Not used.
32
LDAP_NO_SUCH_OBJECT
Indicates the target object cannot be found. This code is not returned on following
operations: Search operations that find the search base but cannot find any entries
that match the search filter. Bind operations.
33
LDAP_ALIAS_PROBLEM
34
LDAP_INVALID_DN_SYNTAX
Indicates that the syntax of the DN is incorrect. (If the DN syntax is correct, but the
LDAP server's structure rules do not permit the operation, the server returns
LDAP_UNWILLING_TO_PERFORM.)
35
LDAP_IS_LEAF
Indicates that the specified operation cannot be performed on a leaf entry. (This
code is not currently in the LDAP specifications, but is reserved for this constant.)
36
LDAP_ALIAS_DEREF_PROBLEM
Indicates that during a search operation, either the client does not have access
rights to read the aliased object's name or dereferencing is not allowed.
37-47
Not used.
48
LDAP_INAPPROPRIATE_AUTH
49
LDAP_INVALID_CREDENTIALS
Indicates that during a bind operation one of the following occurred: The client
passed either an incorrect DN or password, or the password is incorrect because it
has expired, intruder detection has locked the account, or another similar reason.
See the data code for more information.
49 /
52e
AD_INVALID CREDENTIALS
49 /
525
49 /
530
NOT_PERMITTED_TO_LOGON_AT_THIS_TIME Indicates an Active Directory (AD) AcceptSecurityContext data error that is logon
failure caused because the user is not permitted to log on at this time. Returns only
when presented with a valid username and valid password credential.
49 /
531
RESTRICTED_TO_SPECIFIC_MACHINES
49 /
532
PASSWORD_EXPIRED
37
49 /
533
ACCOUNT_DISABLED
49 /
568
ERROR_TOO_MANY_CONTEXT_IDS
Indicates that during a log-on attempt, the user's security context accumulated too
many security IDs. This is an issue with the specific LDAP user object/account
which should be investigated by the LDAP administrator.
49 /
701
ACCOUNT_EXPIRED
49 /
773
50
LDAP_INSUFFICIENT_ACCESS
Indicates that the caller does not have sufficient rights to perform the requested
operation.
51
LDAP_BUSY
Indicates that the LDAP server is too busy to process the client request at this time
but if the client waits and resubmits the request, the server may be able to process
it then.
52
LDAP_UNAVAILABLE
Indicates that the LDAP server cannot process the client's bind request, usually
because it is shutting down.
53
LDAP_UNWILLING_TO_PERFORM
Indicates that the LDAP server cannot process the request because of
server-defined restrictions. This error is returned for the following reasons: The
add entry request violates the server's structure rules...OR...The modify attribute
request specifies attributes that users cannot modify...OR...Password restrictions
prevent the action...OR...Connection restrictions prevent the action.
54
LDAP_LOOP_DETECT
Indicates that the client discovered an alias or referral loop, and is thus unable to
complete this request.
55-63
Not used.
64
LDAP_NAMING_VIOLATION
Indicates that the add or modify DN operation violates the schema's structure rules.
For example, The request places the entry subordinate to an alias. The request
places the entry subordinate to a container that is forbidden by the containment
rules. The RDN for the entry uses a forbidden attribute type.
65
LDAP_OBJECT_CLASS_VIOLATION
Indicates that the add, modify, or modify DN operation violates the object class
rules for the entry. For example, the following types of request return this error:
The add or modify operation tries to add an entry without a value for a required
attribute. The add or modify operation tries to add an entry with a value for an
attribute which the class definition does not contain. The modify operation tries to
remove a required attribute without removing the auxiliary class that defines the
attribute as required.
66
LDAP_NOT_ALLOWED_ON_NONLEAF
Indicates that the requested operation is permitted only on leaf entries. For
example, the following types of requests return this error: The client requests a
delete operation on a parent entry. The client request a modify DN operation on a
parent entry.
67
LDAP_NOT_ALLOWED_ON_RDN
Indicates that the modify operation attempted to remove an attribute value that
forms the entry's relative distinguished name.
68
LDAP_ALREADY_EXISTS
Indicates that the add operation attempted to add an entry that already exists, or
that the modify operation attempted to rename an entry to the name of an entry that
already exists.
69
LDAP_NO_OBJECT_CLASS_MODS
Indicates that the modify operation attempted to modify the structure rules of an
object class.
70
LDAP_RESULTS_TOO_LARGE
71
LDAP_AFFECTS_MULTIPLE_DSAS
72-79
80
38
Indicates that the modify DN operation moves the entry from one LDAP server to
another and requires more than one LDAP server.
Not used.
LDAP_OTHER
Indicates an unknown error condition. This is the default value for NDS error
codes which do not map to other LDAP error codes.
39
ADAM
Active Directory (AD) Topics
Note: A basic level of understanding with Microsoft Windows Server and Active Directory is needed for understanding this topic. You
must also have administrator permissions on the server you are configuring for ADAM. These are sample procedures. Due to
installation and environment variations, we cannot offer direct support. We recommend working with a Microsoft consultant.
What is ADAM?
A Microsoft product, Active Directory Application Mode (ADAM) is an LDAP-compliant directory service. ADAM
has a simple install and runs as a service on Windows operating systems. It can be fully customized and distributed
as an application component or used as a stand-alone LDAP directory. ADAM uses the same technologies found on
Active Directory Domain Controllers (including replication and delegation features) and has its own administration
and customization features. It can be run as a Windows service.
ADAM can be installed on Windows XP, 2000, 2003, and 2008 operating systems. ADAM is included as part of
Windows Server 2003 R2 and Windows Server 2008. A download is available at http:/ / www. microsoft. com/
downloads for earlier operating systems.
About Security
Some company security policies prohibit external vendors and partners from connecting directly to an Active
Directory (AD) Domain Controller. If exposing certain AD objects or attributes to an external vendor or partner is
prohibited, access to objects and attributes can be blocked using AD Security Access Control Entries (ACE or ACL).
Depending on security requirements, this method can introduce complexity in the integration.
Consolidating multiple domains and forests is recommended. If all LDAP imports and authentications need to be
channeled through a single source, ADAM can be used as a consolidated source.
With the release of Windows 2008 this functionality has been renamed to Light-Weight-Directory Service, LDS.
Installation and configuration is similar to Windows Server 2003 R2.
Dependencies
Recommended Knowledge
For this task, you must understand AD, object classes and attributes. To have a successful integration, you need to be
knowledgeable of the current AD object structure, familiar with Active Directory delegations, and have a strategy on
how to use ADAM and for what purposes. If you are not familiar with AD or ADAM, work with your AD
administrator to configure a new ADAM environment.
Trusts
If userProxy objects is used, the computer hosting ADAM needs to be a member of the domain that has the AD
accounts, or a member of a trusted domain.
Internal Connectivity
If userProxy objects is used, the ADAM computer must be able to connect to the related Domain Controllers to
perform proxy authentication.
Configuring an Instance
Create the first instance service which functions as the first directory service hosted by ADAM. Do one of the
following:
Run adaminstall.exe from the ADAM folder.
Use the Create an ADAM instance shortcut from the Start Menu > Programs > ADAM folder.
1. Select the A unique instance install option. Note that you can use this option to install an instance replica on a
second server to provide a fault tolerant system.
2. Enter the following:
Instance Name is used primarily to identify the Windows Service name and display name.
Ports sets the port numbers to be used for LDAP and LDAPS Listeners. The default LDAP port is 389,
LDAPS is 636. If these ports are in use on the server, the setup wizard selects new ports. Work with your
network administrator to determine the best ports to use. One of these ports needs to be open on the firewall
to allow access from your ServiceNow instance. It is good practice to use a non-standard port so the service
cannot be easily identified using port scanners.
Application Directory Partition creates an application directory partition. Not needed at this step, we
recommend creating the new partition now. A good practice is to use the same distinguished name as your
forest or domain, but replace the highest level domain with adam instead of com or local. For example, if
your forest partition is dc=myCompany,dc=com, you could create the ADAM partition as
dc=myCompany,dc=adam.
File Locations select location(s) for the ADAM partition data.
Service Account Selection select a service account that the instance runs as. For stand-alone services, you
can use the default network service account. If you plan on using replicas, you need to use an account that
has access to all ADAM instances.
ADAM Administrators is the delegation on the ADAM directory that leverages Windows integrated
authentication. This is how the initial access is granted for administration. Once the initial account is
granted rights, this user or group delegates rights to other Windows users or ADAM users. You can select
the default to only grant admin access to the current user, or grant access to a different user or group based
on your needs.
Import LDIF Files are the files to import. MS-UserProxy is the most important file to import, but its worth
adding all available files since there is little overhead to the schema and you wont have to worry about
extending it later if your needs expand. Confirm the details and the wizard complete the configuration.
40
Administration
Console Setup
Even though there are many similarities between ADAM and Active Directory, the administration can be very
different since there is no Users and Computers management console. Most of the general administration is
performed using the ADAM ADSI MMC console available from the ADAM start menu. The first time you run the
ADAM ADSI console, you must connect to the partition you created.
1. Right-click on the ADAM ADSI Edit item in the left frame. Give the new connection a name and update the
server name, port fields with the information used when you created the instance.
2. Select distinguished name or naming context and specify the distinguished name of the application partition
you created earlier. You can connect to the Configuration and Schema partitions for advanced configuration
options.
You should now be able to see into the partition and the default containers for LostAndFound, NTDS Quotas, and
Roles. The Roles container has not been configured yet.
Containers and Organizational Units
Objects stored in ADAM can be logically grouped into containers and organizational units (OU) just as they would
in Active Directory.
To create a new OU:
1. Right-click on the root partition and select New > Object > organizationalUnit. You can also view the list of
other objects that are available. This list varies based on the schema extensions installed when you imported the
LDF files.
2. When prompted for a value, enter the name of OU, for example Users.
3. The next screen displays a More Attributes button; use this to assign values to additional attributes. For OUs and
containers, no additional values are needed.
After creating OUs, the new OUs are listed as a child of the root object.
Delegation
Once the OU structure is created, define the permission delegations to properly secure the objects to limited users.
As with Active Directory, there are two general ways to grant permissions:
Add users to a group that already has the appropriate permissions assigned.
Define new permissions on the ADAM objects.
For this task, we discuss object level permissions. Refer to the Group Administration section for information on
group memberships.
Since we dont have a Users and Computers console for ADAM, all object level permissions are defined using the
Active Directory utility DSACLS.exe. This file is found in the ADAM program directory. When running ADAM
utilities it is best to launch the ADAM Tools Command Prompt. This ensures the proper versions of the tools.
DSALCS is used to view and set object access rights. Example: dsacls \\localhost:50010\dc=myCompany,dc=adam
displays the permissions assigned to the root of partition dc=myCompany,dc=adam running on the localhost, port
50010. DSACLS is a complex tool used to create complex delegation. Run DSACLS /? for usage notes.
41
Group Objects
Groups are created using the ADSIEdit console and AD command-line tools. Group concepts are similar to AD and
are used to integrate groups and members to ServiceNow. The biggest difference is ADAM groups can contain
members from ADAM or from trusted AD Domains.
Automating ADAM Object Creation
If you are interested in synchronizing Active Directory accounts to ADAM, we recommend you use Microsoft
ADAMSync [2] tool. This is the most common use of ADAM for ServiceNow LDAP integration.
About Permission Delegation
ADAM contains some built-in groups with default permissions. These groups are found in the container
cn=roles,dc=myCompany,dc=adam. These are similar to domain level groups and have rights to objects in the
current partition. Similar to AD Forests you can also set a higher level of permissions using the default groups in
cn=roles,cn=configuration,dc=myCompany,dc=adam. You must connect to the configuration partition in ADSIEdit.
The Administrators group by default includes the account specified during the setup. This member is not always
visible since its inherited through the configuration groups. Administrators have full control of all partition objects.
The Readers group does not contain any members by default and has read access to all objects in the partition. The
Users group is a dynamic group just as it is in Active Directory. Transitively it includes all ADAM users created in
the partition.
42
43
Parameter
44
Description
/T
/N:cn
Set the common name of the certificate. This must match the fully qualified domain name of the server running the web service using
the certificate
/K
/V
/S
/P
The common name attribute should match the external name or address that ServiceNow will use to connect to your
ADAM computer. You will need to get the IIS Website site id unless you are using the default website which is 1
and does not need to be defined in the selfssl command. A sample command to generate a certificate for
myCompany would be.
selfssl /N:CN=myCompany.externaldomain.com /K:1024 /V:3650 /S:12345 /P:50001 /T
This statement creates a certificate that is valid for 10 years. Set the value to any duration, but be aware the new
certificate must be generated and submitted to ServiceNow before the old one expires. We recommend making a
note of the expiration date on the certificate.
Once the certificate is generated you can remove it from the website, or delete the entire web site if you created a
temporary site.
Assigning the Certificate to ADAM
1. Open the Certificates MMC console. Create two console connections, one for Local Computer Certificates, and
the other for Local Computer Services Certificates on the new ADAM service. The new certificate can be found
under Certificates (Local Computer)\Personal\Certificates.
2. Copy the certificate to the container for the ADAM service, Certificates Service (ADAM Service
Name)\ADAM_ADAM Service Name\Trusted Root Certificates\Certificates. Also copy the certificate to
Certificates Service (ADAM Service Name)\ADAM_ADAM Service Name\Personal\Certificates.
3. Open the details tab on the certificate you copied. Note the Valid from date stamp. Now assign read access to the
certificate key file. Go to C:\Documents and Settings\All Users\Application
Data\Microsoft\Crypto\RSA\MachineKeys and identify the certificate with the matching time stamp. Assign Read
& Execute rights to the service account running ADAM. By default this is Network Service.
4. Restart the ADAM service to activate the new certificate.
Exporting the Public Key Certificate
LDAPS clients, including the ServiceNow instance need the public key certificate in order to make a secure
connection to ADAM. From the server certificate consoles you used above, export a public key to be used by the
clients.
1. Select the certificate, right-click, select all tasks/export. Do not export the private key. Select the default DER
encoded binary X.509 format and specify the export file name.
2. Install the public certificate on the LDAP clients that connect to the server using LDAPS. When prompted, add
the certificate to the Trusted Root Certificate Authorities store.
Related Links
[Microsoft ADAM page [5]]
References
[1]
[2]
[3]
[4]
[5]
45
Overview
Secure LDAP (LDAPS) communication is similar to SSL (HTTPS) communication because they both encrypt the
data between servers and clients. To accomplish this, the server and clients share common information by using
certificate pairs. The server holds the private key certificate and the clients hold the public key certificate. These
certificates are a requirement for enabling MS Active Directory (AD) LDAPS communications.
Prerequisites
To configure LDAPS for Active Directory you must:
Ensure that the Active Directory domain is set up and that the ServiceNow server is able to connect to the Active
Directory server through the firewall.
Verify that there is a Certificate Authority (CA) that can issue a certificate for the Domain Controller (DC). If you
don't already have a CA infrastructure there are two options.
Setup a stand-alone CA to issue the certificate
Request a third party certificate
If you already have a CA in place, you can generate a certificate from an Internal CA.
46
Process
Step 1. Setup a Stand-Alone CA
Both of the required services (IIS & CA) can be disabled after issuing the certificate(s) so don't worry about addition
resource utilization.
1. Install Internet Information Server (IIS).
2. Install Certificate Authority Services in stand-alone mode.
3. Verify Certificate Services web application is installed and active.
Using the IIS Manager console, expand local computer and select Web Sites. The state of Default Web Site
should be Running. You should also see a CertSrv application listed under the Default Web Site. If the site
is not running or the application is missing you must resolve the issue before proceeding.
Name is the fully qualified domain name (FQDN) of the DC that is requesting the certificate.
E-Mail is the email address of the person responsible for the certificate.
Company is your company name.
Type of Certificate Needed must be set to Server Authentication Certificate.
Key Options settings:
Once you submit, you are directed to a page that provides your Request ID, make note of this ID.
Process the Pending Request
1. Open the Certificate Authority management console.
2. Expand the server node and select Pending Requests.
3. Locate the Request ID for the request you just submitted, right-click and select All Tasks/Issue to approve the
request and issue the certificate.
Retrieve the Issued Certificate
1. Do one of the following:
From the DC you made the request from, browse to http://localhost/certsrv
If on a remote server, specify the CA server name.
2. Select View the status of a pending certificate request.
3. Select the link to the new certificate.
47
From a current or new MMC console, add the Certificate (Local Computer) snap-in.
Open the Personal/Certificates folder.
Locate the new certificate. The Issued To column shows the FQDN of the DC.
Right-click the certificate and select All Tasks/Export.
Export to DER or Base-64 format. Name the file using the format: MyCompany.cer. This is the public key
certificate the needs to be used on the ServiceNow instance to securely communicate with your DC.
6. LDAPS should be tested locally before submitting the certificate to ServiceNow.
If your Certificate Authority is not a trusted 3rd party vendor, you must export the certificate for the issuing CA so
we can trust it, and by association, trust the LDAP server certificate. For MS Certificate Services users, you can view
the certificate path by viewing the certificate in the console used above to export, select the Certificate Path tab.
You must export all certificates in the chain. You can find the CA certificate in the same folder as the LDAP
certificate by looking for the name in the Certificate Path. Submit all certificates for importing to your instance.
Step 6. Import the Public Key Certificate into the ServiceNow Application
See Uploading an LDAP Certificate to upload the certificate into the application.
References
[1] http:/ / support. microsoft. com/ kb/ 321051
48
Overview
Administrators use MS ADAMSync to populate LDAP directories that use MS ADAM.
Introduction
Once ADAM has been installed and the first partition has been created, you can populate it with objects.
The following options are available:
Manual object creation using GUI or scripts. This option is inefficient and slow.
Integrate with Active Directory using Microsoft Integration Information Server. This option ultimately provides
the most flexibility and functionality but does require some advanced configurations. There is a free version of
MIIS available that is compatible with Active Directory, ADAM, and Microsoft Global Address Lists from
Exchange. Unless you already have experience with MIIS we advise that you dont attempt to implement a new
environment for LDAP integration only.
Use ADAMSync, a synchronization tool that Microsoft provides with ADAM. This is the option that is explained
here.
Process
Step 1. Define User Accounts
Define the following user accounts in ADAM. One is used for ServiceNow to connect with and the other for
ADAMSync. These accounts can be local ADAM User objects, UserProxy objects, or a Windows account from a
trusted domain.
ServiceNow User Account
This account requires read-only access to the directory structure you are importing to your ServiceNow instance. The
best way to accomplish this is to add the account to the member attribute on the Readers group found in
cn=roles,dc=myCompany,dc=adam.
New ADAM User accounts are disabled by default. You will need to enable the new accounts and set a password.
1. Enable users by changing the attribute msDS-UserAccountDisabled to FALSE.
2. Right-click the user object and reset the password.
3. Test the new accounts using LDP as defined in ADAM to make sure they can connect. Use the LDAP>
View/Tree option, leaving the Base DN blank to make sure you can view the objects in the directory using the
new accounts. The Configuration, Schema, and the domain partition should be visible in the left pane. Traverse
the domain partition. If you are using a new local ADAM account, it will show No Children which means you
dont have read access to the objects. Verify the Setup group memberships and re-test.
49
Open a new MMC console and add the ADAM Schema Snap-in.
Connect to the ADAM instance.
Expand the Classes folder and locate the userProxy class, open Properties.
Verify the following optional attributes on the Attributes tab, add any that do not already exist.
company
department
givenName
mail
physicalDeliveryOfficeName
sAMAccountName
sn
telephoneNumber
title
userAccountControl
userPrincipalName
5. Restart the ADAM Service to enable the new settings.
50
3. Review the results by using the ADSIEdit console. You should see the new objects and attributes that were
created by ADAMSync.
4. Run ldap to test the UserProxy authentication.
Special Notes
You can create multiple configuration files and scheduled jobs to sync ADAM from multiple sources.
This example imports the sAMAccountName attribute which can be used as the ServiceNow application
logon. If you are going to sync source you need to make sure you have a unique attribute value that can be
used for the logon credentials. sAMAccountName is guaranteed to be unique within a domain, but not across
multiple domains.
If you are using Microsoft Exchange, we recommend excluding cn=SystemMailbox* objects as part of the
object-filter configuration.
51
52
-->
<source-ad-account></source-ad-account>
<account-domain></account-domain>
<!-- target-dn = target ADAM OU -->
<target-dn>ou=servicenow users,dc=myCompany,dc=adam</target-dn>
<query>
<!-- base-dn = should be the root AD partition if you want all users -->
<base-dn>dc=myCompany,dc=com</base-dn>
<!-- object-filter = standard ldap query format, this will grab all users -->
<!-- need to review results to see if you should modify this filter -->
<object-filter>(objectCategory=person)</object-filter>
<attributes>
<!-- include=userproxy requires objectSID to link back to the AD account -->
<include>objectSID</include>
<include>givenName</include>
<include>sn</include>
<include>description</include>
<include>title</include>
<include>company</include>
<include>department</include>
<include>mail</include>
<include>physicalDeliveryOfficeName</include>
<include>telephoneNumber</include>
<include>sAMAccountName</include>
</attributes>
</query>
<!-- map for user-to-userproxy object types -->
<user-proxy>
<source-object-class>user</source-object-class>
<target-object-class>userProxy</target-object-class>
</user-proxy>
<schedule>
<aging>
<frequency>0</frequency>
<num-objects>0</num-objects>
</aging>
<schtasks-cmd></schtasks-cmd>
</schedule>
</configuration>
<synchronizer-state>
<dirsync-cookie></dirsync-cookie>
<status></status>
<authoritative-adam-instance></authoritative-adam-instance>
<configuration-file-guid></configuration-file-guid>
<last-sync-attempt-time></last-sync-attempt-time>
<last-sync-success-time></last-sync-success-time>
53
References
[1] http:/ / www. w3schools. com/ TAGS/ ref_ascii. asp
54
55
56