> For the complete documentation index, see [llms.txt](https://docs.amitysolutions.com/ekoai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.amitysolutions.com/ekoai/getting-started/eko/eko-ad-sync/system-architecture-and-components/communication-protocols.md).

# Communication Protocols

The Eko AD Sync solution relies on secure communication channels and specific network protocols to ensure the reliable exchange of user data and authentication requests between your on-premises infrastructure and the Eko environment. These protocols vary depending on whether the communication is occurring within your internal network (customer-side) or over the public internet.

## 1. Internal Communication (customer-side)

Communication that occurs entirely within the Customer Data Center involves EkoADC interacting with the organization's existing identity management systems, such as Active Directory (AD) or file servers.

<table><thead><tr><th width="126.86328125">Protocol</th><th width="133.20703125">Port</th><th>Purpose</th></tr></thead><tbody><tr><td>LDAP</td><td>TCP/389</td><td>Used by EkoADC to perform tasks like LDAP search for querying users during synchronization, or fetching disabled users from the AD.</td></tr><tr><td>LDAPS</td><td>TCP/636</td><td>The secure version of LDAP. It is highly recommended and used by EkoADC to establish a secure, encrypted connection with the Active Directory for both user synchronization and user authentication.</td></tr><tr><td>FTP / SFTP</td><td>Varies</td><td>Used by EkoADC to connect to the Customer's File Server (e.g., FTP Server) when synchronization is sourced from a file (like a CSV from an HR system).</td></tr></tbody></table>

The firewall policy requires that the EkoADC has internal access to the Customer AD using TCP/389 (LDAP) or TCP/636 (LDAPS).

## 2. External Communication (EkoADC to Eko)

Communication between the on-premises EkoADC and Amity Solutions’ cloud services (IDMAPI/Eko Backend) occurs over the public internet, requiring security and encryption.

<table><thead><tr><th width="131.375">Protocol</th><th width="129.4609375">Port</th><th>Purpose</th></tr></thead><tbody><tr><td>HTTPS</td><td>TCP/443</td><td><p>The EkoADC uses HTTPS (secure HTTP) to transmit data to and from the Eko Cloud. This is used when:</p><ul><li><strong>User Synchronization</strong>: EkoADC sends user synchronization data (in batches or chunks) to the EkoIDMAPI/Eko Backend via HTTPS.</li><li><strong>User Authentication</strong>: User account information (username and password) is passed from the EkoIDMAPI to the EkoADC via HTTPS during the login process.</li><li><strong>Webhook/API Communication</strong>: EkoADC receives API calls or webhooks (e.g., from the Eko or a Customer reverse proxy) via HTTPS.</li></ul></td></tr></tbody></table>

## 3. Other Necessary Network Protocols

For the EkoADC server to function correctly within the customer's network, access to time and naming services is required:

<table><thead><tr><th width="122.23046875">Protocol</th><th width="189.50390625">Port</th><th>Purpose</th></tr></thead><tbody><tr><td>NTP</td><td>TCP/123, UDP/123</td><td>Necessary for the EkoADC to synchronize time with the Customer Time Server.</td></tr><tr><td>DNS</td><td>UDP/53</td><td>Required for DNS resolution, allowing EkoADC to resolve domain names of the Customer AD Server and Eko endpoints.</td></tr><tr><td>Proxy Port</td><td>TCP/8080</td><td>If the customer network requires the use of a proxy server for external internet access, the EkoADC communicates through the Proxy Port (e.g., TCP/8080). The <code>config.json</code> file in EkoADC allows configuring a proxy host, port (e.g., 3128), and protocol (e.g., http).</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.amitysolutions.com/ekoai/getting-started/eko/eko-ad-sync/system-architecture-and-components/communication-protocols.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
