本文檔介紹在對Cisco ASA和FTD裝置上的SAML進行故障排除時遇到的最常見問題。
思科建議您瞭解以下主題:
最佳實踐指南基於以下硬體和軟體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
SAML(Security Assertion Markup Language,安全宣告標籤語言)是一個基於XML的框架,用於在安全域之間交換驗證和授權資料。它會在使用者、服務提供商(SP)和身份提供者(IdP)之間建立一個信任圈,允許使用者一次性登入多個服務。SAML可用於遠端訪問VPN身份驗證,用於思科安全客戶端連線到ASA和FTD VPN前端,其中ASA或FTD是信任圈中的SP實體。
大多數SAML問題可通過驗證正在使用的IdP和ASA/FTD上的配置來解決。在原因不明的情況下,debug命令可提供更清楚的答案,本指南中的示例源自debug webvpn saml 255命令。
本文檔旨在快速參考已知的SAML問題和可能的解決方案。
這通常意味著防火牆webvpn配置下的saml idp [entityID] 命令與IdP後設資料中的IdP實體ID不匹配,如下一個示例所示。
偵錯範例:
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().
來自IDP:
<EntityDescriptor ID="_7e53f3f3-7c79-444a-b42d-d60ae13f0948" entityID="https://sts.example.net/69c69fff-03f6-4c9c-be73-9ed4f5f894c/">
在ASA/FTD上:
saml idp https://sts.example.net/69c69fff-03f6-4c9c-be73-9ed4f5f894 >>>> The entity ID is missing characters at the end
檢查IdP後設資料檔案的實體ID,並更改saml idp [entity id]命令以完全匹配此項;包括任何反斜槓(/)字元。
防火牆無法驗證IdP提供的斷言,因為防火牆的時鐘超出斷言的有效性。
偵錯範例:
[SAML] consume_assertion: assertion is expired or not valid
範例:
[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
在上一個示例中,您可以看到斷言僅在09:52:10.759 UTC到10:57:10.759 UTC之間有效,並且防火牆上的時間超出了有效性視窗。
附註:斷言中看到的有效期為UTC。如果防火牆上的時鐘配置在不同的時區,則在驗證之前會以UTC格式轉換時間。
手動或使用NTP伺服器配置防火牆的正確時間,並驗證防火牆的當前時間是否在UTC宣告的有效範圍內。如果防火牆配置在與UTC不同的時區,請確保時間轉換為UTC,然後再檢查宣告的有效性。
當防火牆由於trustpoint idp <trustpoint>命令在防火牆webvpn下不正確的IdP證書配置導致無法驗證從IdP接收的SAML斷言的簽名時。
偵錯範例:
[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
從防火牆上的IdP下載並安裝證書,並在防火牆webvpn配置下分配新的信任點。IdP簽名證書通常可在IdP的後設資料或解碼的SAML響應中找到。
IdP配置了錯誤的Reply URL(Assertion Consumer Service URL)。
偵錯範例:傳送初始身份驗證請求後,不會顯示調試。使用者無法輸入憑據,但在連線失敗並且未列印調試之後。
來自IDP:

從FW或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" />
在此示例中,您可以看到IdP上的「斷言使用者服務URL」與SP後設資料上的位置不匹配。
更改IdP上的斷言使用者服務URL,如SP的後設資料中所示。可以使用show saml metadata <tunnel-group-name> 命令獲取SP的後設資料。
當IdP在SAML響應中傳送不正確的目標(例如錯誤的隧道組)時。
偵錯範例:
[SAML] consume_assertion: assertion audience is invalid
在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/acvpnAudience> AudienceRestriction>
從防火牆或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" />
更正IdP上作為目的地和收件人的配置。SAML響應必須與在show saml metadata <tunnel-group-name> 輸出中的防火牆/SP後設資料中所示的位置匹配。
在webvpn下對SAML配置進行任何修改後,建議刪除並重新新增tunnel-group下的saml identity-provider <IDP-Entity-ID>命令。
刪除並重新新增tunnel-group下的saml identity-provider <IDP-Entity-ID>命令。
要將SAML身份驗證配置為對多個隧道組使用同一IdP SSO應用程式,請檢視以下配置步驟。
選項1(適用於ASA 9.16及更低版本、FDM管理的FTD或FMC/FTD 7.0及更低版本):
ASA 9.17.1及更高版本或FTD/FMC 7.1及更高版本的選項2:
由於多種原因(包括但不限於),可以在客戶端裝置上的安全客戶端軟體上看到這種情況:
偵錯範例:
[SAML] relay-state hash mismatch.
雖然大多數SAML故障排除都可通過webvpn SAML調試的輸出進行,但有時額外的調試有助於查明問題的原因。
firepower# debug webvpn saml 255 firepower# debug webvpn 255 firepower# debug webvpn session 255 firepower# debug webvpn request 255
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
2.0 |
12-Oct-2026
|
已更新拼寫、語法、間距、插入的水平線到各個部分、固定CCW警報。 |
1.0 |
01-Aug-2025
|
初始版本 |