A connection profile governs a session only after the ASA picks it. That sentence is the whole troubleshooting model for a legacy clientless portal. An unused profile can hold perfect access rules and still apply to nobody. Trace the login entry point before you edit any policy.

The distinctions below follow the 9.16 documentation; clientless SSL VPN was removed in 9.17(1) and later.

The alias is a list entry, not a URL

group-alias supplies a label the user picks from the group list on the login page. Displaying that list is a separate setting, tunnel-group-list enable. The alias is a selection name and nothing more. Configuring an alias called staff does not create a /staff URL that selects the profile.

People expect the alias to do double duty because the list and the URL look like the same choice from inside a browser.

What group-url actually matches

group-url binds an incoming URL to a connection profile. When that enabled URL matches, the ASA selects the profile without asking the user to choose from the list. The URL has to be the complete intended one, in the syntax your release supports. Its DNS record and its certificate must agree with what users type, or the match never gets a chance to happen.

A copied URL suffix proves nothing about configuration. Check the profile, not the address bar.

Follow the selection into the policy that runs

Once a tunnel group is selected, the appliance resolves the authentication method and the default group policy attached to it. Then user-specific attributes, values returned by authentication, and dynamic authorization can override parts of that baseline. Inspect what the session actually received. Reading the named policy on its own tells you the baseline, not the outcome.

The gap between those two is where most reports of “the rule is right but access is wrong” come from.

Inheritance is not isolation

Attributes you leave unspecified can inherit from the default group policy. A new named policy is therefore not sealed off from shared defaults, and editing those defaults reaches every profile that inherits them. Compare effective resource access, DNS settings and session restrictions per profile. Do that before changing anything shared.

Keep access enforcement separate from selection as well.

For a clientless session the applicable filter is the webtype ACL. A tunneled-client VPN filter is not a substitute just because both sit near the same policy block in the configuration.

Decide the unmatched case, then test every path

Work out what should happen at the generic portal URL and at other unmatched entry points. Look at the real default-profile path and its authorization instead of editing a shared default so that one test account passes. Then open three fresh sessions: the explicit URL, the enabled list entry, and the generic entry point. Record the selected profile and the effective policy for each of them.

Reusing a browser tab from an earlier login ruins the comparison, because that session is already bound to a profile.

That record turns “the portal opens” into a login-to-policy mapping you can audit later, which is the only durable answer when a profile looks correct and governs nobody.

פֿאַרבונדענע אַרטיקלען