Issue Summary:
SSO authentication via Okta works in Pritunl server version 1.32.4278.46 (Beta environment) but fails in version 1.32.4349.59 (Production environment). The client successfully initiates SSO authentication and receives Okta redirect, but fails to complete the VPN connection due to incorrect endpoint selection for authentication API calls.
Environment Details:
-
Working Environment (Beta): Pritunl Server v1.32.4278.46
-
Failing Environment (Production): Pritunl Server v1.32.4349.59
-
Client Version: Latest macOS client
-
Authentication: Okta SAML SSO
-
Infrastructure: AWS ALB (HTTPS) + NLB (UDP) setup
Root Cause Analysis:
The issue stems from a behavioral change in Pritunl client logic between server versions 4278.46 and 4349.59. In the working version, the client automatically adds a * marker to the ALB endpoint in data_remotes for authentication API calls. In version 4349.59, this behavior has changed, causing the client to use the NLB endpoint for authentication API calls, which fails.
Client Log Analysis:
Working Beta-Devin Logs:
data_remotes=string{“pritunl-alb-2027382609.us-east-1.elb.amazonaws.com*”, “pritunl-prod-nlb-aiagents-031f42d15fcfd3b3.elb.us-east-1.amazonaws.com”}
ALB has * marker - authentication succeeds
Failing Production Logs:
data_remotes=string{“pritunl-prod-vpn-webui.prod.vpn.toasttab.com”, “pritunl-prod-vpn-19679-nlb-5158ca234a16ba5c.elb.us-east-1.amazonaws.com”}
No * marker on either endpoint - authentication fails
Post “https://pritunl-prod-vpn-19679-nlb-5158ca234a16ba5c.elb.us-east-1.amazonaws.com/key/ovpn/…”: context deadline exceeded
Client tries to use NLB for authentication API call instead of ALB
Infrastructure Setup:
-
ALB: pritunl-prod-vpn-webui.prod.vpn.toasttab./com(HTTPS, handles web UI and authentication)
-
NLB: pritunl-prod-vpn-19679-nlb-5158ca234a16ba5c.elb.us-east-1.amazonaws.com (UDP, handles VPN traffic)
-
SSL Certificate: Covers ALB domain, not NLB internal DNS
Host Configurations Tested:
-
All hosts with NLB Public Address + ALB Sync Address (Original)
-
One host with ALB Public Address + ALB Sync Address, others with NLB (Current)
-
Priority variations (0, 1, 2 for different hosts)
-
Empty Sync Address fields (mimicking Beta setup)
Key Observations:
-
SSO Initiation Works: Client successfully initiates SSO and receives Okta redirect
-
Authentication Completes: User can authenticate via Okta
-
API Call Fails: Client makes authentication API call to NLB instead of ALB
-
Version-Specific Behavior: Issue only occurs in version 4349.59, not 4278.46
Expected vs Actual Behavior:
Expected (v4278.46 behavior):
-
Client adds * marker to ALB endpoint in data_remotes
-
Uses ALB for authentication API calls
-
Uses NLB for VPN tunnel establishment
Actual (v4349.59 behavior):
-
Client does not add * marker to any endpoint
-
Uses NLB for authentication API calls (fails)
-
SSO authentication completes but VPN connection fails
Questions:
-
Is this a known issue in version 4349.59?
-
What changed in the client logic for endpoint selection between versions 4278.46 and 4349.59?
-
How can we force the client to add the * marker to the ALB endpoint in version 4349.59?
-
Are there any configuration changes needed for the new SSO rate limiting features in 4349.59?
-
Should we downgrade to version 4278.46 or is there a fix/workaround for 4349.59?