Repository
Introduction
Users in the Swivel database can come from a number of sources, referred to as user repositories. Each user belongs to exactly one repository.
Currently, the following types of repositories are supported:
XML: Built-in repositories maintained within the Swivel server.
LDAP: Including Active Directory, Simple LDAP, and ADAM (AD LDS).
External Database: Users imported via JDBC from an external database.
Agent: Agents configured to act as repositories using API calls.
Supported Repositories
Repository |
Relationship |
|---|---|
ADAM (AD LDS) |
Read/Write |
Active Directory |
Read Only |
Database |
Read Only |
LDAP Writeable |
Read/Write |
Simple LDAP |
Read Only |
XML |
Read/Write |
Configuration Guide: Active Directory
This section guides you through configuring an Active Directory repository, which is the most common read-only repository type.
Phase 1: Preparation
Bind User: Create a dedicated service account (e.g.,
swivel_bind) in Active Directory with read-only access. Set the password to never expire.
Groups: Create Security or Distribution groups to manage Swivel users (e.g.,
SwivelUsers,SwivelAdmin). * Warning: Do not target the “Domain Users” group directly, as Swivel cannot import users from a “Primary Group”.
Ports: Ensure connectivity to the Domain Controller on the appropriate port.
389: Standard LDAP.
636: LDAPS (Recommended).
3268: Global Catalog.
3269: Global Catalog SSL.
Phase 2: Repository Configuration
Step 1: Create the Repository
Navigate to Repository -> Servers.
Select New Active Directory from the drop-down list.
Enter a Name (e.g., the Domain Name) and click Apply.
Step 2: Connection Details
Select the new repository from the left-hand menu to configure it.
Hostname/IP: IP or FQDN of the Domain Controller. If using SSL, this must match the certificate CN unless a SAN is present.
Username: The bind user credentials (e.g.,
user@domain.comordomain\user).Password: The bind user password.
Port: Select 636 or 3269 for SSL connections.
Allow self-signed certificates: Set to Yes if using an internal CA or self-signed certificate.
Step 3: User Options
Username Attribute: The attribute used for the Swivel username. Default is
sAMAccountName(e.g.,jsmith). Alternatives includeuserPrincipalName(e.g.,jsmith@domain.com).- Ignore FQ Name changes:
Yes: (Recommended) If a user is moved to a different OU, Swivel updates the path without deleting the user.
No: The user will be deleted and recreated, or a duplicate error will occur.
- Mark missing users as deleted:
Yes: (Recommended) Users removed from the AD group are disabled in Swivel but their data (PINs, tokens) is retained.
No: Users are immediately permanently deleted.
Import disabled users: If No, users disabled in AD are not imported at all.
Synchronization schedule: Set how often Swivel checks AD for changes (e.g., daily or hourly).
Step 4: Test Connection
Click Apply, then click the Browse in window button at the bottom of the page to verify the connection.
Phase 3: Group Mapping
Navigate to Repository -> Groups.
Locate the specific Swivel group you wish to populate (e.g.,
SwivelUsersorSwivelImage).Click the Browse button next to your Active Directory repository.
Browse the directory tree, select the AD group created in Phase 1, and click Select.
Click Apply. The Distinguished Name (DN) will populate the field.
Phase 4: Synchronization
1. Perform a Test Sync
Repositories import users into the Swivel database by running a User Sync.
Navigate to User Administration.
Select the repository from the drop-down menu.
Click User Sync.
Note
Writeable repositories (like XML) sync automatically when changed in the console, but read-only repositories (like AD) require a manual or scheduled sync to update.
2. Setup Scheduled Sync
If the test is successful, configure automatic synchronisation.
Go to Repository -> <Your Repository>.
Set the Synchronisation Schedule (Recommended: Once per hour).
Click Apply.
Warning
If using High Availability (HA), each AuthControl Sentry appliance must synchronise at different times.
Advanced Architecture
High Availability (HA) Configuration
If running multiple Swivel instances:
1. Sync Timing: Ensure synchronisation occurs at different times on each instance (e.g., Primary at XX:00, Standby at XX:30) to prevent LDAP contention.
2. Credentials: Under Transport -> General, set Resend credentials if destination changes to No to prevent duplicate PINs.
Trusted Domains & Global Catalog
Standard LDAP (Port 389) cannot see users in child domains or trusted forests if the group membership crosses domain boundaries.
Solution: Use the Global Catalog.
1. Change the Repository Port to 3268 (or 3269 for SSL).
2. Point the Hostname to a Global Catalog server.
Troubleshooting
Diagnostic Tools
LDAP Browser: Use the “Browse in window” button in Repository settings to verify visibility.
Telnet: Check network connectivity via the command line:
telnet <AD_Server_IP> 389.
Common Error Messages
“Repository… cannot be added… possibly already exists” You are trying to create a repository name that was used previously. Rename the repository.
“AcceptSecurityContext error, data 52e” Invalid Credentials. The service account password is wrong or expired.
“AcceptSecurityContext error, data 525” User not found. The service account username does not exist.
“LDAP: error code 49” General authentication failure. Check if the service account is locked or disabled.
“No value for username attribute sAMAccountName” A user exists in the AD Group but is in a Trusted Domain Swivel cannot access. Switch to Global Catalog (Port 3268).
“Membership of multiple alert transport group is not permitted” A user is a member of two different groups assigned to a Transport. Remove the user from one of the groups.
“Sending alert to user… failed” The user has no email/phone in AD, or the Transport Attribute map is incorrect.