简介
本文档介绍大规模园区部署,其功能和安全实施不受影响。思科的终端安全解决方案身份服务引擎(ISE)通过与外部身份源集成来满足此要求。
对于拥有50多个地理位置、4000多个不同用户简档和60万个或更多端点的大型网络,传统IBN解决方案需要从不同的角度加以考虑 — 不仅仅是功能,不管它是否随所有功能一起扩展。在当今传统的大规模网络中,基于意图的网络(IBN)解决方案需要更多地关注可扩展性和易管理性,而不仅仅是其功能。
先决条件
要求
Cisco 建议您了解以下主题:
- Dot1x/MAB身份验证
- 思科身份服务引擎(CiscoISE)
- 思科TrustSec(CTS)
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 思科身份服务引擎(ISE)2.6版补丁2和3.0版
- Windows Active Directory(AD)Server 2008版本2
- Microsoft SQL Server 2012
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果网络处于活动状态,请确保了解任何配置的潜在影响。
背景信息
在基于身份的网络(IBN)解决方案中,基本元素是请求方、身份验证器和身份验证(AAA)服务器。请求方是终端上的代理,当面临网络访问的质询时提供凭证。身份验证器或NAS(网络接入服务器)是接入层,包括网络交换机和WLC,这些交换机和WLC将凭证传送到AAA服务器。身份验证服务器根据ID存储验证用户身份验证请求,并使用access-accept或access-reject进行授权。ID存储可以位于AAA服务器内或外部专用服务器上。
此图显示了基本IBN元素。

RADIUS是基于用户数据报协议(UDP)的协议,身份验证和授权结合在一起。在思科企业园区的IBN解决方案中,ISE的策略服务节点(PSN)角色充当AAA服务器,根据企业ID库对终端进行身份验证,并根据条件进行授权。
在思科ISE中,身份验证和授权策略配置为满足这些要求。身份验证策略包括有线或无线介质类型以及用于用户验证的EAP协议。授权策略包括定义各种端点匹配条件的条件以及网络访问结果(可以是VLAN或可下载ACL或安全组标记(SGT))。 这些是ISE可配置的策略的最大扩展号。
此表显示思科ISE策略扩展。
属性 |
比例编号 |
身份验证规则的最大数量 |
1000(策略集模式) |
授权规则的最大数量 |
3,000(策略集模式) 具有3200个授权配置文件 |
技术趋势
分段已成为当今企业网络的关键安全元素之一,无需实际边缘网络。允许终端在内部网络和外部网络之间漫游。分段有助于遏制特定网段上扩展到整个网络的任何安全攻击。当今的软件定义访问(SDA)解决方案在Cisco ISE的TrustSec的帮助下,提供了一种基于客户的业务模式进行分段的方法,以避免对网络元素(如VLAN或IP子网)的依赖。
问题
对于具有500个以上不同终端配置文件的大型企业网络,ISE策略配置会增加授权策略的数量,使其达到无法管理的点。即使Cisco ISE支持专用授权条件以满足如此数量的用户配置文件,管理员管理这些数量的策略也是一个挑战。
此外,客户可能需要通用授权策略而不是专用策略来避免管理开销,并且根据其标准对终端进行不同的网络访问。
例如,假设企业网络使用Active Directory(AD)作为真相来源,而终端的独特优势是AD中的属性之一。在这种情况下,传统的策略配置方式为每个唯一终端配置文件拥有更多授权策略。
在此方法中,在domain.com下使用AD属性来区分每个终端配置文件。因此,需要配置专用授权策略。
此表显示传统授权策略。
ABC策略 |
如果AnyConnect等于用户和计算机均已通过 和 如果AD-Group等于domain.com/groups/ABC 然后 SGT:C2S-ABC和VLAN:1021 |
DEF策略 |
如果AnyConnect等于用户和计算机均已通过 和 如果AD-Group等于domain.com/groups/DEF 然后 SGT:C2S-DEF和VLAN:1022 |
GHI策略 |
如果AnyConnect等于用户和计算机均已通过 和 如果AD-Group等于domain.com/groups/GHI 然后 SGT:C2S-GHI和VLAN:1023 |
XYZ策略 |
如果AnyConnect等于用户和计算机均已通过 和 如果AD-Group等于domain.com/groups/XYZ 然后 SGT:C2S-XYZ和VLAN:1024 |
建议方案
为规避思科ISE上支持的最大可扩展授权策略数量的漏洞,推荐的解决方案是使用外部数据库来授权每个终端,其授权结果从其属性中提取。例如,如果AD用作外部数据库进行授权,则任何未使用的用户属性(如部门或引脚代码)都可以引用,以提供与SGT或VLAN映射的授权结果。
这是通过将Cisco ISE与外部数据库集成或在配置了自定义属性的ISE的内部数据库内实现的。本节介绍这2种场景的部署:
注意:在这两个选项中,DB包含DOT1X终端的用户ID,但不包含密码。数据库仅用作授权点。身份验证仍然可以是客户的ID存储,在大多数情况下,该存储驻留在Active Directory(AD)服务器上。
使用外部数据库进行配置
思科ISE与外部数据库集成,用于终端凭证验证:
此表显示已验证外部身份源。
外部身份源 |
操作系统/版本 |
Active Directory |
Microsoft Windows Active Directory 2003 |
— |
Microsoft Windows Active Directory 2003 R2 |
— |
Microsoft Windows Active Directory 2008 |
— |
Microsoft Windows Active Directory 2008 R2 |
— |
Microsoft Windows Active Directory 2012 |
— |
Microsoft Windows Active Directory 2012 R2 |
— |
Microsoft Windows Active Directory 2016 |
— |
LDAP服务器 |
SunONE LDAP目录服务器 |
V 5.2 |
OpenLDAP目录服务器 |
2.4.23 版 |
任何符合LDAP v3的服务器 |
— |
令牌服务器 |
RSA ACE/服务器 |
6.x系列 |
RSA身份验证管理器 |
7.x和8.x系列 |
任何符合RADIUS RFC 2865的令牌服务器 |
— |
安全断言标记语言(SAML)单点登录(SSO) |
Microsoft Azure |
— |
Oracle Access Manager(OAM) |
11.1.2.2.0 版 |
Oracle身份联合(OIF) |
11.1.1.2.0 版 |
PingFederate服务器 |
6.10.0.4 版 |
PingOne云 |
— |
安全身份验证 |
8.1.1 |
任何符合SAMLv2的身份提供程序 |
— |
开放数据库连接(ODBC)身份源 |
Microsoft SQL Server(MS SQL) |
Microsoft SQL Server 2012 |
Oracle |
企业版版本12.1.0.2.0 |
PostgreSQL |
9 |
Sybase |
16 |
MySQL |
6.3 |
社交登录(用于访客用户帐户) |
Facebook |
— |
ODBC示例配置
此配置在Microsoft SQL上完成,以构建解决方案:
步骤1.打开SQL Server Management Studio(“开始”菜单> Microsoft SQL Server)以创建数据库:

步骤2.提供名称并创建数据库。

步骤3.使用所需列创建新表,作为终端获得授权的参数。

步骤4.创建一个过程以检查用户名是否存在。

步骤5.创建从表中获取属性(SGT)的过程。

在本文档中,思科ISE与Microsoft SQL解决方案集成,以满足大型企业网络的授权规模要求。
解决方案工作流程(ISE 2.7及更低版本)
在此解决方案中,思科ISE与Active Directory(AD)和Microsoft SQL集成。AD用作身份验证ID存储和MS SQL进行授权。在身份验证过程中,网络接入设备(NAD)将用户凭证转发到PSN - IBN解决方案中的AAA服务器。PSN使用Active Directory ID存储验证终端凭证并验证用户。授权策略引用MS SQL DB来获取授权结果,如SGT/VLAN,其中用户ID用作参考。


优势
此解决方案具有以下优势,使其灵活:
- 思科ISE可以利用外部数据库提供的所有可能的附加功能。
- 此解决方案不依赖于任何Cisco ISE扩展限制。
缺点
此解决方案有以下缺点:
- 需要使用其他编程来使用终端凭证填充外部数据库。
- 如果外部数据库不像PSN那样在本地存在,则此解决方案取决于WAN,这使其成为终端AAA数据流中的第3个故障点。
- 维护外部数据库进程和过程需要更多知识。
- 必须考虑手动将user-id配置到DB所导致的错误。
外部数据库示例配置
在本文档中,Microsoft SQL显示为用作授权点的外部数据库。
步骤1.在Cisco ISE中从Administration > External Identity Source > ODBC菜单创建ODBC身份库并测试连接。


步骤2.导航至ODBC页上的存储过程选项卡,以在Cisco ISE中配置创建的过程。

步骤3.从ODBC ID源获取用户ID的属性以进行验证。


步骤4.创建授权配置文件并对其进行配置。在Cisco ISE中,转到Policy > Results > Authorization profile > Advance Attributes Settings,并选择Cisco:cisco-av-pair属性。选择值作为<ODBC数据库名称>:sgt,然后保存它。

步骤5.创建授权策略并配置。在Cisco ISE中,导航到Policy > Policy sets > Authorization Policy > Add。将条件置为Identity Source是SQL服务器。选择结果配置文件作为之前创建的授权配置文件。

步骤6.一旦用户经过身份验证和授权,日志中应包含分配给用户进行验证的sgt。

解决方案工作流程(发布ISE 2.7)
在ISE 2.7之后,可以从ODBC(如Vlan、SGT、ACL)获取授权属性,这些属性可以在策略中使用。
在此解决方案中,思科ISE与Microsoft SQL集成。MS SQL用作身份验证和授权的ID存储。从终端向PSN提供凭证时,它会根据MS SQL DB验证凭证。授权策略引用MS SQL DB来获取授权结果,例如SGT/VLAN,其中用户ID用作参考。

外部数据库示例配置
按照本文档前面提供的步骤创建MS SQL DB,同时使用用户名、密码、VLAN ID和SGT。
步骤1.在Cisco ISE中从Administration > External Identity Source > ODBC菜单创建ODBC身份库并测试连接。

步骤2.导航至ODBC页上的存储过程选项卡,以在Cisco ISE中配置创建的过程。

步骤3.从ODBC ID源获取用户ID的属性以进行验证。


步骤4.创建授权配置文件并对其进行配置。在Cisco ISE中,转到Policy > Results > Authorization profile > Advance Attributes Settings,并选择属性Cisco:cisco-av-pair。选择值<name of ODBC database>:sgt。在Common Tasks下,选择ID/Name为<name of ODBC database>:VLAN并保存

步骤5.创建授权策略并配置。在Cisco ISE中,导航到Policy > Policy sets > Authorization Policy > Add。将条件置为Identity Source是SQL服务器。选择结果配置文件作为之前创建的授权配置文件。

使用内部数据库
思科ISE本身有一个内置数据库,可用于授权用户ID。
解决方案工作流程
在此解决方案中,思科ISE的内部数据库用作授权点,而Active Directory(AD)继续作为身份验证源。终端的用户ID包含在思科ISE数据库中,以及返回授权结果(如SGT或VLAN)的自定义属性。向PSN提供终端凭证时,它会使用Active Directory ID存储检查终端凭证的有效性并验证终端。授权策略引用ISE数据库来获取授权结果,例如SGT/VLAN,其用户ID用作参考。

优势
此解决方案具有以下优势,使其成为灵活的解决方案:
- Cisco ISE数据库是内置解决方案,因此与外部数据库解决方案不同,它没有第3个故障点。
- 由于思科ISE集群确保所有角色之间的实时同步,因此PSN具有从PAN实时推送的所有用户ID和自定义属性,因此不存在广域网依赖性。
- 思科ISE可以利用外部数据库提供的所有可能的附加功能。
- 此解决方案不依赖于任何Cisco ISE扩展限制。
缺点
此解决方案有以下缺点:
- 思科ISE数据库可以预扣的用户ID的最大数量为300,000。
- 必须考虑手动将user-id配置到DB所导致的错误。
内部数据库示例配置
每个用户的VLAN和SGT可以配置给内部ID存储中具有自定义用户属性的任何用户。
步骤1.创建新用户自定义属性以表示各个用户的VLAN和SGT值。导航到管理>身份管理>设置>用户自定义属性。创建新用户自定义属性,如下表所示。
此处显示ISE数据库表和自定义属性。
属性名称 |
数据类型 |
参数(长度) |
默认值 |
vlan |
字符串 |
100 |
C2S(默认VLAN名称) |
sgt |
字符串 |
100 |
cts:security-group-tag=0003-0(默认SGT值) |
- 在此场景中,VLAN值表示SGT的VLAN名称,sgt值表示SGT的思科av-pair属性(十六进制)。

步骤2.使用用户自定义属性创建授权配置文件以暗含各个用户的vlan和sgt值。导航至策略>策略元素>结果>授权>授权配置文件>添加。在高级属性设置下添加以下属性。
此表显示内部用户的授权配置文件。
属性 |
价值 |
思科:cisco-av-pair |
内部用户:sgt |
RADIUS:隧道专用组ID |
内部用户:vlan |
RADIUS:隧道介质类型 |
802 |
Radius:隧道类型 |
VLAN |
如图所示,对于内部用户,配置文件Internal_user配置了SGT和Vlan,分别配置为InternalUser:sgt和InternalUser:vlan。

步骤3.创建授权策略,导航到策略>策略集>策略–1 >授权。使用以下条件创建授权策略并将其映射到相应的授权配置文件。
此表显示内部用户的授权策略。
规则名称 |
条件 |
结果授权配置文件 |
Internal_User_Authz |
如果网络访问.EapChainingResults等于用户和计算机都成功 |
内部用户 |
Machine_Only_Authz |
如果MyAD.ExternalGroup等于gdc.security.com/Users/Domain计算机 |
允许访问 |

步骤4.使用自定义属性在csv模板中创建批量用户身份,其中包含用户详细信息及其各自的自定义属性。 导入csv,方法是导航至管理>身份管理>身份>用户>导入>选择文件>导入。

此图显示了一个具有自定义属性详细信息的示例用户。选择用户并点击编辑以查看映射到相应用户的自定义属性详细信息。

步骤 5:验证实时日志:


选中Result部分,以验证Vlan 和SGT 属性是否作为Access-Accept的一部分发送。

结论
此解决方案允许一些大型企业客户根据其需求进行扩展。添加/删除用户ID时需要谨慎。如果触发错误,可能导致正版用户未经授权访问,反之亦然。
相关信息
通过ODBC配置Cisco ISE的MS SQL:
https://www.cisco.com/c/en/us/support/docs/security/identity-services-engine-21/200544-Configure-ISE-2-1-with-MS-SQL-using-ODBC.html
词汇表
AAA |
身份验证授权记帐 |
AD |
Active Directory |
身份验证 |
身份验证 |
授权 |
授权 |
DB |
数据库 |
DOT1X |
802.1X |
伊本 |
基于身份的网络 |
ID |
身份数据库 |
ISE |
身份服务引擎 |
MnT |
监控和故障排除 |
MsSQL |
Microsoft SQL |
ODBC |
开放式数据库连接 |
PAN |
策略管理节点 |
PSN |
策略服务节点 |
SGT |
安全组标记 |
SQL |
结构化查询语言 |
VLAN |
虚拟 LAN |
WAN |
广域网 |