简介
本文档介绍使用轻量级目录访问协议(LDAP)作为外部身份库对思科身份服务引擎(ISE)管理GUI进行管理访问的配置示例。
先决条件
Cisco 建议您了解以下主题:
要求
本文档中的信息基于以下软件和硬件版本:
- 思科ISE版本3.0
- Windows Server 2016
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
配置
使用部分配置基于LDAP的用户以获得ISE GUI的管理/基于自定义的访问。以下配置使用LDAP协议查询从Active directory获取用户以执行身份验证。
将ISE加入LDAP
- 导航到管理>身份管理>外部身份源> Active Directory > LDAP。
- 在General选项卡下,输入LDAP的名称并选择架构Active Directory。
配置连接类型和LDAP配置
1. 导航到ISE >管理>身份管理>外部身份源> LDAP。
2. 配置主LDAP服务器的主机名以及端口389 (LDAP)/636 (LDAP-Secure)。
3. 输入管理员可分辨名称(DN)的路径以及LDAP服务器的管理员密码。
4. 点击测试绑定服务器(Test Bind Server)以测试从ISE访问LDAP服务器的能力。
配置目录组织、组和属性
1. 根据LDAP服务器中存储的用户的层次结构,选择正确的用户组织组。
启用LDAP用户的管理访问
要启用基于密码的身份验证,请完成以下步骤。
- 导航到ISE >管理>系统>管理员访问权限>身份验证。
- 在身份验证方法选项卡下,选择基于密码的选项。
- 从Identity Source下拉菜单中选择LDAP。
- 点击Save Changes。
将管理员组映射到LDAP组
在ISE上配置管理组并将其映射到AD组。这允许配置的用户根据基于组成员资格的管理员配置的RBAC权限根据授权策略获得访问权限。
设置菜单访问的权限
1. 导航到ISE >管理>系统>授权>权限>菜单访问
2. 定义管理员用户访问ISE GUI的菜单访问权限。您可以配置要在GUI中显示或隐藏的子实体,以便用户进行自定义访问,从而仅在需要时执行一组操作。
3. 单击Save。
设置数据访问的权限
1. 导航到ISE >管理>System >授权>权限>数据访问。
2. 定义admin用户的数据访问权限,使其对ISE GUI上的身份组具有完全访问权限或只读访问权限。
3. 单击Save。
设置管理员组的RBAC权限
- 导航到ISE >管理>System >管理员访问权限>授权>策略。
- 从右侧的操作下拉菜单中,选择插入新策略以添加新策略。
- 创建一个名为LDAP_RBAC_policy的新规则,使用在Enable Administrative Access for AD(启用AD的管理访问权限)部分中定义的管理员组对其进行映射,并为其分配菜单访问和数据访问的权限。
- 单击Save Changes,GUI的右下角将显示对已保存更改的确认。
注意:超级管理员用户无法修改默认系统生成的RBAC策略和权限。为此,您必须创建新的RBAC策略,并根据您的需要拥有必要的权限,并将这些策略映射到管理员组。
注意:只有默认超级管理员组中的管理员用户才能修改或删除其他管理员用户。即使外部映射用户是使用Super Admin组的Menu和Data Access权限克隆的Admin组的一部分,也不能修改或删除管理员用户。
验证
使用本部分可确认配置能否正常运行。
使用AD凭证访问ISE
完成以下步骤以使用AD凭证访问ISE:
- 打开ISE GUI以使用LDAP用户登录。
- 从Identity Source下拉菜单中选择LDAP_Server。
- 从LDAP数据库中输入UPN和密码,然后登录。
在Audit Reports中验证管理员登录的登录。导航到ISE >操作>报告>审核>管理员登录。
要确认此配置正常工作,请验证ISE GUI右上角的身份验证用户名。定义对菜单具有有限访问权限的基于自定义的访问,如下所示:
故障排除
本部分提供了可用于对配置进行故障排除的信息。
一般信息
要排除RBAC进程故障,必须在ISE管理节点的调试中启用以下ISE组件:
RBAC -当我们尝试登录时,这会打印RBAC相关的消息(ise-psc.log)
access-filter -用于打印资源过滤器访问权限(ise-psc.log)
runtime-AAA -打印登录和LDAP交互消息的日志(prrt-server.log)
数据包捕获分析
日志分析
检验prrt-server.log
PAPAuthenticator,2020-10-10 08:54:00,621,DEBUG,0x7f852bee3700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,validateEvent: Username is [admin2@anshsinh.local] bIsMachine is [0] isUtf8Valid is [1],PAPAuthenticator.cpp:86
IdentitySequence,2020-10-10 08:54:00,627,DEBUG,0x7f852c4e9700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,******* Authen IDStoreName:LDAP_Server,IdentitySequenceWorkflow.cpp:377
LDAPIDStore,2020-10-10 08:54:00,628,DEBUG,0x7f852c4e9700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,Send event to LDAP_Server_924OqzxSbv_199_Primary server,LDAPIDStore.h:205
Server,2020-10-10 08:54:00,634,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapServer::onAcquireConnectionResponse: succeeded to acquire connection,LdapServer.cpp:724
Connection,2020-10-10 08:54:00,634,DEBUG,0x7f85293b8700,LdapConnectionContext::sendSearchRequest(id = 1221): base = dc=anshsinh,dc=local, filter = (&(objectclass=Person)(userPrincipalName=admin2@anshsinh.local)),LdapConnectionContext.cpp:516
Server,2020-10-10 08:54:00,635,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapSubjectSearchAssistant::processAttributes: found CN=admin2,CN=Users,DC=anshsinh,DC=local entry matching admin2@anshsinh.local subject,LdapSubjectSearchAssistant.cpp:268
Server,2020-10-10 08:54:00,635,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapSubjectSearchAssistant::processGroupAttr: attr = memberOf, value = CN=employee,CN=Users,DC=anshsinh,DC=local,LdapSubjectSearchAssistant.cpp:389
Server,2020-10-10 08:54:00,636,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapServer::onAcquireConnectionResponse: succeeded to acquire connection,LdapServer.cpp:724
Server,2020-10-10 08:54:00,636,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapServer::authenticate: user = admin2@anshsinh.local, dn = CN=admin2,CN=Users,DC=anshsinh,DC=local,LdapServer.cpp:352
Connection,2020-10-10 08:54:00,636,DEBUG,0x7f85293b8700,LdapConnectionContext::sendBindRequest(id = 1223): dn = CN=admin2,CN=Users,DC=anshsinh,DC=local,LdapConnectionContext.cpp:490
Server,2020-10-10 08:54:00,640,DEBUG,0x7f85293b8700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LdapServer::handleAuthenticateSuccess: authentication of admin2@anshsinh.local user succeeded,LdapServer.cpp:474
LDAPIDStore,2020-10-10 08:54:00,641,DEBUG,0x7f852c6eb700,cntx=0002480105,sesn=ise30/389444264/3178,CPMSessionID=ise30:userauth286,user=admin2@anshsinh.local,LDAPIDStore::onResponse: LdapOperationStatus=AuthenticationSucceeded -> AuthenticationResult=Passed,LDAPIDStore.cpp:336
验证ise-psc.log
通过这些日志,您可以验证尝试访问网络设备资源时用于admin2用户的RBAC策略。
2020-10-10 08:54:24,474 DEBUG [admin-http-pool51][] com.cisco.cpm.rbacfilter.AccessUtil -:admin2@anshsinh.local:::- For admin2@anshsinh.local on /NetworkDevicesLPInputAction.do -- ACCESS ALLOWED BY MATCHING administration_networkresources_devices
2020-10-10 08:54:24,524 INFO [admin-http-pool51][] cpm.admin.ac.actions.NetworkDevicesLPInputAction -:admin2@anshsinh.local:::- In NetworkDevicesLPInputAction container method
2020-10-10 08:54:24,524 DEBUG [admin-http-pool51][] cisco.ise.rbac.authorization.RBACAuthorization -:admin2@anshsinh.local:::- :::::::::Inside RBACAuthorization.getDataEntityDecision:::::: userName admin2@anshsinh.local dataType RBAC_NETWORK_DEVICE_GROUP permission ALL
2020-10-10 08:54:24,526 DEBUG [admin-http-pool51][] ise.rbac.evaluator.impl.DataPermissionEvaluatorImpl -:admin2@anshsinh.local:::- In DataPermissionEvaluator:hasPermission
2020-10-10 08:54:24,526 DEBUG [admin-http-pool51][] ise.rbac.evaluator.impl.DataPermissionEvaluatorImpl -:admin2@anshsinh.local:::- Data access being evaluated:LDAP_Data_Access
2020-10-10 08:54:24,528 DEBUG [admin-http-pool51][] cisco.ise.rbac.authorization.RBACAuthorization -:admin2@anshsinh.local:::- :::::::::Inside RBACAuthorization.getDataEntityDecision:::::: permission retrieved false
2020-10-10 08:54:24,528 INFO [admin-http-pool51][] cpm.admin.ac.actions.NetworkDevicesLPInputAction -:admin2@anshsinh.local:::- Finished with rbac execution
2020-10-10 08:54:24,534 INFO [admin-http-pool51][] cisco.cpm.admin.license.TrustSecLicensingUIFilter -:admin2@anshsinh.local:::- Should TrustSec be visible :true
2020-10-10 08:54:24,593 DEBUG [admin-http-pool51][] cisco.ise.rbac.authorization.RBACAuthorization -:admin2@anshsinh.local:::- :::::::::Inside RBACAuthorization.getPermittedNDG:::::: userName admin2@anshsinh.local
2020-10-10 08:54:24,595 DEBUG [admin-http-pool51][] ise.rbac.evaluator.impl.DataPermissionEvaluatorImpl -:admin2@anshsinh.local:::- In DataPermissionEvaluator:getPermittedNDGMap
2020-10-10 08:54:24,597 DEBUG [admin-http-pool51][] ise.rbac.evaluator.impl.DataPermissionEvaluatorImpl -:admin2@anshsinh.local:::- processing data Access :LDAP_Data_Access
2020-10-10 08:54:24,604 INFO [admin-http-pool51][] cisco.cpm.admin.license.TrustSecLicensingUIFilter -:admin2@anshsinh.local:::- Should TrustSec be visible :true