簡介
本文檔介紹使用輕量級目錄訪問協定(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. 輸入Admin可分辨名稱(DN)的路徑以及LDAP伺服器的管理員密碼。
4. 點選Test Bind Server以測試從ISE訪問LDAP伺服器的能力。
配置目錄組織、組和屬性
1. 根據LDAP伺服器中儲存的使用者的層次結構,選擇正確的使用者組織組。
啟用LDAP使用者的管理存取
完成以下步驟以啟用密碼型驗證。
- 導航到ISE > Administration > System > Admin Access > Authentication。
- 在Authentication Method頁籤下,選擇Password-Based 選項。
- 從Identity Source下拉選單中選擇LDAP。
- 按一下Save Changes。
將管理組對映到LDAP組
在ISE上組態管理組並將其對映到AD組。這允許配置的使用者根據基於組成員資格的管理員配置的RBAC許可權的授權策略獲得訪問許可權。
設定功能表存取許可權
1. 導航到ISE >管理>系統>授權>許可權>選單訪問
2. 定義admin使用者訪問ISE GUI的選單訪問許可權。您可以配置要在GUI上顯示或隱藏的子實體,以便使用者進行自定義訪問,從而僅在需要時執行一組操作。
3. 按一下Save。
設定資料存取許可權
1. 導航到ISE >管理>系統>授權>許可權>資料存取。
2. 定義admin使用者對ISE GUI上的身份組具有完全訪問許可權或只讀訪問許可權的資料存取許可權。
3. 按一下儲存。
設定管理組的RBAC許可權
- 導航到ISE > Administration > System > Admin Access > Authorization > Policy。
- 從右側的操作下拉選單中,選擇插入新策略以增加新策略。
- 建立一個名為LDAP_RBAC_policy的新規則,該規則使用「啟用AD的管理訪問許可權」部分中定義的管理組對其進行對映,並為其分配選單訪問和資料存取的許可權。
- 按一下Save Changes,GUI的右下角將顯示對所儲存更改的確認。
注意:超級管理員使用者無法修改系統生成的預設RBAC策略和許可權。為此,您必須根據自己的需要建立具有必要許可權的新RBAC策略,並將這些策略對映到管理組。
注意:只有預設超級管理員組中的管理員使用者才能修改或刪除其他管理員使用者。即使是使用「超級管理員組」的「選單」和「資料存取許可權」克隆的「管理員組」的一部分外部對映使用者,也無法修改或刪除管理員使用者。
驗證
使用本節內容,確認您的組態是否正常運作。
使用AD憑證訪問ISE
完成以下步驟以使用AD憑證訪問ISE:
- 打開ISE GUI以使用LDAP使用者登入。
- 從Identity Source下拉選單中選擇LDAP_Server。
- 從LDAP資料庫中輸入UPN和密碼,然後登入。
在「稽核報告」中確認管理員登入的登入。導航到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