Tunneling in REL-ID

🌐 Tunneling – REL-ID SDK Overview

📘 Purpose

Tunneling in REL-ID SDK enables secure access to remote/internal enterprise services over a trusted channel without requiring direct network exposure (e.g., VPN or public internet). The SDK provides APIs to discover services and establish or terminate access tunnels dynamically.


🔐 Core Concept

REL-ID SDK uses policy-driven service discovery and secure tunneling to connect to backend services via the REL-ID Server. This ensures:

  • Zero-trust access enforcement
  • Application-level service authorization
  • Encrypted traffic across managed tunnels

🚀 Workflow Overview

  1. 🔍 Discover available services using getAllServices(), getServiceByServiceName() or getServiceByTargetCoordinate()
  2. 🔓 Start access tunnel using serviceAccessStart() or serviceAccessStartAll()
  3. 🛰️ Route traffic through the SDK's secure tunnel
  4. 🔒 Stop tunnel using serviceAccessStop() or serviceAccessStopAll()

🔎 Service Discovery APIs

📥 getAllServices

Retrieves all services available to the user based on their group, device, and policy.

RdnaClient.getAllServices();

🔎 getServiceByServiceName

Retrieve service details using a registered service name.

RdnaClient.getServiceByServiceName("intranet_service");

🎯 getServiceByTargetCoordinate

Lookup a service using a target host and port coordinate.

RdnaClient.getServiceByTargetCoordinate("10.0.0.1", 8080);

🔓 Tunneling APIs

🚪 serviceAccessStart

Starts a tunnel to a specific service by service ID.

RdnaClient.serviceAccessStart("serviceId");

🛑 serviceAccessStop

Stops the active tunnel to a specific service.

RdnaClient.serviceAccessStop("serviceId");

🚀 serviceAccessStartAll

Starts access to all available services (based on policy).

RdnaClient.serviceAccessStartAll();

🛑 serviceAccessStopAll

Stops access to all currently active tunnels.

RdnaClient.serviceAccessStopAll();

📦 Sample Flow

  1. Discover Services
const services = RdnaClient.getAllServices();
  1. Start Tunnel to a Specific Service
RdnaClient.serviceAccessStart(services[0].serviceId);
  1. Stop Tunnel
RdnaClient.serviceAccessStop(services[0].serviceId);

🧠 Best Practices

  • Always call serviceAccessStop() or StopAll() after session ends
  • Use getAllServices() to build dynamic service access UIs
  • Respect service policy limits and failure reasons
  • Audit tunnel activity for compliance

📌 Notes

  • All tunneling traffic is encrypted and routed via REL-ID policy engine
  • Service access may be revoked in real time by the server
  • Access is context-aware: device, user, location, and risk-based

📎 Tunneling in REL-ID enables secure, scalable service access without traditional VPN or exposed firewalls.