Expertflow CX uses Apache APISIX as an Application Gateway of the solution. The API Gateway get user permissions from the IAM (KeyCloak) for authentication. CX Ingress Controller forwards incoming traffic to the Application Gateway and it integrates with IAM via OpenID Connect (OIDC) plugin to intercept these requests.
The Application Gateway is set up to:
-
check for the required authentication token in the request header automatically
-
reject unauthenticated or improperly tokenized requests with a 401 status code
-
ensure only successfully validated requests proceed to the CX Services
This strategy centralizes the authentication layer, offloading this critical security task from backend services and allowing for full utilization of APISIX's feature set.
CX Secured Components
Following components are secure with APISIX:
-
Agent Manager
-
Bot framework
-
Customer Channel Manager
-
Cim Customer
-
Conversation Manager
-
Conversation Monitor
-
License Manager
-
Routing Engine
-
Team Announcement
-
File Engine
-
Unified Admin (This is only valid for CX-4.9.5 version)
Following APIs, belonging to secure components, are unauthenticated.
POST /agent-manager/agent/login
GET /agent-manager/socket.io/
POST /agent-manager/agent/refresh-token
POST /agent-manager/agent/send-sms-otp
POST /agent-manager/agent/register-phone
POST /agent-manager/agent/validate-otp
GET /ccm/widget-configs/{{WidgetIdentifier}}
GET /ccm/agents/{{}}
GET /ccm/channels/service-identifier/{{serviceIdentifier}}
POST /agent-manager/agent/send-sms-otp
POST /agent-manager/agent/register-phone
POST /agent-manager/agent/validate-otp
POST /unified-admin/forms/getAllFormTitles (This is only valid for CX-4.9.5 version)
POST /unified-admin/forms/{{formID}} (This is only valid for CX-4.9.5 version)
POST /unified-admin/keycloakLogin (all routes) (This is only valid for CX-4.9.5 version)
Documents for APISIX configurations:
-
Document to configure the Authentication Token lifespan in Keycloak
-
API authentication integration guide for third-party components
Any third-party using CX APIs from the secure components listed above must follow the API Authentication Integration Guide for third-party components before directly invoking the APIs.