You click Connect, and instead of a password box the VPN client opens your browser. That handoff confuses people who expect the tunnel to authenticate itself. The browser is not a detour: it is where the identity provider actually authenticates the person, and the client is only waiting for the result.

Walking one sign-in from start to finish shows where each failure belongs, which is the part most runbooks skip.

Start at the client, not the gateway config

The client builds a request and sends the browser to the identity provider with a service-provider identifier and a return location. Your organization's IdP then runs whatever it is configured to run: password, MFA, device check, conditional access. If the browser already holds a valid session, the visible part can take a second or two. That brevity is session reuse, not a skipped check.

Read the client's federation configuration for two values before anything else: the IdP metadata or URL it trusts, and the callback address it expects. A mismatch there fails before any password is typed.

What the identity provider must return

The IdP answers with a signed SAML response containing an assertion: who the subject is, who issued it, who it is for, and how long it stays valid. Those fields are the contract. Issuer, audience, recipient and validity window all have to match what the service expects.

A response signed by the right IdP but addressed to a different audience is still invalid. That is the check people skip when they copy metadata between a lab and production.

What the VPN service validates before it trusts you

The service verifies the signature against the trusted certificate, checks the issuer, the audience and the recipient, then evaluates the time conditions. Only after that does it map the assertion to a user or group and apply the VPN authorization policy. Authentication and authorization are separate steps here, and a valid assertion with no matching group produces a session that connects and reaches nothing.

The assertion is authentication material, not a password. Pasting it into another client, or keeping it for a later reconnect, is not a supported login.

Two lifetimes that end separately

The browser session at the IdP and the VPN session at the gateway expire on different clocks. Signing out of the IdP does not necessarily tear down an established tunnel, and disconnecting the tunnel does not sign you out of the browser.

AWS Client VPN documents that its federated flow does not support SAML single logout, which is one concrete example of the gap. Check your own service rather than assuming symmetry.

This is why a reconnect behaves differently at 09:00 and at 15:00. It may reuse the IdP session silently, prompt for MFA again, or fail because the endpoint session duration expired while the browser session did not. The AWS federation workflow describes its own client and response requirements, and other services use different handoffs.

When the browser step fails, check these in order

Work from the browser outward, because the error message usually names the last hop rather than the first.

If the page never loads, the client's IdP URL or the path to it is wrong. If the IdP rejects the request, the service-provider identifier or callback does not match its configuration. If the browser shows success and the client still fails, the response reached the wrong place or failed audience and time validation. And if the tunnel comes up with no access, the assertion was accepted but group mapping was not.

Keep the expected page, the callback and the group mapping in one document. Then a user reporting a broken VPN login can say which of those four things they saw, and the answer is already half written.

Akụkọ ndị metụtara ya