簡介
本文檔介紹如何透過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)上,由於連線配置檔案配置選單中的覆蓋身份提供程式證書選項,可以將多個連線配置檔案配置為使用不同受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演算法的自簽名證書,根據
.conf
檔案中指定的配置,有效期為3650天。私鑰儲存到
.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步:上載Azure和FDM上的PKCS#12檔案
確保在Azure上為在FDM上使用SAML身份驗證的每個連線配置檔案建立應用程式。
當您具有步驟1:使用OpenSSL建立自簽名證書和PKCS#12檔案中的PKCS#12檔案後,必須針對多個應用程式將其上傳到Azure,並在FDM SSO配置中進行配置。
步驟 2.1.將證書上傳到Azure
a.登入您的Azure門戶,導航到要使用SAML身份驗證保護的企業應用程式,然後選擇單一登入。
b.向下滾動到SAML Certificates 部分,然後選擇More Options > Edit。
c.現在,選擇導入證書選項。
d.尋找先前建立的PKCS#12檔案,並使用您在建立PKCS#12檔案時輸入的密碼。
e.最後,選擇啟用證書選項。
注意:請務必執行步驟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#