简介
本文档介绍使用Azure身份提供程序对思科ASA上的多个隧道组进行SAML身份验证。
先决条件
要求
建议掌握下列主题的相关知识:
- 自适应安全设备 (ASA)
- 安全断言标记语言(SAML)
- 安全套接字层(SSL)证书
- Microsoft Azure
使用的组件
本文档中的信息基于以下软件和硬件版本:
- ASA 9.2(1)1
- 使用SAML 2.0的Microsoft Azure Entra ID
- 思科安全客户端5.1.7.80
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
Microsoft Azure可以支持同一实体ID的多个应用程序。每个应用(映射到不同的隧道组)都需要一个唯一的证书。在ASA上,由于IdP证书功能,可将多个隧道组配置为使用不同的覆盖身份提供程序(IdP)保护应用。此功能允许管理员使用每个隧道组的特定IdP证书覆盖单点登录(SSO)服务器对象中的主IdP证书。此功能自9.17.1版本开始在ASA上引入。
SAML SP启动的SSO
当最终用户通过访问ASA启动登录时,登录行为将继续:
1.当VPN用户访问或选择启用SAML的隧道组时,最终用户将被重定向到SAML IdP进行身份验证。系统将提示用户,除非用户直接访问group-url,在这种情况下,重定向是静默的。
2. ASA生成SAML身份验证请求,浏览器将其重定向至SAML IdP。
3. IdP质询最终用户凭证和最终用户登录。输入的凭证必须满足IdP身份验证配置。
4. IdP响应将发送回浏览器并发布到ASA登录URL。ASA验证响应以完成登录。
配置
从图库添加Cisco Secure Firewall - Secure Client
在本示例中,为ASA上配置的两个隧道组添加了Microsoft Entra SSO与Cisco Secure Firewall - Secure Client on Azure:
要配置思科安全防火墙 — 安全客户端与Microsoft Entra ID的集成,您需要从库向托管SaaS应用列表中添加Cisco安全防火墙 — 安全客户端。
注意:这些步骤用于将思科安全防火墙 — 安全客户端添加到第一个隧道组SAML1的库中。
步骤1.登录到Azure门户并选择Microsoft Entra ID。
Microsoft Entra ID
步骤2.如图所示,选择Enterprise Applications。
企业应用
步骤3.现在选择New Application,如下图所示。
新应用程序
第4步:在Add from the gallery部分中,在搜索框中键入Cisco Secure Firewall - Secure Client,从结果面板中选择Cisco Secure Firewall - Secure Client,然后添加应用。
思科安全防火墙 — 安全客户端
步骤5.选择Single Sign-on菜单项,如下图所示。
设置单一登录
第6步:在“选择单点登录方法”页上,选择SAML。
SAML
第7步:在“使用SAML设置单点登录”页面,单击Basic SAML Configuration的编辑/笔图标以编辑设置。
基本Saml配置
第8步:在“使用SAML设置单点登录”页面上,输入以下字段的值:
a.在“标识符”(Identifiertext)文本框中,使用以下模式键入URL:
https://<VPN URL>/saml/sp/metadata/<Tunnel_Group_Name>
b.在“回复URL”(Reply URL)文本框中,使用此模式键入URL:
https://<VPN URL>/+CSCOE+/saml/sp/acs?tgname=<Tunnel_Group_Name> [Tunnel_Group_Name = SAML1]
注意:Tunnel_Group_Name区分大小写,并且值不能包含点“。” 和斜杠“/”。
第9步:在使用SAML设置单点登录页上,在SAML签名证书部分中,查找证书(Base64),然后选择下载以下载证书文件并将其保存在计算机上。
证书(Base64)下载
注意:此下载的证书已导入到ASA信任点AzureAD-AC-SAML1。有关详细信息,请参阅“ASA配置”部分。
步骤10.在设置Cisco安全防火墙 — 安全客户端部分上,根据您的要求复制适当的URL。这些URL用于在ASA上配置SSO服务器对象。
- Microsoft Entra Identifier — 这是VPN配置中的SAML idp。
- 登录URL — 这是URL登录。
- 注销URL — 这是URL注销。
SSO URL
注意:重复前面的配置步骤,以便为第二个隧道组从库添加Cisco Secure Firewall - Secure Client应用。本例中的第二个隧道组名称为SAML2。
注意:为第二个隧道组(SAML 2)添加Cisco Secure Firewall - Secure Client应用时,第8步中下载的azure证书将导入到ASA信任点AzureAD-AC-SAML2。
将Azure AD用户分配给应用
在本节中,Test1和Test2被启用以使用Azure SSO,因为您授予了对Cisco安全客户端应用的访问权限。
对于第一个IdP应用程序:
步骤1.在第一个IdP应用程序概述页中,依次选择Users and groups(用户和组),然后选择Add user(添加用户)。
用户和组
第2步:在“添加分配”对话框中选择“用户”或“组”。
添加作业1
步骤3.在Add Assignment对话框中,点击Assign按钮。
Test1用户分配
对于第二个IdP应用程序:
如这些图像所示,对第二个Idp应用程序重复上述步骤。
添加作业2
Test2用户分配
Test1用户分配:
测试1用户分配
Test2用户分配:
测试2用户分配
通过CLI配置ASA
步骤1.创建信任点并导入SAML证书。
配置两个信任点并为每个隧道组导入各自的SAML证书。
config t
crypto ca trustpoint AzureAD-AC-SAML1
revocation-check none
no id-usage
enrollment terminal
no ca-check
crypto ca authenticate AzureAD-AC-SAML1
-----BEGIN CERTIFICATE-----
…
PEM Certificate Text you downloaded from AzureAD goes here
…
-----END CERTIFICATE-----
quit
!
!
crypto ca trustpoint AzureAD-AC-SAML2
revocation-check none
no id-usage
enrollment terminal
no ca-check
crypto ca authenticate AzureAD-AC-SAML2
-----BEGIN CERTIFICATE-----
…
PEM Certificate Text you downloaded from AzureAD goes here
…
-----END CERTIFICATE-----
quit
步骤2.配置SAML IdP。
使用这些命令调配SAML IdP设置。
webvpn
saml idp https://xxx.windows.net/xxxxxxxxxxxxx/ - [Azure AD Identifier]
url sign-in https://login.microsoftonline.com/xxxxxxxxxxxxxxxxxxxxxx/saml2 - [Login URL]
url sign-out https://login.microsoftonline.com/xxxxxxxxxxxxxxxxxxxxxx/saml2 – [Logout URL]
trustpoint idp AzureAD-AC-SAML1 - [IdP Trustpoint]
trustpoint sp ASA-EXTERNAL-CERT - [SP Trustpoint]
no force re-authentication
no signature
base-url https://asa.example.com
步骤3.将SAML身份验证应用于第一个VPN隧道组。
使用AzureAD-AC-SAML1 IdP信任点配置SAML1隧道组。
tunnel-group SAML1 webvpn-attributes
authentication saml
group-alias SAML1 enable
saml identity-provider https://xxx.windows.net/xxxxxxxxxxxxx/
saml idp-trustpoint AzureAD-AC-SAML1 <---- Overrides the primary IDP certificate in the Single Sign-On (SSO) Server object
步骤4.将SAML身份验证应用到第二个VPN隧道组。
使用AzureAD-AC-SAML2 IdP信任点配置SAML2隧道组。
tunnel-group SAML2 webvpn-attributes
authentication saml
group-alias SAML2 enable
saml identity-provider https://xxx.windows.net/xxxxxxxxxxxxx/
saml idp-trustpoint AzureAD-AC-SAML2 <---- Overrides the primary IDP certificate in the Single Sign-On (SSO) Server object
步骤 5:保存配置。
write memory
注意:如果更改IdP配置,则需要从隧道组删除SAML身份提供程序配置,然后重新应用该配置以使更改生效。
验证
使用SAML身份验证测试AnyConnect。
步骤1.连接到您的VPN URL并在Azure AD详细信息中输入您的日志。
步骤2.(可选)批准登录请求。
步骤3. AnyConnect已连接。
故障排除
大多数SAML故障排除都涉及配置错误,在检查SAML配置或运行调试时可以发现该错误。debug webvpn saml 255可用于解决大多数问题,但是,在此调试不提供有用信息的情况下,可以运行其他调试:
debug webvpn saml 255
debug webvpn 255
debug webvpn session 255
debug webvpn request 255
相关信息