소개
이 문서에서는 Cisco ISE(Identity Services Engine) 관리 GUI에 대한 관리 액세스를 위해 LDAP(Lightweight Directory Access Protocol)를 외부 ID 저장소로 사용하기 위한 컨피그레이션 예를 설명합니다.
사전 요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco ISE 버전 3.0 컨피그레이션
- LDAP
요구 사항
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco ISE 버전 3.0
- Windows Server 2016
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
설정
이 섹션을 사용하여 LDAP 기반 사용자가 ISE GUI에 대한 관리/사용자 지정 기반 액세스를 얻도록 구성할 수 있습니다. 아래 컨피그레이션에서는 LDAP 프로토콜 쿼리를 사용하여 Active Directory에서 사용자를 가져와 인증을 수행합니다.
LDAP에 ISE 조인
- Administration(관리) > Identity Management(ID 관리) > External Identity Sources(외부 ID 소스) > Active Directory > LDAP로 이동합니다.
- General(일반) 탭에서 LDAP의 이름을 입력하고 스키마 Active Directory를 선택합니다.
연결 유형 및 LDAP 구성 구성
1. ISE > Administration > Identity Management > External Identity Sources > LDAP로 이동합니다.
2. 포트 389(LDAP)/636(LDAP-Secure)과 함께 기본 LDAP 서버의 호스트 이름을 구성합니다.
3. LDAP 서버의 관리자 비밀번호와 함께 관리자 DN(고유 이름)의 경로를 입력합니다.
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에서 Admin Group(관리 그룹)을 구성하고 이를 AD 그룹에 매핑합니다. 이렇게 하면 구성된 사용자가 그룹 구성원 자격을 기반으로 한 관리자에 대해 구성된 RBAC 권한을 기반으로 하는 권한 부여 정책에 따라 액세스 권한을 얻을 수 있습니다.
메뉴 액세스에 대한 권한 설정
1. ISE > Administration > System > Authorization > Permissions > Menu access로 이동합니다
2. 관리자 사용자가 ISE GUI에 액세스할 수 있도록 메뉴 액세스를 정의합니다. 사용자가 필요한 경우 일련의 작업만 수행할 수 있도록 사용자 지정 액세스를 위해 GUI에 표시하거나 숨기도록 하위 엔터티를 구성할 수 있습니다.
3. 저장을 클릭합니다.
데이터 액세스에 대한 권한 설정
1. ISE > Administration > System > Authorization > Permissions > Data access로 이동합니다.
2. ISE GUI의 ID 그룹에 대한 전체 액세스 또는 읽기 전용 액세스 권한을 가질 관리자 사용자의 데이터 액세스를 정의합니다.
3. 저장을 클릭합니다.
관리자 그룹에 대한 RBAC 권한 설정
- ISE > Administration > System > Admin Access > Authorization > Policy로 이동합니다.
- 오른쪽의 Actions 드롭다운 메뉴에서 Insert New Policy를 선택하여 새 정책을 추가합니다.
- LDAP_RBAC_policy라는 새 규칙을 생성하고 Enable Administrative Access for AD(AD에 대한 관리 액세스 활성화) 섹션에 정의된 Admin Group(관리 그룹)에 매핑하고 메뉴 액세스 및 데이터 액세스에 대한 권한을 할당합니다.
- Save Changes(변경 사항 저장)를 클릭하면 GUI의 오른쪽 아래 모서리에 저장된 변경 사항이 표시됩니다.
참고: 수퍼 관리자 사용자는 기본 시스템 생성 RBAC 정책 및 권한을 수정할 수 없습니다. 이렇게 하려면 필요에 따라 필요한 권한으로 새 RBAC 정책을 생성하고 이러한 정책을 관리자 그룹에 매핑해야 합니다.
참고: 기본 수퍼 관리자 그룹의 관리자 사용자만 다른 관리자 사용자를 수정하거나 삭제할 수 있습니다. 수퍼 관리자 그룹의 메뉴 및 데이터 액세스 권한으로 복제된 관리자 그룹의 일부인 외부 매핑 사용자라도 관리자 사용자를 수정하거나 삭제할 수 없습니다.
다음을 확인합니다.
구성이 올바르게 작동하는지 확인하려면 이 섹션을 활용하십시오.
AD 자격 증명으로 ISE 액세스
AD 자격 증명으로 ISE에 액세스하려면 다음 단계를 완료하십시오.
- LDAP 사용자로 로그인하려면 ISE GUI를 엽니다.
- Identity Source 드롭다운 메뉴에서 LDAP_Server를 선택합니다.
- LDAP 데이터베이스의 UPN 및 비밀번호를 입력하고 로그인합니다.
감사 보고서에서 관리자 로그인에 대한 로그인을 확인합니다. ISE > Operations > Reports > Audit > Administrators Logins로 이동합니다.
이 컨피그레이션이 제대로 작동하는지 확인하려면 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