목차/09. Identity Sharing과 PDP·PEP

09Identity Sharing과 PDP·PEPIdentity Sharing과 PDP·PEP

여러 게이트웨이가 줄지어 선 환경에서, 사용자가 게이트웨이를 지날 때마다 다시 인증하고 게이트웨이마다 따로 Active Directory를 조회하면 부하가 빠르게 커집니다. Identity Sharing(신원 공유)한 게이트웨이가 취득한 신원을 다른 게이트웨이와 나누어 이 문제를 풉니다. 이 장은 신원 공유의 전체 그림 — 공유의 두 축인 PDPPEP 가 무엇인지, 어떻게 설정하고 어떤 방식으로 신원을 주고받는지, 같은 IP에 서로 다른 신원이 들어올 때 어느 것을 살릴지 결정하는 Identity Conciliation(신원 조정), 그리고 R82에서 기본으로 켜진 Identity Cache Mode 까지를 빠짐없이 풀어 둡니다. 명령어 전체 구문은 자매 장 명령줄·참조에서 다룹니다.

Identity Sharing — 신원 공유

공유를 안 하면 무엇이 문제인가

Identity Sharing이 없으면 다음과 같은 비효율이 그대로 남습니다.

  • Identity Agent오직 한 대의 Identity Awareness 게이트웨이에만 연결됩니다.
  • 트래픽이 둘 이상의 Identity Awareness 게이트웨이를 거쳐 흐를 때, 사용자에게 게이트웨이마다(예: Captive Portal에서) 다시 인증을 요구해야 할 수 있습니다.
  • 게이트웨이마다 각자 신원 소스(예: AD Query)에 연결 되어 있어, 게이트웨이가 저마다 Active Directory에 질의하고, 저마다 그룹 멤버십을 조회하며, 저마다 Access Role 객체를 계산합니다. 이 모든 중복 작업이 게이트웨이 부하를 키웁니다.

Identity Sharing 소개 — PDP와 PEP

해결의 핵심은 역할을 나누는 것입니다. Policy Decision Point(PDP) 로 구성된 게이트웨이 한 대가 신원 정보를 얻어 Policy Enforcement Point(PEP) 로 구성된 다른 게이트웨이들과 공유합니다. 이렇게 하면 오직 한 게이트웨이만 그룹 멤버십을 조회하고 Access Role 객체를 계산 하므로, 신원 소스와 User Directory 양쪽의 부하가 함께 줄어듭니다.

PDP — Policy Decision Point(정책 결정 지점)

  • 지정된 신원 소스에서 사용자/컴퓨터 신원을 가져 옵니다.
  • 그 신원을 다른 Identity Awareness 게이트웨이와 공유 합니다.

PEP — Policy Enforcement Point(정책 집행 지점)

  • Rule Base 처리 과정에 해당하는 Access Role을 제공 하여, 정책에 정의된 절차대로 집행 합니다.
  • Identity Sharing을 통해 신원을 수신 합니다.
  • 필요하면 사용자를 Identity Awareness Captive Portal로 redirect 할 수 있습니다.

지원하는 구성

Identity Sharing은 다음과 같은 조합을 지원합니다.

  • 한 PDP가 여러 PEP에게 신원을 공유합니다.
  • 한 PEP가 여러 PDP로부터 신원을 수신합니다.
  • PDP와 PEP 프로세스가 서로 다른 게이트웨이에서 돌면, 그 연결에는 Smart-Pull Identity Sharing 을 씁니다.
  • PDP와 PEP 프로세스가 같은 게이트웨이에서 돌면, 그 연결에는 Push Identity Sharing 을 씁니다.

Identity Server가 Identity Sharing을 위해 Identity Awareness 게이트웨이에 연결할 때는 그 게이트웨이 객체의 IP 주소 를 사용합니다.

Identity Sharing 설정 절차

설정은 모두 SmartConsole에서 게이트웨이 객체의 Identity Awareness > Identity Sharing 페이지에서 합니다.

  1. Identity Awareness 게이트웨이들을 관리하는 Management Server / Multi-Domain Server에 대해 SmartConsole 을 엽니다.
  2. 신원을 공유하는 게이트웨이(Policy Decision Point) 를 설정합니다.
    • a. 왼쪽 탐색 패널에서 Gateways & Servers 를 클릭합니다.
    • b. 해당 Security Gateway 객체를 엽니다.
    • c. 왼쪽 트리에서 Identity Awareness > Identity Sharing 을 클릭합니다.
    • d. Share local identities with other gateways 를 클릭(체크)합니다.
    • e. OK 를 클릭합니다.
  3. 신원을 수신하는 게이트웨이(Policy Enforcement Point) 를 설정합니다.
    • a. 해당 Security Gateway 객체를 엽니다.
    • b. 왼쪽 트리에서 Identity Awareness > Identity Sharing 을 클릭합니다.
    • c. Get identities from other gateways 를 클릭(체크)합니다.
    • d. Get identities from other gateways 아래, 표 오른쪽의 더하기(+) 버튼을 클릭합니다. PDP 게이트웨이 목록이 나타납니다.
    • e. 목록에서 해당 PDP 게이트웨이를 선택합니다.
  • f. OK 를 클릭합니다.
  • 이 게이트웨이들 모두에 Access Control 정책을 설치 합니다.

Smart-Pull Identity Sharing — 필요할 때만 당겨오기

대규모 환경에서는 모든 PEP가 모든 PDP의 신원을 다 가질 필요가 없 습니다. 예를 들어 사용자가 적은 소규모 지점이라면, 본사 PDP가 가진 신원을 전부 보관할 까닭이 없습니다.

Smart-Pull 을 구성하면, 신원은 PEP가 PDP에게 요청(pull)할 때만 PEP로 전달됩니다. 덕분에 PEP의 저장 공간을 아끼고, PDP와 PEP 사이에 불필요한 트랜잭션이 오가는 것을 피합니다.

Smart-Pull Identity Sharing은 세 단계로 동작합니다.

1단계 — 신원 취득(Identity Acquisition)

  • PDP가 신원을 얻어 자신의 저장소(repository)에 보관 합니다.
  • PDP는 사용자가 식별된 네트워크(Class C 단위) 를 해당 PEP들에게 알립니다.

2단계 — 서브넷 등록(Sub-Network Registration)

사용자가 PEP를 통해 연결을 시작합니다. 정책에 신원 요소가 반드시 필요하다면, PEP는 자신의 로컬 데이터베이스에서 그 신원을 먼저 찾 습니다.

  • PEP가 로컬 DB에서 신원을 찾으면:
    • a. PEP는 PDP에게 더 작은 네트워크(서브넷 마스크 255.255.255.240) 에 대한 알림을 받도록 등록합니다.
    • b. PDP는 등록한 PEP들에게 255.255.255.240 마스크 네트워크의 현재 알려진 모든 신원 을 게시합니다.
  • PEP가 로컬 DB에서 신원을 못 찾으면: PEP는 해당 Class C 네트워크를 아는 PDP 를 찾아 신원을 구합니다.

3단계 — 신원 전파(Identity Propagation)

  • a. PDP가, 이미 등록된 255.255.255.240 마스크 네트워크 안의 IP 주소를 가진 사용자의 신원을 얻습니다.
  • b. PDP는 그 신원을 등록된 PEP들에게 즉시 게시 합니다.

Push Identity Sharing — 얻는 즉시 밀어주기

Push Identity Sharing 에서는 PDP가 신원을 얻는 즉시 그 신원을 PEP에 게시 합니다.

Identity Sharing 모니터링

Identity Sharing이 정상으로 동작하면, PDP와 PEP 사이에는 다음 두 연결이 열려 있습니다.

연결방향포트여는 쪽 / 듣는 쪽나르는 정보
Identity connectionPDP → PEP15105PDP가 PEP로 연결을 엶 / pepd 프로세스가 이 포트에서 들어오는 Identity 연결을 수신신원 정보
Network connectionPEP → PDP28581PEP가 PDP로 연결을 엶 / pdpd 프로세스가 이 포트에서 들어오는 Network 연결을 수신네트워크 정보

PEP가 Push 모드 로 구성되어 있으면, Identity connection은 수신 하지만 Network connection은 보내지 않 습니다.

PDP나 PEP가 클러스터 라면, 모든 멤버가 나가는(outgoing) 연결은 열지만 active 클러스터 멤버만 들어오는(incoming) 연결을 받습니다. 클러스터는 연결에 Virtual IP Address(VIP) 를 사용합니다.

연결 상태 확인 예시

다음 예에서 PDP의 IP는 10.10.10.10, PEP의 IP는 11.11.11.11 입니다.

PDP 게이트웨이(또는 active 클러스터 멤버)에서 연결을 확인하려면:

pdp connections pep

PEP 게이트웨이(또는 active 클러스터 멤버)에서 연결을 확인하려면:

pep show pdp all

pdp connections pep 명령 출력 예시는 다음과 같습니다.

[Expert@MyGW1:0]# pdp connections pep
| Direction | IP            | Port  | Name  | Type           | Status    | Location | IPv6 Supported |
| Incoming  | 172.23.57.237 | 28581 | MyGW2 | Single Gateway | Connected | Remote   | No             |
| Outgoing  | 127.0.0.1     | 15105 | MyGW3 | Single Gateway | Connected | Locally  | No             |
| Outgoing  | 172.23.57.237 | 15105 | MyGW2 | Single Gateway | Connected | Remote   | No             |

pep show pdp all 명령 출력 예시는 다음과 같습니다.

[Expert@MyGW1:0]# pep show pdp all
Command: root->show->pdp->all
| Direction | IP            | ID | Status    | Users | Connect time         |
| Incoming  | 127.0.0.1     | 0  | Connected | 0     | 13Oct2022 20:04:46   |
| Incoming  | 172.23.57.220 | 0  | Connected | 0     | 13Oct2022 9:44:11    |
| Outgoing  | 172.23.57.220 | 0  | Connected | N/A   | 13Oct2022 9:44:09    |

여러 관리 도메인에 걸친 더 정교한 공유는 Identity Broker에서 다룹니다.

PDP — Identity Conciliation과 PDP-Only

PDP Identity Conciliation — 무엇을 푸는가

같은 IP 주소에 대해 서로 다른 신원 정보가 들어오면 어느 것을 진짜로 받아들일지 결정해야 합니다. Policy Decision Point(PDP) 게이트웨이는 이를 위해 PDP Identity Conciliation(신원 조정) 메커니즘을 사용합니다.

Conciliation 동작 세 가지

PDP가 이미 활성 세션을 가진 IP 주소 에 대해 신원 업데이트(사용자 신원 또는 컴퓨터 신원)를 받으면, 다음 중 하나를 수행합니다.

동작설명
Override현재 신원 세션을 삭제하고, 새 신원 세션을 유지 합니다.
Reject새 신원 세션을 거부하고, 기존 신원 세션을 유지 합니다.
Append새 신원 정보를 현재 신원 세션에 추가 합니다.

용어 — 세션의 종류

조정 규칙을 이해하려면 세션이 어디서 왔는지를 먼저 구분해야 합니다.

신원 세션 종류설명
Per-EntityPDP가 사용자 단말의 Identity Agent가 아닌 신원 소스에서 세션을 받은 경우. 즉 AD Query, RADIUS Accounting, Identity Collector, Identity Web API 에서 온 세션입니다.
Per-HostPDP가 사용자 호스트에서 직접 세션을 받은 경우. 즉 사용자 단말용 Identity Agent, Terminal Server용 Identity Agent(MUH), Remote Access VPN client, Captive Portal 에서 온 세션입니다.
같은 관리 도메인 안의 PDP 간PDP가 다음 중 하나로 세션을 받습니다 — Locally(신원 소스에서 직접), 또는 같은 Management Server가 두 게이트웨이(이 Identity Subscriber와 Identity Publisher)를 관리할 때 Identity Broker Publisher로부터.
다른 관리 도메인 사이의 PDP 간("external session")서로 다른 Management Server가 두 게이트웨이를 관리할 때, Identity Broker Publisher로부터 세션을 받습니다.

PDP 세션 파라미터 — 우열을 가르는 기준

기본 동작으로 정해지지 않는 경우, PDP는 다음 세션 파라미터 들을 견주어 어느 세션을 살릴지 결정합니다.

파라미터설명
Office Mode IP Address현재 세션이나 새 세션 중 하나가 Remote Access VPN client에서 온 것이면, PDP는 그 VPN client 세션에 더 높은 우선순위를 줍니다.
Confidence점수가 높은 세션 에 더 높은 우선순위를 줍니다. 신원 소스별 기본 점수는 아래와 같습니다.
Locality더 적은 게이트웨이를 거쳐(hop count가 낮게) 공유된 세션 에 더 높은 우선순위를 줍니다.
Time To Live(TTL)더 최근에 만들어진(timestamp가 더 새로운) 세션 에 더 높은 우선순위를 줍니다. timestamp는 Epoch Time 형식입니다.
Full Session사용자 신원과 컴퓨터 신원을 모두 가진 세션 이, 둘 중 하나만 가진 세션보다 우선합니다.
PDP Preference특정 PDP Identity Publisher에서 받은 세션 에 더 높은 우선순위를 줍니다. 기본값으로는 선호하는 Publisher가 없습니다.

Confidence 의 신원 소스별 기본 점수:

점수신원 소스
40Remote Access VPN client, 또는 Terminal Server용 Identity Agent
30Identity Agent
20Captive Portal
15Identity Web API
10Identity Collector, 또는 RADIUS Accounting
0AD Query, 또는 IFMAP

Locality 의 예시로, 두 세션의 hop count를 비교합니다.

세션 A:
  Identity Source => PDP Identity Publisher(Hop Count = 0)
                  => PDP Identity Subscriber(Hop Count = 1)
  총 Hop Count = 1

세션 B:
  Identity Source => PDP Identity Publisher(Hop Count = 0)
                  => PDP Identity Subscriber/Publisher(Hop Count = 1)
                  => PDP Identity Subscriber(Hop Count = 2)
  총 Hop Count = 2

세션 A의 hop count가 더 낮으므로, PDP는 세션 A에 더 높은 우선순위를 줍니다.

가능한 세션 시나리오

PDP Identity Conciliation은 다음 여섯 가지 시나리오를 지원합니다. 각 시나리오마다 내부 세션 범주(Internal Session Category), 현재/새 세션의 종류, 관리 도메인의 같고 다름, 그리고 적용되는 동작이 정해집니다.

시나리오내부 세션 범주현재 세션새 세션관리 도메인Conciliation 동작
1PerEntityInDomainPer-EntityPer-Entity같음항상 Append
2PerEntityExternalPer-EntityPer-Entity다름세션 파라미터의 구성된 우선순위에 따름
3PerHostInDomainPer-Host 또는 Per-EntityPer-Host같음신원 소스에서 직접 오면 Override, Identity Broker에서 오면 세션 파라미터 우선순위에 따름
4PerHostInDomainPer-HostPer-Entity같음세션 파라미터의 구성된 우선순위에 따름
5PerHostExternalPer-Host 또는 Per-EntityPer-Host다름신원 소스에서 직접 오면 Override, Identity Broker에서 오면 세션 파라미터 우선순위에 따름
6PerHostExternalPer-HostPer-Entity다름세션 파라미터의 구성된 우선순위에 따름

각 시나리오의 세부 사항은 다음과 같습니다.

  • 시나리오 1(PerEntityInDomain) — 두 신원 세션이 모두 Per-Entity이고, 같은 Management Server가 두 PDP를 관리 합니다. 기본 동작은 Append 이며 관리자가 이 동작을 바꿀 수 없 습니다. 세션 파라미터 우선순위는 0-Confidence, 1-Time to Live(TTL), 2-Locality, 3-PDP Preference 입니다.
  • 시나리오 2(PerEntityExternal) — 두 세션이 모두 Per-Entity이지만, 서로 다른 Management Server가 두 PDP를 관리합니다. 우선순위는 0-Locality, 1-Confidence, 2-Time to Live(TTL), 3-PDP Preference 입니다.
  • 시나리오 3(PerHostInDomain) — 현재 세션은 Per-Host 또는 Per-Entity, 새 세션은 Per-Host이며, 같은 Management Server 가 관리합니다. PDP가 신원 소스에서 직접(Identity Broker가 아닌) 세션을 받으면 동작은 Append 이지만, Identity Broker에서 받으면 다음 우선순위에 따릅니다 — 0-Office Mode IP Address, 1-Confidence, 2-Time to Live(TTL), 3-Locality, 4-Full Session, 5-PDP Preference. (위 표의 "직접이면 Override"는 원문 요약 표기이며, 본문 설명은 직접 수신 시 Append입니다.)
  • 시나리오 4(PerHostInDomain) — 현재 세션은 Per-Host, 새 세션은 Per-Entity, 같은 Management Server 가 관리합니다. 우선순위는 0-Office Mode IP Address, 1-Confidence, 2-Time to Live(TTL), 3-Locality, 4-Full Session, 5-PDP Preference 입니다.
  • 시나리오 5(PerHostExternal) — 현재 세션은 Per-Host 또는 Per-Entity, 새 세션은 Per-Host이며, 서로 다른 Management Server 가 관리합니다. 신원 소스에서 직접 받으면 Append, Identity Broker에서 받으면 우선순위 0-Locality, 1-Confidence, 2-Time to Live(TTL), 3-Full Session, 4-PDP Preference 에 따릅니다.
  • 시나리오 6(PerHostExternal) — 현재 세션은 Per-Host, 새 세션은 Per-Entity, 서로 다른 Management Server 가 관리합니다. 우선순위는 0-Locality, 1-Confidence, 2-Time to Live(TTL), 3-Full Session, 4-PDP Preference 입니다.

결정 흐름(Decision Flow)

PDP가 기본 동작을 그대로 적용하지 않는 경우에는, 구성된 세션 파라미터 우선순위를 차례로 살펴 결정합니다.

  1. 게이트웨이가 어떤 세션 시나리오가 적용되는지 판단합니다.
  2. 첫 번째 세션 파라미터 를 기준으로 두 신원 세션을 비교합니다.
    • 현재 세션이 더 높은 우선순위를 얻으면 → 새 세션을 Reject 하기로 결정합니다.
    • 새 세션이 더 높은 우선순위를 얻으면 → 현재 세션을 Override 하기로 결정합니다.
  3. 둘 다 더 높은 우선순위를 얻지 못해 "비기면(tie)", 결정이 날 때까지 다음 세션 파라미터로 넘어가 비교를 이어 갑니다.

결정 예시

예시 1 — 현재 세션은 Identity Collector 신원(Identity Broker 공유로 수신), 새 세션은 RADIUS Accounting 신원(직접 수신), 같은 Management Server가 두 PDP를 관리. → 내부 세션 범주는 PerEntityInDomain 이므로 새 세션을 현재 세션에 Append 합니다.

예시 2 — 현재 세션은 Terminal Server용 Identity Agent 신원(Identity Broker 공유로 수신), 새 세션은 Remote Access VPN client 신원(직접 수신), 같은 Management Server 관리. → 내부 세션 범주는 PerHostInDomain 이며, 현재 세션을 새 세션으로 Override 합니다.

예시 3 — 현재 세션은 Identity Web API(Identity Broker로 수신), 새 세션은 Captive Portal(Identity Broker로 수신), 서로 다른 Management Server 관리. → 내부 세션 범주는 PerHostExternal. 우선순위 목록(Value0-Locality, Value1-Confidence, Value2-TTL, Value3-Full Session, Value4-PDP Preference)에 따라 비교합니다.

  1. 첫 번째 파라미터 Locality(hop count) 비교 — 현재 세션의 hop count가 낮으면 현재가 우선이라 새 세션 Reject, 새 세션의 hop count가 낮으면 현재 세션 Override.
  2. hop count가 같아 비기면(tie) 두 번째 파라미터 Confidence 비교 — Captive Portal 점수(20)가 Identity Web API 점수(15)보다 높으므로, 현재 세션을 새 세션으로 Override 합니다.

PDP Identity Conciliation 구성하기

구성 파일 편집 절차:

  1. Security Gateway / 각 클러스터 멤버 / Scalable Platform Security Group의 명령줄에 접속합니다.
  2. Expert mode 로 로그인합니다.
  3. 현재 구성 파일을 백업합니다.
   cp -v $FWDIR/conf/pdp_session_conciliation.C{,_BKP}
   
  1. 현재 구성 파일을 편집합니다.
   vi $FWDIR/conf/pdp_session_conciliation.C
   
  1. 필요한 변경을 합니다.
  1. 변경을 저장하고 편집기를 빠져나옵니다.
  2. Scalable Platform Security Group이라면 갱신한 파일을 모든 Security Group 멤버에 복사 합니다.
   asg_cp2blades $FWDIR/conf/pdp_session_conciliation.C
   
  1. SmartConsole에서 이 게이트웨이/클러스터 객체에 Access Control 정책을 설치 합니다.

구성 파일의 파라미터

pdp_session_conciliation.C 파일은 몇 개의 섹션으로 나뉩니다.

섹션내용
PDPPreferencesConfig선호하는 PDP Identity Publisher 의 IP 주소와 preference 값. 값이 클수록 우선순위가 높 습니다. 기본값은 127.0.0.1 (0).
ConfidenceConfig세션 상태와 관련된 고급 파라미터(ScorePerAttribute).
ScorePerIdentitySource신원 소스별 점수.
ConciliationConfig가능한 세션 시나리오별 세션 파라미터와 그 우선순위.

ConfidenceConfig > ScorePerAttribute 의 기본값은 모두 0입니다 — :HasLogoutNotification (0), :HasAuthorization (0), :HasAuthentication (0), :HasKeepAlive (0), :HasIpSpoofingDetection (0), :HasRoamingDetection (0), :HasLogout (0).

ScorePerIdentitySource 의 기본 점수:

파라미터점수신원 소스
:portal20Captive Portal
:ida_agent30사용자 단말용 Identity Agent
:vpn40Remote Access VPN client
:adq0AD Query
:ifmap0IFMAP
:muh_agent40Terminal Server용 Identity Agent v1
:radius10RADIUS Accounting
:ida_api15Identity Web API
:idc10Identity Collector
:muh_agent240Terminal Server용 Identity Agent v2

ConciliationConfig 의 시나리오별 기본 우선순위(낮은 번호가 먼저 비교됨):

  :0 (OfficeModeIp)
  :1 (Confidence)
  :2 (Ttl)
  :3 (Locality)
  :4 (FullSession)
  :5 (PdpPreference)

PerEntityInDomain
  :0 (Confidence)
  :1 (Ttl)
  :2 (Locality)
  :3 (PdpPreference)

PerHostExternal
  :0 (Locality)
  :1 (Confidence)
  :2 (Ttl)
  :3 (FullSession)
  :4 (PdpPreference)

PerEntityExternal
  :0 (Locality)
  :1 (Confidence)
  :2 (Ttl)
  :3 (PdpPreference)

구성 파일 예시 1 — Identity Collector PDP를 선호하기

환경 안의 모든 게이트웨이가 같은 관리 도메인 에 있습니다. 한 PDP Publisher는 Identity Collector 정보를 공유하고, 다른 PDP Publisher는 Terminal Server용 Identity Agent 정보를 공유합니다. 관리자는 Identity Collector를 보내는 PDP Publisher를 선호 하고 싶습니다.

해당 내부 세션 범주는 PerHostInDomain 입니다. 기본값으로는 Identity Agent 세션을 보낸 PDP Publisher가 Confidence 우선순위가 더 높아 그쪽 세션이 남습니다. Identity Collector PDP Publisher를 선호하려면 PDP 게이트웨이의 $FWDIR/conf/pdp_session_conciliation.C 파일을 다음처럼 바꿉니다.

  1. PerHostInDomain 의 순서를 바꾸어 (PdpPreference):0 에 놓고, 나머지 파라미터의 위치를 한 칸씩 뒤로 미룹니다.
   :PerHostInDomain (
     :0 (PdpPreference)
     :1 (OfficeModeIp)
     :2 (Confidence)
     :3 (Ttl)
     :4 (Locality)
     :5 (FullSession)
   )
   
  1. PDPPreferencesConfig 하위 섹션에서, Identity Collector를 보내는 PDP Publisher의 점수를 다른 PDP Publisher(Terminal Server용 Identity Agent)보다 높게 설정합니다.
  2. 정책을 설치합니다.

구성 파일 예시 2 — 같은 단말의 VPN과 Identity Agent flapping 막기

같은 사용자 단말에 Remote Access VPNIdentity Agent 가 함께 있을 때를 구성하는 예입니다. 이렇게 해 두면 사용자가 Remote Access VPN으로 로그인할 때 PDP가 식별할 수 있고, 단말에 Identity Agent가 설치되어 있어도 PDP가 이전 연결을 끊지 않 습니다. 이 구성이 없으면 Identity Agent와 Remote Access VPN 사이에서 신원이 flapping(요동) 하여, 서로 10~15분마다 상대를 로그오프 시킵니다.

PDP 게이트웨이의 $FWDIR/conf/pdp_session_conciliation.C 파일을 다음처럼 바꿉니다.

  1. PerHostInDomain 섹션에서 — a. (Confidence):0 위치에, b. (OfficeModeIP):1 위치에 놓습니다.
  2. ScorePerIdentitySource 섹션에서 — a. ida_agent 점수를 vpn 점수보다 높게 올립니다.
  1. 파일의 변경을 저장합니다.
  2. SmartConsole에서 정책을 설치합니다.
  3. Security Gateway / 각 클러스터 멤버 / Security Group에서 pdpd 데몬을 재시작 합니다.
   fw kill pdpd
   

PDP-Only 모드 — 집행 없이 신원만 다루기

Identity Awareness는 두 가지 주요 프로세스로 이루어집니다.

  1. PDP(Policy Decision Point)신원 취득(Identity Acquisition) 로직 을 처리하고 여러 신원 소스의 종착점 역할을 합니다. User Directory에 그룹 멤버십을 질의하고 관련 Access Role을 맞추어 인증·인가를 책임 집니다. 또 신원을 구성된 집행 지점(PEP)이나 Identity Broker로 다른 PDP에 전파합니다.
  2. PEP(Policy Enforcement Point)신원 기반 집행 로직 을 돌립니다. 구성에 따라 로컬/원격 PDP에서 신원과 그에 맞는 Access Role을 배웁니다.

대규모 Identity Awareness 배포에서는 오직 신원 취득·전파 로직만 돌리는 전용 Gaia 장비 를 둡니다. 이런 장비는 트래픽을 집행하지 않으므로, 신원 기반 집행 로직을 굳이 돌릴 필요가 없습니다. PEP 프로세스는 다음과 같은 추가 자원을 소비 합니다 — 메모리 소비, CPU 소비, 커널의 Identity Awareness 데이터베이스 접근, 로컬 PEP 프로세스와 신원을 나누려고 PDP 프로세스에서 도는 중복 로직.

해결책 — 신원을 취득·전파하기만 하는 Identity Awareness 게이트웨이에 PDP-Only 모드 를 켜면 자원 사용을 줄일 수 있습니다. 이 모드에서는 PDP 게이트웨이가 PEPD 프로세스를 돌리지 않 습니다. 그 결과 메모리·CPU 소비가 최소화되고 자원 활용이 더 효율적이 됩니다.

PDP-Only 모드 켜기/끄기

PDP-Only 모드를 켜거나 끄려면, 관리자가 Management Server에서 해당 Management API를 호출해야 합니다. 변경을 적용하려면 Access Control 정책 설치가 필요 합니다.

활성화/비활성화 예시 명령:

mgmt_cli set simple-gateway name <Name> identity-awareness-settings.identity-based-enforcement off

기능이 켜졌는지 꺼졌는지 확인하려면:

mgmt_cli show simple-gateway name <Name> identity-awareness-settings.identity-based-enforcement
파라미터설명
simple-gateway nameSingle Security Gateway 객체의 이름을 지정합니다.
simple-cluster name클러스터 객체의 이름을 지정합니다.
legacy-virtual-system name(VSX의 경우) 구성할 VSX 객체의 이름을 지정합니다.
<Name>실제 Security Gateway 객체 이름을 넣는 자리입니다.
`identity-awareness-settings.identity-based-enforcement {on \off}`on신원 기반 집행을 켭니다(PDP-Only 비활성). off신원 기반 집행을 끕니다(PDP-Only 활성).

PEP — Identity Conciliation

Policy Enforcement Point(PEP) 게이트웨이는 PEP Identity Conciliation 메커니즘을 사용합니다.

PEP Conciliation 동작

PEP가 이미 활성 세션을 가진 IP 주소 에 대해 신원 업데이트(사용자 신원 또는 컴퓨터 신원)를 받으면, 다음 중 하나를 수행합니다. PDP와 달리 PEP에는 Append 가 없고 두 동작만 있습니다.

동작설명
Override현재 신원 세션을 삭제하고, 새 신원 세션을 유지 합니다.
Reject새 신원 세션을 거부하고, 기존 신원 세션을 유지 합니다.

PEP 기본 구성

기본적으로 PEP Identity Conciliation은 Confidence(신뢰도 점수)를 기준 으로 결정합니다. 점수가 높은 세션에 더 높은 우선순위 를 줍니다. 신원 소스별 기본 점수는 다음과 같습니다.

점수신원 소스
40Remote Access VPN client
40Terminal Server용 Identity Agent
30Identity Agent
20Captive Portal
10RADIUS Accounting
0Active Directory Query
0IFMAP

Identity Cache Mode — 신원 캐시 모드

개요 — "지우기 우선"에서 "지키기 우선"으로

Identity Awareness는 본래 심각한 오류 흐름을 다룰 때 엄격한 접근 을 기본으로 따랐습니다. 이는 "prefer to delete(지우기 우선)" 원칙 으로, 특정 오류 상황에서 신원을 대규모로 삭제 하게 만듭니다.

  • PDP와의 연결이 10분 넘게 끊긴 경우
    • PDP나 PEP가 끊기면, 그동안 배운 모든 신원이 삭제 됩니다.
    • PDP끼리 Identity Broker로 정보를 나누는 경우, 삭제 역시 하위 계층의 Identity Broker Subscriber까지 효율적으로 전달·반영되어야 합니다. 이는 전체 신원 관리 생태계에 걸쳐 동기화되고 정확한 데이터 상태 를 보장하기 위함입니다.
  • PDP가 장애로 재부팅하는 경우빈 데이터베이스를 동료 시스템과 동기화 해 버릴 위험이 있습니다.

이런 동작의 결과는 다음과 같습니다.

  • 신원 기반 집행이 사라져 연결이 끊깁 니다.
  • 대규모 신원 삭제 로직을 실행·전파하느라 성능에 타격 이 갑니다.
  • 대체 신원 전파 경로를 갖추도록 설계한 환경에서도 복원력(resiliency)이 부족 합니다.
  • 대규모 환경에서는 시스템이 완전히 회복되기까지 몇 시간 이 걸릴 수 있습니다.

Identity Awareness Gateway R82 이상 은 Identity Sharing 프로토콜에 Identity Cache Mode 를 사용합니다.

Identity Cache Mode는 "prefer to keep(지키기 우선)" 원칙 을 따라, 앞서 말한 혼란 없이 Identity Awareness가 안정을 되찾게 합니다.

  • 대규모 삭제 대신, 해당 신원을 데이터베이스에 그대로 유지 합니다.
    • PDP-to-PEP 공유 — 기본 24시간.
    • PDP-to-PDP 공유 — 기본 1시간(구성 가능).
  • 대체 경로에서 온 신원 전파가 기존 정보를 항상 덮어쓰도록(overrun) 허용합니다.
    • 기존의 해당 Identity Session에 대한 Conciliation 결정은 "overwrite" 입니다.
  • 연결이 복구되면, 해당 Identity Session이 덮어써지지 않았다는 가정 아래 "refresh" 과정을 거쳐 원래 상태·로직으로 되돌 아갑니다.

R81.20 Jumbo Hotfix에서 R82로 업그레이드

Identity Cache Mode 기능은 R81.20 Jumbo Hotfix Accumulator Take 70 이상 에서 제공됩니다. R81.20 Jumbo에서는 이 기능이 기본으로 꺼져 있고, PDP-to-PDP 공유의 기본 timeout도 다릅니다(24시간). R82로 업그레이드할 때는 이전 구성이 그대로 보존 됩니다.

현재 상태 확인하기

  1. Security Gateway / 각 클러스터 멤버 / Scalable Platform Security Group의 명령줄에 접속합니다.
  2. Expert mode 로 로그인합니다.
  3. VSNext / Legacy VSX 모드라면, 해당 Virtual Gateway / Legacy Virtual System의 컨텍스트로 이동합니다.
   vsenv <VS ID>
   
  1. 현재 Identity Cache Mode 상태를 확인합니다.
    • PDP-to-PDP 공유 프로토콜(Identity Broker)의 상태:
     pdp broker identity_cache_mode status
     
  • PDP-to-PEP 공유 프로토콜의 상태:
     pep control identity_cache_mode status
     

가능한 출력은 다음과 같습니다.

Identity Cache Mode is enabled    (기본값)
Identity Cache Mode is disabled

모든 게이트웨이에 일괄 구성하기

Security Management Server / Domain Management Server가 관리하는 모든 Identity Awareness 게이트웨이의 기본 구성은 — (1) Identity Cache Mode가 켜짐, (2) PDP-to-PDP 공유 프로토콜(Identity Broker)의 timeout이 60분 입니다. 전역 구성은 SmartConsole이나 Management API로 바꿀 수 있습니다.

SmartConsole로 전역 설정하기

  1. Security Management Server / Domain Management Server에 SmartConsole로 접속합니다.
  2. 왼쪽 위 모서리에서 Menu > Global properties 를 클릭합니다.
  3. 왼쪽 트리에서 Identity Awareness 를 클릭합니다.
  4. Cache Duration 섹션에서:
    • 끄려면In case of connectivity loss, extend identity cache for up to [ ] minutes 체크박스를 해제합니다.
  • 다시 켜려면 — 같은 체크박스를 선택합니다.
    • PDP-to-PDP 공유 timeout 변경 — 원하는 값을 입력합니다.
  • OK 를 클릭합니다.
  • 모든 Identity Awareness 게이트웨이에 Access Control 정책을 설치 합니다.
  • 각 게이트웨이에서 Expert mode로 현재 상태를 확인합니다 — pdp broker identity_cache_mode status(PDP-to-PDP), pep control identity_cache_mode status(PDP-to-PEP).

Management API로 전역 설정하기

  1. 현재 Identity Awareness 전역 속성을 확인합니다.
   mgmt_cli show global-properties
   

기본 출력 예시:

   [Expert@MyMgmt:0]# mgmt_cli show global-properties
   ...
   identity-awareness:
     cache-mode: true
     cache-mode-duration: 60
   
  1. 전역 Identity Cache Mode 상태를 구성합니다.
   mgmt_cli set global-properties identity-awareness.cache-mode {true | false}
   
  • true — 전역으로 Identity Cache Mode를 니다.
    • false — 전역으로 니다.
  1. PDP-to-PDP 공유 프로토콜(Identity Broker)의 전역 timeout(분)을 구성합니다.
   mgmt_cli set global-properties identity-awareness.cache-mode-duration <1-2880>
   
  1. 모든 Identity Awareness 게이트웨이에 정책을 설치합니다.
   mgmt_cli install-policy <parameters>
   

특정 게이트웨이에만 다르게 구성하기

각 게이트웨이 / 클러스터 / Scalable Platform Security Group / VSNext Virtual Gateway / Legacy VSX Virtual System마다 전역 구성을 재정의(override) 할 수 있습니다.

게이트웨이 객체에 넣는 API 파라미터는 다음과 같습니다.

파라미터용도
identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile true전역 상태를 재정의 (전역이 켜짐인데 이 게이트웨이만 끄거나, 전역이 꺼짐인데 이 게이트웨이만 켤 때)
identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile false전역 상태로 복원 (이전에 개별 재정의했던 것을 되돌릴 때)
identity-awareness-settings.identity-sharing-settings.cache-mode-duration.value <분>PDP-to-PDP 공유 timeout을 재정의

전역 상태를 특정 게이트웨이에서 재정의하려면 (객체 종류별 예시):

mgmt_cli set simple-gateway name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile true
mgmt_cli set simple-cluster name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile true
mgmt_cli set legacy-virtual-system name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile true

전역 상태와 PDP-to-PDP timeout을 복원하려면 — 위 명령에서 override-profile 값을 false 로 바꿉니다.

mgmt_cli set simple-gateway name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile false
mgmt_cli set simple-cluster name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile false
mgmt_cli set legacy-virtual-system name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile false

PDP-to-PDP 공유의 전역 timeout을 특정 게이트웨이에서 재정의하려면:

mgmt_cli set simple-gateway name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile true identity-awareness-settings.identity-sharing-settings.cache-mode.value <Timeout in Minutes>
mgmt_cli set simple-cluster name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile true identity-awareness-settings.identity-sharing-settings.cache-mode.value <Timeout in Minutes>
mgmt_cli set legacy-virtual-system name <Name of Object> identity-awareness-settings.identity-sharing-settings.cache-mode.override-profile true identity-awareness-settings.identity-sharing-settings.cache-mode.value <Timeout in Minutes>

명령어 전체 구문과 모니터링 명령(pdp connections, pep show, pdp network, pep show network 등)은 명령줄·참조에서 확인하세요.