简介
本文档介绍如何通过FDM在CSF上使用Azure作为IdP为远程访问VPN的多个连接配置文件配置SAML身份验证。
先决条件
要求
Cisco 建议您具有以下主题的基础知识:
- 安全套接字层(SSL)证书
- OpenSSL
- 远程访问虚拟专用网络(RAVPN)
- 思科安全防火墙设备管理器(FDM)
- 安全断言标记语言(SAML)
- Microsoft Azure
使用的组件
本文档中的信息基于以下软件版本:
- OpenSSL
- 思科安全防火墙(CSF)版本7.4.1
- 思科安全防火墙设备管理器版本7.4.1
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
SAML(或安全断言标记语言)是在各方(特别是身份提供程序(IdP)和服务提供程序(SP))之间交换身份验证和授权信息的开放标准。SAML身份验证用于远程访问VPN (RAVPN)连接和其他各种应用因其众多优势而日益流行。在Firepower管理中心(FMC)上,由于Connection Profile配置菜单中的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.使用此命令基于
.conf
文件中指定的配置,使用SHA-256算法生成新的2048位RSA私钥和自签名证书,有效期为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.现在请选择Import certificate选项。
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#