Hi everyone. I'm relatively new to the SDP space and my team has been testing Appgate SDP on macOS for a few weeks now. Overall, the concept is great, but we're running into a persistent issue that's disrupting workflows.
The client on macOS (version 13.x, Ventura) keeps prompting users for re-authentication multiple times a day, even with the "Remember me" box checked. It happens seemingly at random, not tied to a clear pattern like sleep/wake cycles or network changes. We're using identity provider integration, if that matters.
I want to understand what could be causing this before I propose a deeper investigation to our IT security team. Could it be a local keychain issue, a specific setting in the Appgate gateway, or perhaps a conflict with another agent on the system? What logs should I be looking at on the client side to provide useful information to our administrators?
I'm cautious about just tweaking settings without understanding the root cause, especially for a security tool. Any insights from others running this on macOS environments would be really helpful.
—em
Oh, this brings back memories of a similar headache we had during our IdP migration last year. It absolutely can be disruptive.
> Could it be a local keychain issue
That's a great starting point. I'd have your users check if the Appgate client has been granted "Always Allow" access to the keychain in Keychain Access.app. Sometimes a denied prompt sits quietly and causes these repeat auths. The client logs are your best friend here - look in `~/Library/Logs/Appgate` for any entries around "token refresh failed" or "authentication denied by system". Those will tell you if it's a local credential store problem or something from the gateway side.
It could also be a gateway-side session lifetime that's shorter than the IdP token lifetime, forcing a refresh that the client can't handle silently. Your admins should compare those policies. Have you tried the old "remove and re-add the entire connection profile" trick yet? Sometimes the initial handshake gets a bit confused.
Backup first.
The keychain angle is often overplayed here. In my experience with Okta and Auth0 integrations, the more likely culprit is a silent, failed token refresh due to misaligned session policies. The "Remember me" box only tells the client to *try* and use stored credentials; it doesn't guarantee the gateway or your IdP will accept them on the next refresh cycle.
Look at the gateway-side session and token renewal settings first. It's common to see an aggressive absolute session timeout that forces a full re-auth, regardless of the local client's intent. Check your IdP's token lifetime against Appgate's session lifetime - if the gateway session expires before the IdP token, you'll get prompted. The client logs (in `~/Library/Logs/Appgate`) might just show the symptom, "authentication required," without the root cause.
Before chasing keychain permissions, ask your administrators for the gateway session configuration and compare it to your IdP's token refresh policy. That mismatch is what usually bites you.
audit logs don't lie
That "seemingly at random" pattern is the real killer for user trust. You're right to be cautious about random knob-twiddling.
While everyone jumps to the keychain or gateway settings (and they're not wrong), have you ruled out the simple stuff? Like the client being on a slightly older version with a known token refresh bug? The macOS version (13.x) covers a lot of ground; a .1 update from Apple sometimes breaks agent handshakes. Check if your Appgate client is the latest stable build - their release notes often quietly fix "intermittent re-auth" issues.
Start with the client logs, but look for network-related entries, not just auth failures. A blip in DNS resolving your IdP domain can force a full prompt.
Your instinct to correlate logs before changing settings is correct, especially for a security control. The client logs are crucial, but I'd approach them with a specific hypothesis to structure your analysis.
Start by pulling a time series. Filter the client logs in `~/Library/Logs/Appgate` for a user session spanning one of these random prompts. Look for three consecutive events: a successful token refresh, followed by a network or gateway communication error (even a timeout), and then the forced authentication request. This sequence would point to a transient failure breaking the refresh cycle, which could be network, gateway load, or a DNS issue as user1344 noted.
If that pattern isn't there, and you see only successful refreshes right up until an "authentication required" message, then the session is being invalidated server-side. That's when you'd need to compare timestamps from the client log against the gateway's session lifetime and your IdP's token lifetime, as others suggested. Exporting those log snippets with correlated timestamps will give your IT team the concrete evidence they need to audit the gateway or IdP policies.
Garbage in, garbage out.
Everyone's chasing logs and gateway settings, but you should check the client's system permission first. Ventura tightened up the Privacy & Security settings for network extensions. If the Appgate client doesn't have the right permissions, it can't maintain its connection silently, forcing a re-auth even with a valid token.
Open System Settings > Privacy & Security and look for anything related to "Desktop," "Files and Folders," or "Networking." A missing checkmark there is more common than a misconfigured IdP token lifetime. Run a test: have a user grant all requested permissions, then see if the prompts stop for 24 hours. If they do, you've found your culprit without touching a single server log.
-- bb
Good on you for wanting to understand the cause before just flipping switches. Security tools need that care.
I'd actually lean towards the system permissions check user413 mentioned. I've seen similar weirdness with other VPN clients on Ventura after updates. The keychain gets the blame, but sometimes it's just a missing checkbox in Privacy & Security that kills the background process.
That said, your gateway admins should be able to see session durations. Maybe ask them if there's a mismatch between the IdP token validity and the gateway's re-auth policy? Could be two problems stacked.
Self-host or die trying.
Agreeing it could be two problems stacked is optimistic. It's almost certainly a policy misalignment. The permission check is a band-aid; if the system needs a checkbox to hold a session, your zero-trust posture is already broken. The real question isn't what's missing in System Preferences, it's why your gateway session lifetime isn't mapped to your IdP's refresh token expiry. That's a configuration audit failure, not a user device problem.
— geo
The keychain check is a solid first step, but in my experience it's rarely the root cause. I've seen that prompt sit denied for months without causing daily re-auth.
You're right about the lifetime mismatch being a likely culprit. More often, it's the refresh token expiry in the IdP that's out of sync, not the primary session. The gateway might be trying to use a refresh token that's already dead.
Have your admins check the IdP's refresh token rotation policy. An aggressive one will constantly invalidate the stored secret.
I think you're drawing a line that's a bit too rigid here.
You're right that the core policy alignment is a critical audit point, no argument there. But calling a system permission check a "band-aid" misses the reality of endpoint management. On macOS, those permissions *are* part of the security model. If the client can't access the keychain because of a denied TCC prompt, that's a legitimate failure in the deployment or provisioning process, not just a user-land checkbox. It's a different layer of the same problem.
A truly broken zero-trust posture would mean the session works despite the misalignment. The fact it's failing suggests the controls are, perhaps painfully, working as designed. The fix is still configuration, just at the device profile level instead of the server.
Keep it real, keep it kind.
I completely agree about the Ventura permissions check being a surprising culprit. It feels like a "simple" fix, but as you've seen, it can be the actual root cause. I've had that exact scenario with another cloud-access client, where the re-auth prompts disappeared entirely after we pushed a configuration profile to grant the necessary permissions system-wide.
Your point about asking the gateway admins for session durations is smart, but I'd suggest asking them for something more specific: the exact timestamp of the last successful token refresh before the forced re-auth prompt appears in the user's logs. That correlation often reveals if it's a true policy mismatch or just a permissions hiccup preventing a refresh that should have worked. Sometimes it's both, and you need to fix the permissions to even see the real policy problem.
Measure twice, automate once.
That's a great call to push for the exact timestamp correlation. It turns a vague "mismatch" into a measurable gap. I've found that even a well-aligned policy can look broken if the client's local clock is skewed, which is another simple check that gets overlooked in these investigations. A five-minute drift can make a valid refresh token appear expired in the gateway logs.
Pushing a configuration profile for permissions is indeed the clean fix, but it assumes you have MDM in place. For environments without it, you're stuck with manual approval, which reintroduces the variable you're trying to eliminate. That's where the timestamp check becomes even more critical, to prove the need for the heavier management tooling.
You're getting solid advice about logs and permissions, but everyone's missing the forest for the trees. This screams session management overreach.
> I'm cautious about just tweaking settings without understanding the root cause, especially for a security tool.
Good. Because the logs will just show you symptoms. The root cause is likely an architectural one: your IdP and gateway are probably configured for conflicting token lifetimes, and the client is caught in the middle, dutifully failing.
Forget the keychain for a second. If your gateway's session timeout is shorter than your IdP's refresh token validity, the gateway will demand re-auth before the client even gets a chance to use a refresh. That looks random because it's triggered by an internal timer, not user activity.
Ask your admins for two numbers: the gateway's maximum session duration and the IdP's refresh token lifetime. If the first is less than the second, you've found your culprit. All the Ventura permission checks in the world won't fix a policy designed to interrupt you.
monoliths are not evil
You're spot on about the silent token refresh being a common, and often overlooked, issue. That mismatch is absolutely a top-tier suspect.
Your point about the "Remember me" box is crucial. I've seen too many teams assume that box is a guarantee from the system, when it's really just a client-side preference that the server can ignore. It sets false expectations for users.
One small caveat to your otherwise solid advice: sometimes the logs do show the cause, but it's buried. A "401" or "invalid_grant" buried before the "authentication required" line can point straight to the IdP, saving the admin ticket. But you're right, starting with the policy comparison is the most direct path.
Keep it real, keep it kind.
The false expectation around "Remember me" is a huge problem, and it extends to more than just this VPN scenario. In many ticketing systems, agents will check a "keep me logged in" box on the support portal only to be booted a few hours later due to an aggressive, unadvertised session policy on the backend. It creates a constant friction point between IT and the support teams.
Your caveat about logs is fair, but I've found the search for the "invalid_grant" is itself a time sink. It presumes the client-side logs are verbose enough and that the user can even access them. For a standard managed macOS device, pulling those logs often requires admin intervention anyway, at which point you're already deep in an admin ticket.
The policy comparison is direct, but getting a straight answer on the IdP's refresh token lifetime from the identity team can be its own battle. They often view it as an internal security parameter. The fastest route I've found is to ask for the specific SAML assertion or OAuth token validity periods documented for the application in question. That usually forces the conversation out of the abstract.
Support is a product, not a department.