The RSA system consists of four main components distributed across different deployment locations:

Back-end Service (Server-Side)
Location: Remote Manager Server
Purpose: Central management and validation
Responsibilities:
- Generate and store access codes in database
- Validate codes when tunnel connections are requested
- Provide REST API for code management
- Generate pre-configured client applications
- Enforce validity periods and security policies
Secure Tunnel Agent (Gateway-Side)
Location: Smart Gateway devices
Purpose: Edge-side code management
Responsibilities:
- Generate access codes locally on gateway
- Synchronize codes with back-end server
- Enable/disable remote access per code
- Store codes persistently on gateway
RSA Client (User-Side)
Location: User's local computer
Purpose: Tunnel proxy application
Responsibilities:
- Establish WebSocket tunnel to Remote Manager
- Open local proxy port for applications
- Forward traffic through tunnel to gateway
- Display connection status and statistics
- Manage multiple concurrent tunnels
Management Console UI (Admin-Side)
Location: Remote Manager web interface
Purpose: Administrative interface
Responsibilities:
- Complete access code management
- Quick access code creation
- Advanced search and filtering
- Bulk operations
- Gateway grouping