Questo documento descrive i problemi più comuni incontrati durante la risoluzione dei problemi SAML su appliance Cisco ASA e FTD.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Le guide alle best practice si basano sulle seguenti versioni hardware e software:
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
SAML (Security Assertion Markup Language) è un framework basato su XML per lo scambio di dati di autenticazione e autorizzazione tra domini di sicurezza. Crea un circolo di fiducia tra l'utente, un provider di servizi (SP) e un provider di identità (IdP), che consente all'utente di accedere una sola volta a più servizi. SAML può essere utilizzato per l'autenticazione VPN ad accesso remoto per le connessioni Cisco Secure Client agli headend VPN ASA e FTD, dove ASA o FTD è l'entità SP nel cerchio di attendibilità.
La maggior parte dei problemi SAML può essere risolta verificando la configurazione sull'IdP e sull'ASA/FTD in uso. Nei casi in cui la causa non è chiara, i debug forniscono una maggiore chiarezza e gli esempi riportati in questa guida derivano dal comando debug webvpn saml 255.
Lo scopo di questo documento è quello di fornire un rapido riferimento ai problemi SAML noti e alle possibili soluzioni.
Ciò significa in genere che il comando saml idp [entityID] nella configurazione webvpn del firewall non corrisponde all'ID entità IdP trovato nei metadati dell'IdP, come mostrato nell'esempio seguente.
Esempio di 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().
Da IDP:
<EntityDescriptor ID="_7e53f3f3-7c79-444a-b42d-d60ae13f0948" entityID="https://sts.example.net/69c69fff-03f6-4c9c-be73-9ed4f5f894c/">
Da ASA/FTD:
saml idp https://sts.example.net/69c69fff-03f6-4c9c-be73-9ed4f5f894 >>>> The entity ID is missing characters at the end
Controllare l'ID entità del file di metadati dell'IdP e modificare il comando saml idp [entity id] in modo che corrisponda esattamente a questo valore; inclusa la barra rovesciata (/).
Il firewall non è in grado di convalidare l'asserzione fornita dall'IdP poiché l'orologio del firewall non è valido.
Esempio di debug:
[SAML] consume_assertion: assertion is expired or not valid
Esempio:
[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
Nell'esempio precedente, è possibile vedere che l'asserzione è valida solo tra le 09:52:10.759 UTC e le 10:57:10.759 UTC e che l'ora sul firewall è esterna alla finestra di validità.
Nota: Il tempo di validità visualizzato nell'asserzione è in UTC. Se l'orologio del firewall è configurato in un fuso orario diverso, l'ora verrà convertita in UTC prima della convalida.
Configurare l'ora corretta sul firewall manualmente o utilizzando un server NTP e verificare che l'ora corrente del firewall rientri nella validità dell'asserzione in UTC. Se il firewall è configurato in un fuso orario diverso da quello UTC, verificare che l'ora sia convertita in UTC prima di verificare la validità dell'asserzione.
Quando il firewall non riesce a verificare la firma dell'asserzione SAML ricevuta dall'IdP a causa di una configurazione non corretta del certificato IdP nel webvpn del firewall con il comando trustpoint idp<trustpoint>.
Esempio di 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
Scaricare e installare il certificato dal provider di identità sul firewall e assegnare il nuovo trust point nella configurazione webvpn del firewall. Il certificato di firma IdP si trova in genere nei metadati dell'IdP o nella risposta SAML decodificata.
IdP è configurato con l'URL di risposta non corretto (URL servizio consumer di asserzione).
Esempio di debug: Dopo l'invio della richiesta di autenticazione iniziale, non viene visualizzato alcun debug. L'utente non può immettere le credenziali, ma dopo tale connessione non riesce e non viene stampato alcun debug.
Da IDP:

Da metadati FW o SP:
<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 questo esempio, è possibile vedere che l'"URL del servizio consumer di asserzione" su IdP non corrisponde alla posizione sui metadati di SP.
Modificare l'URL del servizio consumer di asserzione nell'IdP come mostrato nei metadati dell'SP. I metadati dell'SP possono essere ottenuti usando il comando show saml metadata <tunnel-group-name>.
Quando l'IdP invia una destinazione errata nella risposta SAML, ad esempio un gruppo di tunnel errato.
Esempio di debug:
[SAML] consume_assertion: assertion audience is invalid
Da traccia SAML:
<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>
Da metadati firewall o SP:
<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" />
Correggere la configurazione nell'IdP come Destinazione e Destinatario. La risposta SAML deve corrispondere al percorso indicato nei metadati firewall/SP nell'output show saml metadata <tunnel-group-name>.
Dopo aver apportato modifiche alla configurazione SAML in webvpn, si consiglia di rimuovere e aggiungere nuovamente il comando saml identity-provider <IDP-Entity-ID> nel gruppo di tunnel.
Rimuovere e aggiungere nuovamente il comando saml identity-provider <IDP-Entity-ID> nel gruppo di tunnel.
Per configurare l'autenticazione SAML in modo da utilizzare la stessa applicazione SSO IdP per più gruppi di tunnel, esaminare la procedura di configurazione seguente.
Opzione 1 per ASA 9.16 e versioni precedenti, FTD gestito da FDM o FMC/FTD 7.0 e versioni precedenti:
Opzione 2 per ASA 9.17.1 e versioni successive o FTD/FMC 7.1 e versioni successive:
Questa condizione può essere rilevata sul software Secure Client sul dispositivo client per diversi motivi, tra cui:
Esempio di debug:
[SAML] relay-state hash mismatch.
Sebbene la maggior parte delle operazioni di risoluzione dei problemi SAML possa essere eseguita con l'output del debug SAML webvpn, in alcuni casi ulteriori debug possono essere utili per individuare la causa di un problema.
firepower# debug webvpn saml 255 firepower# debug webvpn 255 firepower# debug webvpn session 255 firepower# debug webvpn request 255
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
2.0 |
12-Oct-2026
|
Controllo ortografico, grammaticale, spaziatura, righe orizzontali inserite per separare le sezioni aggiornate e avvisi CCW fissi. |
1.0 |
01-Aug-2025
|
Versione iniziale |