Connector Configuration
Learn how to configure and connect Identity Mesh to your identity providers and target systems.
Supported Connectors
Identity Mesh supports a wide range of identity providers and target systems through our connector framework.
Active Directory
LDAPConnect to on-premises or cloud-hosted Active Directory
Microsoft Entra ID
Azure AD Coming SoonSync with Microsoft Entra ID (formerly Azure AD)
Okta
SCIM Coming SoonIntegrate with Okta identity platform
Workday
REST API Coming SoonConnect to Workday HCM for HR-driven provisioning
LDAP
LDAP Coming SoonGeneric LDAP connector for any LDAP-compliant directory
SCIM 2.0
SCIM Coming SoonStandard SCIM 2.0 connector for any SCIM-compliant system
SQL Database
SQLDirect database connector for custom identity stores
REST API
REST Coming SoonGeneric REST API connector for custom integrations
Active Directory Configuration
Prerequisites
- Active Directory domain controller accessible from Identity Mesh
- Service account with read permissions (or read/write for bi-directional sync)
- LDAP port 389 (or LDAPS port 636) open in firewall
- Base DN for user and group searches
Configuration Example
{
"type": "active-directory",
"name": "Corporate AD",
"config": {
"host": "dc01.company.com",
"port": 636,
"useSsl": true,
"baseDn": "DC=company,DC=com",
"bindDn": "CN=svc-identitymesh,OU=Service Accounts,DC=company,DC=com",
"bindPassword": "{{secret:ad-password}}",
"userSearchBase": "OU=Users,DC=company,DC=com",
"userSearchFilter": "(&(objectClass=user)(objectCategory=person))",
"groupSearchBase": "OU=Groups,DC=company,DC=com",
"groupSearchFilter": "(objectClass=group)",
"attributeMapping": {
"username": "sAMAccountName",
"email": "mail",
"firstName": "givenName",
"lastName": "sn",
"displayName": "displayName",
"employeeId": "employeeNumber"
}
}
} Configuration Fields
Microsoft Entra ID Configuration (Coming Soon)
Prerequisites
- Azure AD tenant with appropriate licensing
- App registration in Azure AD with required API permissions
- Client ID and client secret from app registration
- Tenant ID (directory ID)
Configuration Example
{
"type": "entra-id",
"name": "Azure AD",
"config": {
"tenantId": "12345678-1234-1234-1234-123456789abc",
"clientId": "87654321-4321-4321-4321-cba987654321",
"clientSecret": "{{secret:azure-client-secret}}",
"scopes": [
"User.Read.All",
"Group.Read.All",
"Directory.Read.All"
],
"attributeMapping": {
"username": "userPrincipalName",
"email": "mail",
"firstName": "givenName",
"lastName": "surname",
"displayName": "displayName",
"employeeId": "employeeId"
}
}
} Required API Permissions
Grant these Microsoft Graph API permissions to your app registration:
- User.Read.AllRead all users' full profiles
- Group.Read.AllRead all groups
- Directory.Read.AllRead directory data
Okta Configuration (Coming Soon)
Configuration Example
{
"type": "okta",
"name": "Okta Production",
"config": {
"domain": "company.okta.com",
"apiToken": "{{secret:okta-api-token}}",
"scimEndpoint": "https://company.okta.com/api/v1/scim/v2",
"attributeMapping": {
"username": "userName",
"email": "emails[0].value",
"firstName": "name.givenName",
"lastName": "name.familyName",
"displayName": "displayName",
"active": "active"
}
}
} SQL Database Configuration
Prerequisites
- SQL Server instance accessible from Identity Mesh
- Database account with read permissions on the source table or view
- A
datetime2column for delta tracking (notdatewhich lacks time granularity) - A unique identifier column for each row (e.g., primary key)
Configuration Example
{
"type": "sql",
"name": "HR Database",
"config": {
"connectionString": "Server=hrdb.company.com;Database=HRSystem;",
"importQuery": "dbo.Employees",
"externalIdColumn": "EmployeeId",
"objectType": "User",
"watermarkColumn": "ModifiedDateUtc",
"deltaColumnType": "datetime",
"isActiveColumn": "IsActive",
"columnsToLoad": ["EmployeeId", "Email", "DisplayName", "Department", "Title", "ManagerEmail"]
}
} Configuration Fields
dbo.Employees)Iddatetime2, bigint, or rowversion. You can use either deltaColumn or watermarkColumn in the config JSON.datetime, long, bigint, rowversion, or binary. Default: datetimeisActiveColumn as an alias — when used, the semantics are inverted automatically (IsActive=0 means deleted).bit columns, use 0 or 1. Default: true. When using isActiveColumn, this defaults to 0 automatically.*. Reduces network I/O and memory for wide tables. The externalIdColumn, deltaColumn, and softDeleteColumn are always included automatically. Omit or set to [] for SELECT *.Delta Column Type Matters
The delta column must be datetime2 — not date. A date column stores only the date with no time component, so multiple changes on the same day would be missed during delta imports. Use datetime2 for millisecond-level granularity.
Dynamic Target Container
Projection rules support {{attribute}} templates in the Target Container field. At projection time, tokens are resolved against the mesh object's attributes, placing objects into different OUs automatically.
OU={{department}},OU=Users,DC=corp,DC=com
If a user's department attribute is Engineering, the resolved container becomes OU=Engineering,OU=Users,DC=corp,DC=com. Unresolved tokens (missing or null attributes) are left as-is.
Authentication Modes
tenantId)Testing Your Connection
After configuring your connector, test the connection to ensure it's working properly.
Using the API
POST /api/v1/connectors/test
Content-Type: application/json
Authorization: Bearer {{api_token}}
{
"connectorId": "conn_abc123"
} Expected Response
{
"status": "success",
"message": "Connection successful",
"details": {
"connectorType": "active-directory",
"usersFound": 1523,
"groupsFound": 87,
"latency": 145
}
}