This document describes the most common problems encountered while troubleshooting SAML on Cisco ASA and FTD appliances.
Cisco recommends that you have knowledge of these topics:
The best practice guides are based on these hardware and software versions:
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
SAML (Security Assertion Markup Language) is an XML-based framework for exchanging authentication and authorization data between security domains. It creates a circle of trust between the user, a service provider (SP) and an Identity Provider (IdP), which allows the user to sign-in a single time for multiple services. SAML can be used for Remote Access VPN authentication for Cisco Secure Client connections to ASA and FTD VPN headends, where the ASA or FTD is the SP entity in the trust circle.
Most SAML issues can be resolved by verifying the configuration on the IdP and ASA/FTD being used. In cases where the cause is not clear, debugs provide more clarity and the examples in this guide derive from the debug webvpn saml 255 command.
The purpose of this document is to be a quick reference for known SAML issues and possible solutions.
This generally means the saml idp [entityID] command under the firewall webvpn configuration does not match the IdP Entity ID found in the IdP’s metadata as shown in the next example.
Example Debug:
Sep 05 23:54:02 [SAML] consume_assertion: The identifier of a provider is unknown to #LassoServer. To register a provider in a #LassoServer object, you must use the methods lasso_server_add_provider() or lasso_server_add_provider_from_buffer().
From IDP:
<EntityDescriptor ID="_7e53f3f3-7c79-444a-b42d-d60ae13f0948" entityID="https://sts.example.net/69c69fff-03f6-4c9c-be73-9ed4f5f894c/">
From ASA/FTD:
saml idp https://sts.example.net/69c69fff-03f6-4c9c-be73-9ed4f5f894 >>>> The entity ID is missing characters at the end
Check the entity ID of the IdP’s metadata file and change the saml idp [entity id] command to match this exactly; including any backslash (/) characters.
The firewall cannot validate the assertion provided by the IdP as the clock of the firewall is outside of the validity of the assertion.
Example Debug:
[SAML] consume_assertion: assertion is expired or not valid
Example:
[SAML] NotBefore:2022-06-21T09:52:10.759Z NotOnOrAfter:2022-06-21T10:57:10.759Z timeout: 0 >>>>> Validity of the saml assertion provided by the IDP
Jun 21 15:20:46 [SAML] consume_assertion: assertion is expired or not valid
firepower# show clock
15:26:49.240 UTC Tue Jun 21 2022 >>>> Current time on the firewall
In the prior example, you can see the assertion is only valid between 09:52:10.759 UTC to 10:57:10.759 UTC, and the time on the firewall is outside of the validity window.
Note: The validity time seen in the assertion is in UTC. If the clock on firewall is configured in a different time-zone, it converts the time in UTC before validation.
Configure the correct time on the firewall either manually or using an NTP server and verify the current time of the firewall is within the validity of the assertion in UTC. If the firewall is configured in a different time zone than UTC, ensure the time is converted to UTC before checking the validity of the assertion.
When the firewall fails to verify the signature of the SAML assertion received from the IdP due to incorrect IdP certificate configuration under the firewall webvpn with the trustpoint idp <trustpoint> command.
Example Debug:
[Lasso] func=xmlSecOpenSSLEvpSignatureVerify:file=evp_signatures.c:line=372:obj=rsa-sha256:subj=unknown:error=18:data do not match:details=EVP_VerifyFinal: signature does not verify
Download and install the certificate from the IdP on the firewall and assign the new trustpoint under the firewall webvpn configuration. The IdP signing certificate can usually be found in the IdP’s metadata or the decoded SAML response.
IdP is configured with the incorrect Reply URL (Assertion Consumer Service URL).
Example Debug: No debugs are shown after the initial authentication request is sent. User cannot enter credentials but after that connection fails and no debugs are printed.
From IDP:

From FW or SP metadata:
<AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://ac-vpn.local/+CSCOE+/saml/sp/acs?tgname=acvpn" />
In this example, you can see the "Assertion Consumer Service URL" on IdP does not match the location on the metadata of SP.
Change the Assertion Consumer Service URL on the IdP as shown in the metadata of the SP. The metadata of the SP can be obtained using the show saml metadata <tunnel-group-name> command.
When the IdP sends incorrect destination in the SAML response, such as the wrong tunnel-group.
Example Debug:
[SAML] consume_assertion: assertion audience is invalid
From SAML trace:
<samlp:Response ID="_36585f72-f813-471b-b4fd-3663fd24ffe8"
Version="2.0"
IssueInstant="2022-06-21T11:36:26.664Z"
Destination="https://ac-vpn.local/+CSCOE+/saml/sp/acs?tgname=acvpn1"
Recipient="https://ac-vpn.local/+CSCOE+/saml/sp/acs?tgname=acvpn1"
<AudienceRestriction> <Audience>https://ac-vpn.local/saml/sp/metadata/acvpn</Audience> </AudienceRestriction>
From Firewall or SP metadata:
<AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://ac-vpn.local/+CSCOE+/saml/sp/acs?tgname=acvpn" />
Correct the configuration on the IdP as the Destination and Recipient. The SAML response must match the location as shown in the firewall/SP metadata in the show saml metadata <tunnel-group-name> output.
After any modification with SAML configuration under webvpn, it is suggested to remove and re-add the saml identity-provider <IDP-Enttity-ID> command under the tunnel-group.
Remove and re-add the saml identity-provider <IDP-Enttity-ID> command under the tunnel-group.
To configure SAML authentication to use the same IdP SSO application for multiple tunnel groups, review the configuration steps below.
Option 1 for ASA 9.16 and earlier, FDM managed FTD, or FMC/FTD 7.0 and earlier:
Option 2 for ASA 9.17.1 and later or FTD/FMC 7.1 and later:
This can be seen on the Secure Client software on the client device due to multiple reasons, including but not limited to:
Example Debug:
[SAML] relay-state hash mismatch.
While most SAML troubleshooting can be preformed with the output from the webvpn SAML debug, there are times where additional debugs can be helpful in pinpointing the cause of an issue.
firepower# debug webvpn saml 255 firepower# debug webvpn 255 firepower# debug webvpn session 255 firepower# debug webvpn request 255
| Revision | Publish Date | Comments |
|---|---|---|
2.0 |
12-Oct-2026
|
Updated spelling, grammar, spacing, inserted horizontal lines to separate sections, fixed CCW alerts. |
1.0 |
01-Aug-2025
|
Initial Release |