Skip to content
Bridge & Broker Network Architecture

Bridge & Broker Network Architecture

This page maps every port and communication channel the Bridge and its co-located Broker use, so you can design firewall rules and a complete architecture picture before you deploy. The deployment guides cover how to run each shape; this page covers what talks to what.

The Broker is co-located with the Bridge. The Bridge web/API tier, the native protocol proxies, and the Britive Broker run together — as one process in single-role, or alongside the orchestrator in a cluster. The broker’s checkout scripts and the bridge’s session proxy therefore share the same network interface and security group: a target firewall sees one source, but it must allow every port below.

Deployment Shapes

The Bridge ships as one container image that runs in two shapes. Both use the identical network model described here — only the host and orchestration differ.

ShapeWhat runsTypical useGuide
Single-roleOne process: web/API, native proxies, and the co-located brokerTrials, labs, small teamsSingle-Server
Clusterorchestrator + proxy + session roles that scale out; broker runs with the orchestratorProductionAWS (ECS) · Kubernetes

Network Planes

The Bridge and broker touch four network planes: control (outbound to the Britive platform), user access (inbound), internal (datastore and shared storage), and resource egress (outbound to your targets). Every connection to the Britive platform is outbound only — the broker polls for work; nothing dials in from Britive.

    flowchart TB
  Users["Users<br/>browser 443 · native SSH / RDP / DB"]
  SaaS["Britive platform<br/>https://&lt;tenant&gt;.britive-app.com : 443"]

  subgraph Host["Bridge host — Bridge + co-located Broker"]
    Bridge["Bridge<br/>web/API + native proxies"]
    Broker["Broker<br/>runs checkout / checkin scripts"]
  end

  Deps[("PostgreSQL datastore<br/>shared recordings storage")]

  subgraph Targets["Target resources"]
    Prov["A · Broker provisions (at checkout / checkin)<br/>SSH · WinRM · LDAP · DB admin"]
    Sess["B · Bridge session proxy (live session)<br/>SSH · RDP · DB"]
  end

  Users -->|inbound| Bridge
  Broker -.->|"outbound 443 · poll work, license"| SaaS
  Bridge -.->|"outbound 443 · OAuth login, license"| SaaS
  Broker -->|"register checkout (cluster token)"| Bridge
  Bridge --> Deps
  Broker --> Prov
  Bridge --> Sess
  

Keep native listeners private. Some native protocols can carry credentials in clear text. Expose the web tier (443) through the load balancer, but restrict the native listeners (SSH / RDP / database ports) to your private network, VPN, or zero-trust range.

Checkout & Session Lifecycle

A just-in-time session flows across all four components. The broker provisions a temporary account on the target at checkout and removes it at checkin; the bridge proxies the live session in between.

    sequenceDiagram
  actor User
  participant SaaS as Britive platform
  participant Broker
  participant Bridge
  participant Target
  User->>SaaS: 1. Request checkout (profile)
  Broker->>SaaS: 2. Poll 443, get work
  Broker->>Target: 3. Provision temp account (SSH / WinRM / LDAP / DB admin)
  Broker->>Bridge: 4. Register checkout (cluster token)
  User->>Bridge: 5. Connect (browser 443 / native ports)
  Bridge->>Target: 6. Proxy session (SSH / RDP / DB)
  Note over Bridge: session recorded to shared storage (always on)
  Broker->>Target: 7. On expiry / checkin, remove temp account
  

Ports & Communication Channels

Control plane — Bridge/broker → Britive platform (outbound)

SourceDestinationPortPurpose
Brokerhttps://<tenant>.britive-app.comTCP 443Poll for checkout/checkin work; fetch and refresh the license
Bridgehttps://<tenant>.britive-app.comTCP 443Britive OAuth login validation; license status

Outbound only — no inbound rule from Britive is ever required. Route through HTTPS_PROXY / NO_PROXY / SSL_CERT_FILE if egress is via a forward proxy.

User-access plane — users → Bridge (inbound)

SourcePortBackendPurpose
User browserTCP 443LB → Bridge web/APIBrowser sessions (all protocols), web UI, checkout picker, admin
Native SSH clientTCP 22 (often 2222)LB → BridgeSSH wire proxy
Native RDP clientTCP 3389LB → Bridgemstsc / xfreerdp
Native MySQL clientTCP 3306LB → Bridgemysql wire proxy
Native PostgreSQL clientTCP 5432LB → Bridgepsql wire proxy
LB health probesBridge web/API portLB → Bridge/readyz (readiness), /livez (liveness)

Ports and TLS termination vary by platform. In single-server mode the Bridge can terminate TLS directly on 443. In a cluster behind a load balancer, the web/API tier commonly listens on 8080 and native SSH on 2222, because many container platforms restrict binding privileged ports (<1024); the load balancer then publishes 443 and 22 and terminates TLS, forwarding to the internal ports. MSSQL (1433) is enabled in the container but may not have a dedicated native listener depending on your load balancer’s listener limits — reach it through the browser SQL client in that case.

Internal plane — Bridge dependencies

SourceDestinationPortPurpose
BrokerBridge admin APIBridge API port (e.g. 8080)Register/delete checkouts (needs BRIDGE_CLUSTER_TOKEN, BRIDGE_API_URL)
BridgePostgreSQLTCP 5432Datastore — checkouts, sessions, audit, encrypted credentials (mandatory)
BridgeShared recordings storageTCP 2049 (NFS)Recordings, auto-generated TLS certs, SSH host keys (shared across cluster workers)

Resource plane — → your target resources (outbound)

Two distinct outbound paths, both from the same Bridge/broker network interface.

A. Broker → target — provisioning (runs the checkout/checkin scripts that create and remove a temporary account or grant). Only the resource types you onboard apply.

TargetPortProtocolNotes
LinuxTCP 22SSHPrivileged provisioning user (default britivebroker)
WindowsTCP 5985 / 5986WinRM (HTTP / HTTPS)WINRM_NO_SSL=1 → 5985, 0 → 5986
WindowsTCP 22SSHAlternative provisioning transport
Active DirectoryTCP 389 / 636LDAP / LDAPSldapsearch scans; DC changes via WinRM/SSH to a DC
MySQLTCP 3306MySQLAdmin connection; TLS verified by default
PostgreSQLTCP 5432PostgreSQLAdmin connection; TLS verified by default
MSSQLTCP 1433TDSAdmin connection; TLS verified by default

B. Bridge → target — live session proxy (the actual user session, after checkout).

TargetPortProtocol
LinuxTCP 22SSH
WindowsTCP 3389RDP
MySQLTCP 3306MySQL
PostgreSQLTCP 5432PostgreSQL
MSSQLTCP 1433TDS

Firewall / security-group checklist

  • From the internet: 443 to the load balancer only.
  • From your private network (VPN/VPC): the native ports you enable (22 or 2222 / 3389 / 3306 / 5432) to the load balancer.
  • From the Bridge to the Britive platform: 443 outbound.
  • From the Bridge to PostgreSQL: 5432; to shared recordings storage: 2049.
  • From the Bridge to each target: the union of the provisioning (A) and session (B) ports for every onboarded type — a Linux host needs only 22; a Windows host needs 5985/5986 (provision) and 3389 (session); a database needs its admin+session port (the same number).
  • On each target: allow the Bridge source — security group, subnet CIDR, or host IP — on those ports.

Next Steps

Last updated on