简介
本文档介绍如何使用Microsoft Entra ID分配组策略,以对Cisco安全防火墙上的Cisco安全客户端进行SAML身份验证。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科安全客户端AnyConnect VPN
- Cisco Firepower威胁防御(FTD)或思科安全防火墙ASA远程访问VPN和单点登录(SSO)服务器对象配置
- Microsoft Entra ID身份提供程序(IdP)配置
使用的组件
本指南中的信息基于以下硬件和软件版本:
- FTD版本7.6
- FMC版本7.6
- MS Entra ID SAML IdP
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
SAML(Security Assertion Markup Language,安全声明标记语言)是一个基于XML的框架,用于在安全域之间交换身份验证和授权数据。它在用户、服务提供商(SP)和身份提供者(IdP)之间创建信任圈,允许用户一次性登录多个服务。SAML可用于思科安全客户端连接到ASA和FTD VPN头端的远程访问VPN身份验证,其中ASA或FTD是信任圈中的SP部分。
在本文档中,Microsoft Entra ID/Azure用作IdP。但是,也可以使用其他IdP分配组策略,因为它基于可以在SAML断言中发送的标准属性。
注意:请注意,每个用户必须仅属于MS Entra ID上的一个用户组,因为发送到ASA或FTD的多个SAML属性可能会导致组策略分配问题,详见Cisco bug ID CSCwm33613
配置
FMC SAML配置
在FMC上,导航到对象>对象管理> AAA服务器>单点登录服务器。从IdP获取实体ID、SSO URL、注销URL和身份提供程序证书,请参阅Microsoft Entra ID 部分中的步骤6。基本URL和服务提供商证书特定于要向其添加配置的FTD。
FMC SSO对象配置
FMC RAVPN隧道组配置
在FMC上,导航到设备(Devices)> VPN >远程访问(Remote Access)>连接配置文件(Connection Profile),并选择或创建正在配置的FTD的VPN策略。选择后,创建与以下内容类似的连接配置文件:
FMC连接配置文件地址分配
FMC连接配置文件AAA配置
FMC RAVPN组策略配置
1.您必须为Entra ID上的每个用户组创建具有所需选项的组策略,并为要配置的FTD添加RAVPN策略。这可以通过导航到设备> VPN >远程访问>高级并从左侧选择组策略,然后单击右上方的+ 以添加组策略来完成。
FMC添加组策略
2.点击弹出窗口中的+,打开对话框以创建新的组策略。填写所需选项并保存。
注意:如果已经创建了所需的组策略,则可以跳过此步骤并继续步骤3
创建新组策略
组策略选项
3.在左侧列表中选择新创建的组策略,然后单击Add按钮,然后单击Ok以保存列表。
添加组策略
FTD元数据
将配置部署到FTD后,导航到FTD CLI并执行命令“show saml metadata <tunnel group name>”并收集FTD Entity ID和ACS URL。
FTD# show saml metadata SAMLtest
SP Metadata
-----------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EntityDescriptor entityID="https://vpn.example.net/saml/sp/metadata/SAMLtest" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
MIIFWzCCBEOgAwIBAgITRwAAAAgZ9Nmfv5mpJQAAAAAACDANBgkqhkiG9w0BAQsF
ADBJMRMwEQYKCZImiZPyLGQBGRYDY29tMRYwFAYKCZImiZPyLGQBGRYGcnRwdnBu
MRowGAYDVQQDExFydHB2cG4tV0lOQVVUSC1DQTAeFw0yNTAzMjUxNzU5NDZaFw0y
NzAzMjUxNzU5NDZaMDAxDzANBgNVBAoTBlJUUFZQTjEdMBsGA1UEAxMUcnRwdnBu
LWZ0ZC5jaXNjby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5
5B0tH9RIjvG0MxhpDT3/BpDEFfTcVE2w2fxu5m8gZFTeeezyF5B93rWx+N26V8JE
sB5I1KLTGRj8b9TK6L357cdbgr692Wl952TLFB3XC43gpe0fnN3+Uas/HJ3IudsF
N+QPC9FO4LE88attuGuVMquV+10DRPA06a6QNwkehB0Un7XzTNepJ02JQtxdNR2t
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
<AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://vpn.example.net/+CSCOE+/saml/sp/acs?tgname=SAMLtest" />
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://vpn.example.net/+CSCOE+/saml/sp/logout"/><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://vpn.example.net/+CSCOE+/saml/sp/logout"/></SPSSODescriptor>
</EntityDescriptor>
Microsoft Entra ID
1.在Microsoft Azure门户上,从左侧的菜单中选择Microsoft Entra ID。
Microsoft Entra ID
2.选择“企业应用”。
企业应用
3.选择“新建应用程序”。
注意:如果已经为FTD RAVPN配置配置了企业应用,请跳过后续步骤,继续执行步骤7。
MS Entra ID企业应用程序
4.选择Featured Applications下的Cisco Secure Firewall - Secure Client(以前称为AnyConnect)身份验证。为应用程序指定一个名称,然后选择创建。
MS Entra ID思科安全防火墙安全客户端(以前称为AnyConnect)身份验证应用
5.在应用程序中,选择用户和组,并将所需的用户名或组名分配给应用程序。
用户和组
6.选择单点登录 — > SAML,并检索本指南的FMC SAML配置部分的登录URL、Microsoft Entra标识符和注销URL。
单一登录
IdP URL
7.使用从FTD元数据中检索到的标识符(实体ID)和应答(ACS)URL配置基本SAML配置并保存。
基本SAML配置
8.选择属性和领款申请的编辑,然后单击添加新领款申请
属性和索赔
9.新领款申请名称必须是cisco_group_policy。
管理领款
10.展开索赔条件一节。选择User type和Scope Groups,然后为Source选择Attribute,然后在Value字段中从FTD配置中添加正确的组策略名称,然后单击Save。
注意:此示例中使用的FTD中的自定义组策略名称是在本指南的FMC RAVPN组策略配置部分中创建的名为SAMLtest-GP的组策略。此值必须替换为FTD中与IdP上的每个用户组对应的组策略名称。
MS Entra ID声明条件
验证
FTD
要验证所需的组策略,请验证“show vpn-sessiondb anyconnect”的输出。
FTD# show vpn-sessiondb anyconnect
Session Type: AnyConnect
Username : RTPVPNtest
Index : 7110
Assigned IP : 192.168.55.3 Public IP : 10.26.162.189
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA256
Bytes Tx : 105817 Bytes Rx : 63694
Group Policy : SAMLtest-GP Tunnel Group : SAMLtest
Login Time : 16:54:17 UTC Fri May 9 2025
Duration : 0h:11m:19s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : ac127ca101bc6000681e3339
Security Grp : none Tunnel Zone : 0
要验证IdP是否正在发送所需声明,请在连接到VPN时收集“debug webvpn saml 255”的输出。分析调试中的断言输出,并将属性部分与IdP上的配置进行比较。
<Attribute Name="cisco_group_policy">
<AttributeValue>SAMLtest-GP</AttributeValue>
</Attribute>
故障排除
firepower# show run webvpn
firepower# show run tunnel-group
firepower# show crypto ca certificate
firepower# debug webvpn saml 255
firepower# debug webvpn 255
firepower# debug aaa authorization
相关信息
思科技术支持和下载
ASA配置指南
FMC/FDM配置指南