Skip to content

Directory Services

Directory Services allows you to integrate your PBX with external identity providers for automated user provisioning and synchronization. Three providers are supported:

  • Azure Active Directory (Microsoft Entra ID) — via OAuth2 and Microsoft Graph API
  • Okta — via OAuth2 and Okta Users API
  • LDAP / Active Directory — via standard LDAP protocol

To configure a directory service integration, navigate to Integrations > Directory Services and click Create Directory Service Integration.

Select the Directory Service Provider from the dropdown. The form will show the configuration fields appropriate for the selected provider.


Azure Active Directory (Microsoft)

Microsoft Configuration

Register the application in Azure Active Directory as described in the Microsoft documentation: https://learn.microsoft.com/en-us/power-apps/developer/data-platform/walkthrough-register-app-azure-active-directory

Requirements for setting up application registration:

  • Supported account types should be set as: “Accounts in any organizational directory (Any Azure AD directory - Multitenant)”
  • Application platform must be set as Web
  • Redirect URI must be set to https://YOUR_PBX_FQDN/service/oauth2/microsoft/callback (replace YOUR_PBX_FQDN with your real FQDN)
  • Implicit grant flows and hybrid flows should be set as: “Access tokens (used for implicit flows)” and “ID tokens (used for implicit and hybrid flows)”

A new Client secret should be created in the “Certificates & secrets” menu (note and save the value of the Client secret in notepad as this value will only be shown once).

Please make sure that you save the Client ID and Client Secret once they are provided by Microsoft — you will need them when configuring Azure Active Directory integration in Thirdlane.

The following delegated permissions must be granted (followed by the “Grant admin consent” action) from the API permissions menu:

  • offline_access
  • User.Read
  • User.Read.all
  • Directory.Read.all

Thirdlane Configuration

FieldDescription
Client IDThe Application (client) ID from your Azure app registration
Client SecretThe client secret value created in Certificates & secrets

Once saved, click the authentication icon (person) to authenticate as a user with read access to Azure AD. When authentication is completed, refresh the screen — a green indicator confirms success.

Note that there is a delay between information changes in Azure Active Directory and those changes being available for synchronization.


Okta

Okta Configuration

Create a new application integration in the Okta Admin Console:

  1. Navigate to Applications > Applications and click Create App Integration
  2. Select OIDC - OpenID Connect as the sign-in method and Web Application as the application type
  3. Set the Sign-in redirect URI to https://YOUR_PBX_FQDN/service/oauth2/okta/callback
  4. Under Assignments, choose the appropriate access policy for your users

Note your Client ID and Client Secret from the application settings page.

Thirdlane Configuration

FieldDescription
Okta DomainYour Okta organization domain (e.g., yourcompany.okta.com)
Client IDThe Client ID from your Okta application
Client SecretThe Client Secret from your Okta application

Required user profile fields in Okta for synchronization:

  • First name
  • Last name
  • Email
  • Work phone (used as the extension number)

LDAP / Active Directory

LDAP integration connects directly to any LDAP-compatible directory (OpenLDAP, Microsoft Active Directory, FreeIPA, authentik LDAP Outpost, etc.) using standard LDAP bind and search operations.

Thirdlane Configuration

Connection Settings

FieldDescription
LDAP ServerHostname or IP address of your LDAP server
PortLDAP port (default: 389 for LDAP/STARTTLS, 636 for LDAPS)
SecurityNone (unencrypted), STARTTLS (upgrade to TLS on port 389), or LDAPS (SSL on port 636)
Bind DNThe distinguished name used to authenticate to the LDAP server (e.g., cn=service,ou=svcaccts,dc=example,dc=com)
Bind PasswordPassword for the Bind DN account
Base DNThe search base for finding users (e.g., dc=example,dc=com)
Search FilterLDAP filter to identify user entries (see table below)

Attribute Mapping

These fields control which LDAP attributes are mapped to PBX extension fields. Defaults work for most standard LDAP directories:

PBX FieldDefault AttributeActive DirectoryDescription
ExtensiontelephoneNumberipPhone or customUsed as the extension number
First NamegivenNamegivenNameUser’s first name
Last NamesnsnUser’s last name
EmailmailmailUser’s email address
MobilemobilemobileUser’s mobile number
Unique IDentryUUIDobjectGUIDTracks users across syncs

The Unique ID attribute is critical for tracking users between syncs. If the attribute is not present on an entry, the system falls back to the entry’s DN (Distinguished Name).

Directory TypeRecommended Filter
OpenLDAP(objectClass=inetOrgPerson)
Active Directory(objectClass=user)
FreeIPA(objectClass=inetOrgPerson)
authentik LDAP Outpost(objectClass=inetOrgPerson)

Test Connection

After entering the LDAP settings, use the Test Connection button to verify connectivity. The test will:

  1. Connect to the LDAP server on the specified port
  2. Perform a bind with the provided credentials
  3. Execute a search with the configured filter
  4. Report the number of users found

The Test Connection button is available before saving — you can verify settings work before committing them.


What Happens After Configuration

After configuring any directory service provider, you need to perform an initial Directory Sync to import users into the PBX. Subsequent syncs can be triggered manually or run automatically on an hourly schedule.