이 문서에서는 자격 증명을 기반으로 사용자에게 올바른 VPN 정책을 자동으로 할당하도록 LDAP(Lightweight Directory Access Protocol) 특성 맵을 구성하는 방법에 대해 설명합니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
LDAP는 IP(Internet Protocol) 네트워크를 통해 분산된 디렉토리 정보 서비스에 액세스하고 이를 유지 관리하는 개방적이고 벤더에 중립적인 업계 표준 애플리케이션 프로토콜입니다. 디렉토리 서비스는 네트워크 전체에서 사용자, 시스템, 네트워크, 서비스 및 애플리케이션에 대한 정보를 공유할 수 있도록 하기 때문에 인트라넷 및 인터넷 애플리케이션 개발에 중요한 역할을 합니다.
관리자는 자주 VPN 사용자에게 서로 다른 액세스 권한 또는 WebVPN 콘텐츠를 제공하려고 합니다. 이 작업은 VPN 서버에서 서로 다른 VPN 정책을 구성하고 자격 증명에 따라 각 사용자에게 이러한 정책 집합을 할당하여 완료할 수 있습니다. 수동으로 완료할 수 있지만 디렉터리 서비스로 프로세스를 자동화하는 것이 더 효율적입니다. LDAP를 사용하여 사용자에게 그룹 정책을 할당하려면 VPN 헤드엔드에서 인식하는 특성에 AD(Active Directory) 특성 "memberOf"와 같은 LDAP 특성을 매핑하는 맵을 구성해야 합니다.
ASA(Adaptive Security Appliance)에서는 LDAP 특성 맵이 있는 다른 사용자에게 서로 다른 그룹 정책을 할당하여 정기적으로 이를 달성할 수 있습니다(ASA Use of LDAP Attribute Maps Configuration Example 참조).
Cisco IOS에서는 WebVPN 컨텍스트에서 서로 다른 정책 그룹의 컨피그레이션 및 LDAP 특성 맵을 사용하여 사용자가 어떤 정책 그룹을 할당할지 결정할 수 있습니다. Cisco IOS 헤드엔드에서 "memberOf" AD 특성은 AAA(Authentication, Authorization, and Accounting) 특성 신청자 그룹에 매핑됩니다. 기본 특성 매핑에 대한 자세한 내용은 Dynamic Attribute Maps Configuration Example을 사용하여 IOS 디바이스의 LDAP를 참조하십시오. 그러나 SSL VPN에는 두 가지 관련 AAA 특성 매핑이 있습니다.
AAA 특성 이름 | SSL VPN 관련성 |
user-vpn-group | WebVPN 컨텍스트에 정의된 정책 그룹에 매핑 |
webvpn 컨텍스트 | 실제 WebVPN 컨텍스트 자체에 매핑 |
따라서 LDAP 특성 맵은 관련 LDAP 특성을 이 두 AAA 특성 중 하나에 매핑해야 합니다.
이 컨피그레이션에서는 LDAP 특성 맵을 사용하여 AAA 특성 user-vpn-group에 "memberOf" LDAP 특성을 매핑합니다.
인증 방법 및 AAA 서버 그룹을 구성합니다.
aaa new-model
!
!
aaa group server ldap AD
server DC1
!
aaa authentication login default local
aaa authentication login vpn local
aaa authentication login AD group ldap local
aaa authorization exec default local
LDAP 특성 맵을 구성합니다.
ldap attribute-map ADMAP
map type memberOf user-vpn-group
이전 LDAP 특성 맵을 참조하는 LDAP 서버를 구성합니다.
ldap server DC1
ipv4 192.168.0.136
attribute map ADMAP
bind authenticate root-dn CN=Cisco Systems,OU=Service Accounts,DC=chillsthrills,
DC=local password 7 <removed>
base-dn DC=chillsthrills,DC=local
WebVPN 서버 역할을 하도록 라우터를 구성합니다. 이 예에서는 "memberOf" 특성이 "user-vpn-group" 특성에 매핑되므로 단일 WebVPN 컨텍스트가 "NOACCESS" 정책을 포함하는 여러 정책 그룹으로 구성됩니다. 이 정책 그룹은 일치하는 "memberOf" 값이 없는 사용자를 위한 것입니다.
ip local pool vpnpool 192.168.200.200 192.168.200.250
!
webvpn gateway gateway_1
hostname vpn
ip address 173.11.196.220 port 443
http-redirect port 80
ssl trustpoint TP-self-signed-2564112419
logging enable
inservice
!
webvpn install svc flash:/webvpn/anyconnect-win-2.5.2019-k9.pkg sequence 1
!
webvpn install csd flash:/webvpn/sdesktop.pkg
!
webvpn context VPNACCESS
secondary-color white
title-color #669999
text-color black
ssl authenticate verify all
!
policy group NOACCESS
banner "Access denied per user group restrictions in Active Directory.
Please contact your system administrator or manager to request access."
hide-url-bar
timeout idle 60
timeout session 1
!
!
policy group CN=T,OU=MyBusiness,DC=chillsthrills,DC=local
functions svc-enabled
banner "special access-granted"
svc address-pool "vpnpool"
svc default-domain "cisco.com"
svc keep-client-installed
svc rekey method new-tunnel
svc split dns "cisco.com"
svc split include 192.168.0.0 255.255.255.0
svc split include 10.10.10.0 255.255.255.0
svc split include 172.16.254.0 255.255.255.0
svc dns-server primary 192.168.0.136
default-group-policy NOACCESS
aaa authentication list AD
gateway gateway_1
inservice
!
end
사용자가 "memberOf" 여러 그룹인 경우 라우터에서 첫 번째 "memberOf" 값을 사용합니다.
이 컨피그레이션에서는 "memberOf 값"에 대해 LDAP 서버가 푸시한 전체 문자열에 대해 정책 그룹 이름이 정확히 일치해야 합니다. 일반적으로 관리자는 VPNACCESS와 같은 정책 그룹에 대해 더 짧고 더 적절한 이름을 사용하지만, 코스메틱 문제와는 별도로 이 이름은 더 큰 문제로 이어질 수 있습니다. "memberOf" 특성 문자열이 이 예제에서 사용된 것보다 훨씬 큰 경우가 많습니다. 예를 들어 다음 디버그 메시지를 고려하십시오.
004090: Aug 23 08:26:57.235 PCTime: %SSLVPN-6-INVALID_RADIUS_CONFIGURATION:
Radius configured group policy "CN=VPNACCESS,OU=SecurityGroups,OU=MyBusiness,
DC=chillsthrills,DC=local" does not exist
AD에서 받은 문자열은 다음과 같습니다.
"CN=VPNACCESS,OU=SecurityGroups,OU=MyBusiness,DC=chillsthrills,DC=local"
그러나 정의된 정책 그룹이 없으므로 관리자가 그룹 정책을 구성하려고 하면 Cisco IOS는 정책 그룹 이름의 문자 수에 제한이 있으므로 오류가 발생합니다.
HOURTR1(config-webvpn-context)#webvpn context VPNACCESS
HOURTR1(config-webvpn-context)# policy group "CN=VPNACCESS,OU=Security Groups,
OU=MyBusiness,DC=chillsthrills,DC=local"
Error: group policy name cannot exceed 63 characters
이러한 경우 두 가지 해결 방법이 있습니다.
"department"와 같은 다른 LDAP 특성을 사용합니다.
다음 LDAP 특성 맵을 고려하십시오.
ldap attribute-map ADMAP
map type department user-vpn-group
이 경우 사용자에 대한 부서 특성 값을 VPNACCESS와 같은 값으로 설정할 수 있으며 WebVPN 컨피그레이션이 약간 더 간단합니다.
webvpn context VPNACCESS
secondary-color white
title-color #669999
text-color black
ssl authenticate verify all
!
policy group NOACCESS
banner "Access denied per user group restrictions in Active Directory.
Please contact your system administrator or manager to request access."
!
policy group VPNACCESS
functions svc-enabled
banner "access-granted"
svc address-pool "vpnpool"
svc default-domain "cisco.com"
svc keep-client-installed
svc rekey method new-tunnel
svc split dns "cisco.com"
svc split include 192.168.0.0 255.255.255.0
svc split include 10.10.10.0 255.255.255.0
svc split include 172.16.254.0 255.255.255.0
svc dns-server primary 192.168.0.136
default-group-policy NOACCESS
aaa authentication list AD
gateway gateway_1
inservice
!
end
LDAP 특성 맵에서 DN-to-string 키워드를 사용합니다.
이전 해결 방법이 적합하지 않을 경우 관리자는 LDAP 특성 맵에서 dn-to-string 키워드를 사용하여 "memberOf" 문자열에서 CN(Common Name) 값만 추출할 수 있습니다. 이 시나리오에서 LDAP 특성 맵은 다음과 같습니다.
ldap attribute-map ADMAP
map type memberOf user-vpn-group format dn-to-string
WebVPN 구성은 다음과 같습니다.
webvpn context VPNACCESS
secondary-color white
title-color #669999
text-color black
ssl authenticate verify all
!
policy group NOACCESS
banner "Access denied per user group restrictions in Active Directory.
Please contact your system administrator or manager to request access."
!
policy group VPNACCESS
functions svc-enabled
banner "access-granted"
svc address-pool "vpnpool"
svc default-domain "cisco.com"
svc keep-client-installed
svc rekey method new-tunnel
svc split dns "cisco.com"
svc split include 192.168.0.0 255.255.255.0
svc split include 10.10.10.0 255.255.255.0
svc split include 172.16.254.0 255.255.255.0
svc dns-server primary 192.168.0.136
default-group-policy NOACCESS
aaa authentication list AD
gateway gateway_1
inservice
!
end
이 섹션을 사용하여 컨피그레이션이 제대로 작동하는지 확인합니다.
Output Interpreter 도구(등록된 고객만 해당)는 특정 show 명령을 지원합니다. show 명령 출력의 분석을 보려면 [출력 인터프리터 도구]를 사용합니다.
이 섹션에서는 컨피그레이션 문제를 해결하는 데 사용할 수 있는 정보를 제공합니다.
LDAP 특성 매핑을 트러블슈팅하려면 다음 디버그를 활성화합니다.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
07-Jan-2015 |
최초 릴리스 |