簡介
本文檔介紹使用Duo和LDAP對映在安全防火牆上進行授權的AnyConnect單點登入(SSO)的配置示例。
必要條件
需求
思科建議您瞭解以下主題:
- Cisco AnyConnect Security Mobility Solution — 遠端存取
- 思科安全Firepower威脅防禦(FTD)
- 思科安全防火牆管理中心(FMC)
- Duo Security的基礎知識
- 安全斷言標籤語言(SAML)
- 在Microsoft Windows Server上配置Active Directory(AD)服務
採用元件
本檔案中的資訊是根據以下軟體版本:
- Cisco安全FMC版本7.4.0
- Cisco安全FTD版本7.4.0
- Duo Authentication Proxy
- Anyconnect安全行動化使用者端版本4.10.06079
- Windows Server 2016,配置為AD伺服器
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
設定
網路圖表
DUO SSO流量
Duo Traffic Flow
- AnyConnect客戶端發起到思科安全FTD的安全套接字層(SSL)虛擬專用網路(VPN)連線。
- 安全FTD將AnyConnect客戶端中的嵌入式瀏覽器重定向到Duo SSO以進行SAML身份驗證。
- AnyConnect使用者使用主本地Active Directory憑據登入。
- Duo SSO通過本地Duo Authentication Proxy對本地Active Directory執行主身份驗證。
- 主身份驗證成功後,Duo SSO開始雙因素身份驗證(2FA)。
- AnyConnect使用者完成Duo 2FA。
- Duo SSO將使用者重新導向回到FTD,並附上指示成功的回應訊息。
使用外部LDAP的SAML
SAML使用者的外部授權取決於IdP返回的NameID值。 安全防火牆將NameID欄位對映到使用者名稱,此使用者名稱可用於查詢LDAP。
註:本文檔中使用的配置是允許屬於AD組的使用者建立遠端訪問(RA)VPN連線。來自未在地圖上定義的不同AD組的使用者禁止連線。
組態
Duo Admin Portal配置
配置AD或SAML身份提供程式,它們可以用作您的Duo SSO的主要身份驗證源。
此外,您需要一個Duo Authentication Proxy(建議使用三台驗證代理伺服器以實現高可用性),該代理伺服器能夠訪問您的本地AD或SAML身份提供程式。
有關詳細資訊,請參閱Duo Single Sign-On。
步驟1.在Duo Admin門戶上配置Cisco Secure FTD。
- 登入到Duo Admin Portal並導航至
Applications > Protect an Application
.
- 搜尋保護型別為
2FA with SSO hosted by Duo
.
- 按一下
Protect
配置思科FTD VPN時所需的配置。
Duo Protect Application
步驟2.在Duo Admin Portal上配置服務提供商資訊。
使用以下屬性:
- Cisco Firepower基礎URL:
fj-ftdv.example.com
- 連線配置檔名稱:
SSO-AD_Split-tunnel
- 郵件屬性:
Duo服務提供商
注意:郵件屬性可以設定為
.如果是這種情況,則 ldap-naming-attribute
更改自 userPrincipalName
成長至 sAMAccountName
上安裝SSL。
步驟3.按一下 Save
按鈕以儲存配置。
步驟4. 導航至 Users > Add User
如下圖所示:
Duo新增使用者
步驟5. 用新使用者的所有必要資訊填空題。
Duo使用者資訊
注意:使用者名稱資料和電子郵件資料必須與Active Directory伺服器中提供的資訊匹配。
步驟6.新增電話,以便新增使用者的電話號碼。這是使用者通過2FA和Duo Push進行身份驗證所必需的。
Duo Add電話
步驟7.為特定使用者啟用Duo Mobile。
啟用Duo手機
註:確保在終端使用者裝置上安裝Duo Mobile:
步驟8.生成Duo Mobile啟用碼。
Duo啟用碼
步驟9.通過簡訊傳送說明。
Duo簡訊
步驟10. 按一下通過SMS傳送的連結,Duo應用就會連結到「裝置資訊」部分中的使用者帳戶。
Duo Info部分
步驟11.對要新增的所有使用者重複該過程。
步驟12.檢索應用程式後設資料:
- 導航至
Applications
並按一下在步驟1中建立的服務提供商應用程式。
- 複製
Identity Provider Entity ID URL
中, SSO URL
,和 Logout URL
從後設資料中。
Duo IdP資訊
步驟13.下載 Identity Provider Certificate
.
Duo下載IdP證書
透過FMC在FTD上設定
步驟1.在FMC上安裝並註冊身份提供程式(IdP)證書。
- 導航至
Devices > Certificates
.
FMC證書1
- 按一下
Add
.選擇要註冊到此證書的FTD。
- 在
Add Cert Enrollment
部分,使用任何名稱作為IdP證書的標籤。
- 按一下
Manual
.
- 請檢視
CA only
和 Skip Check for CA flag fields
.
- 貼上base64格式IdP CA證書。
- 按一下「Save」,然後按一下「Add」。
FMC證書註冊
步驟2.配置SAML伺服器設定:
- 導航至
Objects > Object Management > AAA Servers > Single Sign-on Server.
- 選擇
Add Single Sign-on Server.
FMC SSO
- 根據從Duo收集的後設資料,在新SSO伺服器上配置SAML值:
- 身份提供程式實體ID:來自Duo應用程式的entityID
- SSO URL:來自Duo應用程式的SSO服務
- 註銷URL:Duo應用程式中的SingleLogoutService
- 基本URL: FTD SSL ID證書的FQDN
- 標識提供程式證書: IdP簽名證書
- 服務提供商證書: FTD簽名證書
FMC SSO資訊
附註: Request Timeout
設定為300,因為在身份驗證過程中傳送Duo Push並且需要使用者互動。修改 Request Timeout
根據網路設計的值。
步驟3.配置領域/LDAP伺服器配置。
- 導航至
Integration > Other Integrations.
FMC領域
FMC新增領域
- 提供Active Directory伺服器和目錄的詳細資訊。按一下「OK」(確定)。
在本演示中:
- 名稱:
ActiveDirectory_SSO
- 型別:AD
- AD主域:
example.com
- 目錄使用者名稱:
administrator@example.com
- 目錄密碼:
- 基本DN:DC=示例,DC=com
- 組DN:DC=example,DC=com
FMC領域資訊
附註: LDAPS
(使用SSL的LDAP)。埠必須從389更改為636。
註:AD伺服器必須具有已上傳到Duo的使用者資料。
步驟4.根據需要建立組策略。
- 導航至
Objects > Object Management > VPN > Group Policy.
- 按一下
Add Group Policy
.
- 使用各自的引數建立組策略。
出於本演示的目的,已配置三個組策略:
- SSO_LDAP_ADMINS Group Policy是屬於的使用者的組
AnyConnect Admins
群組.
組策略1
2. SSO_LDAP_USERS
組策略是屬於的使用者的組 AnyConnect Users
群組.
組策略2
3. NO_ACCESS
Group Policy是不屬於任何先前組策略的使用者組。它擁有了 Simultaneous Login Per User
引數必須設定為0。
組策略3
步驟5.配置LDAP屬性對映。
在本演示中,LDAP屬性對映配置:
- LDAP屬性名稱:
memberOf
- 思科屬性名稱:
Group-Policy
LDAP屬性對映
- 提供
LDAP Attribute Value
和 Cisco Attribute Value
.按一下 OK
.
在本演示中:
LDAP屬性值: CN=AnyConnect Admins, CN=Users, DC=example, DC=com
思科屬性值: SSO_LDAP_ADMINS
LDAP屬性值: CN=AnyConnect Users, CN=Users, DC=example, DC=com
思科屬性值: SSO_LDAP_USERS
配置LDAP屬性對映
步驟6.配置 Connection Profile
.
- 導航至
Devices > Remote Access
然後編輯當前的VPN遠端訪問配置。
- 建立具有其屬性的新連線配置檔案。選擇
NO_ACCESS
組策略作為此連線配置檔案的組策略。
FMC連線配置檔案1
- 選擇
AAA
頁籤。在 Authentication Method
選項,選擇 SAML
和 Authorization Server
選項,選擇在步驟3中建立的AD伺服器。
FMC連線設定檔AAA
- 建立組別名以將連線對映到此連線配置檔案。這是使用者可以在AnyConnect軟體下拉選單上看到的標籤。
FMC組別名
步驟7.設定 FlexConfig Policy
以便修改LDAP命名屬性。
當「服務提供商郵件」屬性設定為「電子郵件地址」時, ldap-naming-attribute
對於AD伺服器,必須從 sAMAccountName
成長至 userPrincipalName
.
註:如果IdP NameID
值作為 sAMAccountName
,則不需要此步驟。
- 導航至
Devices > FlexConfig
然後選擇或建立 FlexConfig Policy
才能修改。
- 按一下
FlexConfig Object
以便新增新對象。
FMC FlexConfig對象
- 修改
ldap-naming-attribute
自 sAMAccountName
成長至 userPrincipalname.
新增FlexConfig對象
步驟8.導航至 Deploy > Deployment
並選擇適當的FTD以應用設定。
驗證
從LDAP調試片段 debug ldap 255
,可以觀察到Admin User(管理員使用者)的LDAP屬性對映中有匹配:
[26] LDAP Search:
Base DN = [DC=example,DC=com]
Filter = [userPrincipalName=admin_user@example.com]
Scope = [SUBTREE]
[20]
memberOf: value = CN=AnyConnect Admins,CN=Users,DC=example,DC=com [20]
mapped to Group-Policy: value = SSO_LDAP_ADMINS
[20]
mapped to LDAP-Class: value = SSO_LDAP_ADMINS
發出 show vpn-sessiondb anyconnect
命令,以確保使用者位於定義的組中。
firepower# show vpn-sessiondb anyconnect
Session Type: AnyConnect
Username : admin_user@example.com
Index : 6
Public IP : XX.XX.XX.XX
Protocol : AnyConnect-Parent
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none
Hashing : AnyConnect-Parent: (1)none
Bytes Tx : 0 Bytes Rx : 0
Group Policy : SSO_LDAP_ADMINSTunnel Group : SSO_AD_Split-tunnel Login Time : 19:37:28 UTC Thu Jul 20 2023 Duration : 0h:01m:33s Inactivity : 0h:00m:00s VLAN Mapping : N/A VLAN : none Audt Sess ID : 0a1f7c490000600064b98cf8 Security Grp : none Tunnel Zone : 0
.
從LDAP調試片段 debug ldap 255
,可以觀察到,測試使用者的LDAP屬性對映上存在匹配:
[29] LDAP Search:
Base DN = [DC=example,DC=com]
Filter = [userPrincipalName=test_user@example.com]
Scope = [SUBTREE]
[29]
memberOf: value = CN=AnyConnect Users,CN=Users,DC=example,DC=com [29]
mapped to Group-Policy: value = SSO_LDAP_USERS [29]
mapped to LDAP-Class: value = SSO_LDAP_USERS
發出 show vpn-sessiondb anyconnect
命令,以確保使用者位於正確的組中。
firepower# show vpn-sessiondb anyconnect
Session Type: AnyConnect
Username : test_user@example.com
Index : 6
Public IP : XX.XX.XX.XX
Protocol : AnyConnect-Parent
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none
Hashing : AnyConnect-Parent: (1)none
Bytes Tx : 0 Bytes Rx : 0
Group Policy : SSO_LDAP_USERS Tunnel Group : SSO_AD_Split-tunnel
Login Time : 19:37:28 UTC Thu Jul 20 2023
Duration : 0h:08m:07s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : 0a1f7c490000600064b98cf8
Security Grp : none Tunnel Zone : 0
從LDAP調試片段 debug ldap 255
,可以觀察到,以下專案的LDAP屬性對映中沒有匹配項: NOACCESS
使用者和,帶有調試 webvpn
那個 NO_ACCESS
已選擇組策略,因此使用者無法進行身份驗證。
[32] LDAP Search:
Base DN = [DC=example,DC=com]
Filter = [userPrincipalName=noaccess_user@example.com]
Scope = [SUBTREE]
User Policy Access-Lists: user_acl[0] = NULL user_acl[1] = NULL tunnel policy attributes: 1 Filter-Id(11) 8 "" 2 Session-Timeout(27) 4 0 3 Idle-Timeout(28) 4 30 4 Simultaneous-Logins(4098) 4 0 5 Primary-DNS(4101) 4 IP: 0.0.0.0 6 Secondary-DNS(4102) 4 IP: 0.0.0.0 7 Primary-WINS(4103) 4 IP: 0.0.0.0 8 Secondary-WINS(4104) 4 IP: 0.0.0.0 9 Tunnelling-Protocol(4107) 4 96 10 Banner(4111) 0 0x000014e304401888 ** Unresolved Attribute ** 11 Group-Policy(4121) 9
"NO_ACCESS"
疑難排解
大多數SAML故障排除都涉及配置錯誤,可以通過檢查SAML配置或調試來發現該錯誤:
debug webvpn saml 255
debug webvpn 255
debug webvpn anyconnect 255
debug webvpn session 255
debug webvpn request 255
對於LDAP對映授權問題,有用的調試包括:
debug aaa common 255
debug ldap 255
相關資訊