Plugins (
oidc-auth&saml-auth): Built-in official plugins for enterprise identity integration. Enable them on demand under Integrations → Plugins (/plugins). See Plugin system & developer guide.
AiPBX includes native enterprise Single Sign-On (SSO) support through two official plugins:
oidc-auth): Standard OAuth 2.0 / OIDC Core 1.0 authentication profile.saml-auth): Enterprise SAML 2.0 Web Browser SSO profile (Service Provider - SP role) with cryptographic XML signature verification.Both plugins seamlessly integrate with the web login portal, support mobile client authentication via app deep-links (aipbx://auth), and offer Just-In-Time (JIT) user auto-provisioning with automatic role assignment.
Out-of-the-box compatibility has been verified with major enterprise identity and access management (IAM) platforms:
oidc-auth)The OIDC plugin connects AiPBX to any OpenID Provider (OP) implementing discovery and token exchange.
https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration). Discovery metadata is cached in persistent KV storage (sys_plugin_kv)./plugins/detail?slug=oidc-auth) includes an interactive validation tool to test discovery endpoints and display available token claims in real time.state and nonce parameters against Cross-Site Request Forgery (CSRF) and replay attacks. Client secrets are encrypted at rest using AiPBX’s SecretBox.| Setting Key | Description | Example / Default |
|—|—|—|
| issuer_url | OpenID Provider base URL or discovery endpoint | https://auth.company.com/realms/corp |
| client_id | OAuth 2.0 Client ID assigned by your provider | aipbx-client |
| client_secret | OAuth 2.0 Client Secret (encrypted at rest) | •••••••• |
| redirect_uri | Callback URL registered in your identity provider | https://pbx.company.com/auth/oidc/callback |
| scopes | OAuth scopes to request | openid profile email |
| default_role | Fallback role for newly provisioned users | user (admin, cc_manager, cc_agent) |
| role_claim_path | Token claim path used to resolve roles | roles or groups |
| allowed_domains | Comma-separated email domain allowlist | company.com, subsidiaries.com |
saml-auth)The SAML plugin operates as an enterprise Service Provider (SP), receiving and validating SAML 2.0 Assertions sent via HTTP-POST binding.
https://<server>/auth/saml/metadata.https://<server>/auth/saml/acs.C14N).NotBefore / NotOnOrAfter timestamps with a 120-second clock skew tolerance.| Setting Key | Description | Example / Default |
|—|—|—|
| sp_entity_id | Unique Service Provider Entity ID (defaults to server URL) | https://pbx.company.com |
| idp_entity_id | Issuer / Entity ID of the Identity Provider | https://sts.windows.net/{tenant-id}/ |
| idp_sso_url | IdP SingleSignOnService HTTP-POST endpoint | https://login.microsoftonline.com/.../saml2 |
| idp_x509_cert | X.509 Public Certificate of the IdP (PEM format) | -----BEGIN CERTIFICATE-----... |
| nameid_format | SAML NameID Policy Format | emailAddress (persistent, transient) |
| default_role | Default system role assigned to new users | user |
| role_attribute | SAML attribute name mapping to AiPBX roles | http://schemas.microsoft.com/ws/2008/06/identity/claims/role |
| allowed_domains | Email domain restrictions | company.com |
When a user signs in through corporate SSO for the first time:
preferred_username, email, or SAML NameID).allowed_domains is configured, only matching corporate email domains are accepted.sys_users, the account is securely linked; otherwise a new user row is created with a strong random password hash.admin, cc_manager, cc_agent, user). If no mapping matches, it falls back to the configured default_role.The Android and iOS apps support corporate SSO out of the box. Clicking the SSO login button on a mobile client opens the organization’s authentication portal in a secure web tab. Upon successful authentication, AiPBX issues a single-use authorization code and redirects back to the mobile app via deep-linking:
aipbx://auth?success=1&code=<auth_token>
The mobile application exchanges the code for a local session token, enabling corporate login without storing passwords on the mobile device.
sys_audit_log) with client IP address, User-Agent, and detailed diagnostic error messages.