簡介
本文檔介紹如何通過FDM在CSF上使用Azure作為IdP為遠端訪問VPN的多個連線配置檔案配置SAML身份驗證。
必要條件
需求
思科建議您瞭解以下主題的基本知識:
- 安全通訊端層(SSL)憑證
- OpenSSL
- 遠端存取虛擬私人網路(RAVPN)
- 思科安全防火牆裝置管理員(FDM)
- 安全斷言標籤語言(SAML)
- Microsoft Azure
採用元件
本檔案中的資訊是根據以下軟體版本:
- OpenSSL
- 思科安全防火牆(CSF)版本7.4.1
- 思科安全防火牆裝置管理員版本7.4.1
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
SAML或安全斷言標籤語言,是一種用於在各方之間(尤其是身份提供者(IdP)和服務提供者(SP))交換身份驗證和授權資訊的開放標準。 SAML身份驗證用於遠端訪問VPN(RAVPN)連線和其他各種應用程式因其眾多優勢而日益流行。在Firepower管理中心(FMC)上,由於「連線配置檔案」配置選單中提供了「覆蓋身份提供程式證書」(Override Identity Provider Certificate)選項,可以將多個連線配置檔案配置為使用不同的IdP保護應用程式。此功能允許管理員使用每個連線配置檔案的特定IdP證書覆蓋單點登入(SSO)伺服器對象中的主IdP證書。但是,此功能在Firepower裝置管理器(FDM)上受到限制,因為它不提供類似的選項。如果配置了第二個SAML對象,則嘗試連線到第一個連線配置檔案會導致身份驗證失敗,並顯示錯誤消息:"由於檢索單一登入cookie時出現問題,身份驗證失敗。" 要繞過此限制,可以建立自定義自簽名證書並將其匯入到Azure以供所有應用程式使用。這樣,只需在FDM中安裝一個證書,即可對多個應用程式進行無縫的SAML身份驗證。
設定
步驟 1:使用OpenSSL建立自簽憑證和PKCS#12檔案
本節介紹如何使用OpenSSL建立自簽名的憑證
- 登入到已安裝OpenSSL庫的終結點。
附註:本文檔中使用的是Linux電腦,因此有些命令是特定於Linux環境的。但是,OpenSSL命令是相同的。
b.使用命令建立一個配置檔案touch .conf
。
root@host# touch config.conf
c.使用文本編輯器編輯檔案。在此範例中,使用Vim且vim .conf
執行命令。您可以使用任何其他文本編輯器。
root@host# vim config.conf
d.輸入要包括在自簽名中的資訊。
確保將< >之間的值替換為組織的資訊。
[req]
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
C =
ST =
L =
O =
OU =
CN =
e.使用此命令可生成一個新的2048位RSA私鑰和使用SHA-256演算法的自簽名證書,有效期為3650天,基於檔案中指定的配.conf
置。私鑰將儲存到.pem
,自簽名證書將儲存到.crt
。
root@host# openssl req -newkey rsa:2048 -nodes -keyout .pem -x509 -sha256 -days 3650 -config .conf -out .crt

f.在建立私鑰和自簽名證書後,它會將其匯出到PKCS#12檔案中,該檔案是一種可以同時包含私鑰和證書的格式。
root@host# openssl pkcs12 -export -inkey .pem -in .crt -name -out .pfx

請注意密碼。
步驟 2:將PKCS#12檔案上載到Azure和FDM上
確保在Azure上為在FDM上使用SAML身份驗證的每個連線配置檔案建立應用程式。

第1步中的PKCS#12文件如下:使用OpenSSL建立自簽名證書和PKCS#12文件,必須針對多個應用程式將其上載到Azure並在FDM SSO配置中進行配置。
步驟2.1.將證書上傳到Azure
a.登入到Azure門戶,導航到要使用SAML身份驗證保護的企業應用程式,然後選擇單一登入。
b.向下滾動到SAML Certificates部分,然後選擇More Options > Edit。

c.現在,選擇匯入證書選項。

d.查詢以前建立的PKCS#12檔案,並使用您在建立PKCS#12檔案時輸入的密碼。

e.最後,選擇Make Certificate Active選項。

附註:確保執行步驟2.1:將每個應用程式的證書上載到Azure。
步驟2.2.將證書上傳到FDM
a.導航到Objects > Certificates > Click Add Trusted CA certificate
。

b.輸入您喜歡的信任點名稱,僅從IdP(而不是PKCS#12檔案)上傳身份證書,然後檢Skip CA Certificate Check
查。

c.在SAML對象中設定新證書。

d.在將SAML用作身份驗證方法並且已在Azure中建立應用程式的不同連線配置檔案上設定SAML對象。部署更改。


驗證
運行show running-config
webvpn和show running-config tunnel-group
命令以檢查配置並驗證在不同連線配置檔案上配置了相同的IDP URL。
firepower#show running-confuting webvpn
webvpn
enable outside
http-headers
hsts-server
enable
max-age 31536000
include-sub-domains
no preload
hsts-client
enable
x-content-type-options
x-xss-protection
content-security-policy
anyconnect image disk0:/anyconnpkgs/anyconnect-win-4.10.08029-webdeploy-k9.pkg 2
anyconnect profiles defaultClientProfile disk0:/anyconncprofs/defaultClientProfile.xml
anyconnect enable
saml idp https://saml.lab.local/af42bac0/
url sign-in https://login.saml.lab.local/af42bac0/saml2
url sign-out https://login.saml.lab.local/af42bac0/saml2
base-url https://Server.cisco.com
trustpoint idp Azure_SSO
trustpoint sp FWCertificate
no signature
force re-authentication
tunnel-group-list enable
cache
disable
error-recovery disable
firepower#
firepower# show running-config tunnel-group
tunnel-group SAML_TG_Admin type remote-access
tunnel-group SAML_TG_Admin general-attributes
address-pool Admin_Pool
default-group-policy SAML_GP_Admin
tunnel-group SAML_TG_Admin webvpn-attributes
authentication saml
group-alias SAML_TG_Admin enable
saml identity-provider https://saml.lab.local/af42bac0/
tunnel-group SAML_TG_IT type remote-access
tunnel-group SAML_TG_IT general-attributes
address-pool IT_Pool
default-group-policy SAML_GP_IT
tunnel-group SAML_TG_IT webvpn-attributes
authentication saml
group-alias SAML_TG_IT enable
saml identity-provider https://saml.lab.local/af42bac0/
firepower#