Oracle Internet Directory – LDAP 67 | ModifyDN 오류 | OU 이동 실패 – 실전 트러블슈팅 가이드

OID · LDAP 67 — ModifyDN · OU 이동 진단 주제를 표현한 개념 그림
OID · DIP 실전

Oracle Internet Directory - LDAP 67(ModifyDN 오류) · OU 이동 실패 · ACI 권한 오류까지 -
변경 조건과 결과를 확인하는 진단 가이드

OID × DIP · 현장 솔루션

LDAP 67(ModifyDN) / OU 이동 실패 / ACI 오류 — 왜 터지고, 어떻게 바로잡나



Oracle Internet Directory(OID) 및 Oracle Directory Integration Platform(ODIP) 운영에서 확인할 증상 → 원인 가설 → 검증 조건을 정리했습니다. 권한(ACI), DIT·매핑, 체크포인트를 각각 검토해야 합니다. 예제는 설치 버전과 실제 환경에 맞춰 검증할 자료이며, 그대로 실행할 복구 절차나 재발 방지 보장은 아닙니다.

이 글은 이런 분들이 읽으면 좋아요

  • DIP AD→OID 동기화에서 67/권한/OU 이동 이슈가 반복되는 운영자
  • 운영 중 복구 조건과 영향 범위를 정리할 기준이 필요한 팀
  • 프로파일·매핑·DIT·ACI를 변경 범위를 구분해 검토하려는 분

이 글에서 바로 얻을 수 있어요

  • 별도 검증이 필요한 LDIF·명령·체크리스트
  • ACI 유효 권한과 적용 범위의 확인 조건
  • LACN↔USN을 같은 원본 기준으로 해석하는 방법

이렇게 읽으면 더 빠릅니다

  • #스키마 → #SSL → #ACI → #DIT 순으로 사전 체크
  • 실행은 Disable → 변경 → 검증 → Enable
  • 스모크 3건은 예시이며, 데이터 결과·로그·합의된 기준으로 승인/중단 결정
🔗
배경 이해(USN 갭) 포스트부터 확인하면 흐름이 깔끔합니다. USN 동기화 갭 가이드 열기
🧭
현장 기본 원칙 — Disable → 변경 → 검증 → Enable
기존 구성의 재기동 예시: Admin → Node Manager → OPMN(OID) → wls_ods1/2(DIP). 설치 버전·의존성에 맞는 절차를 확인해야 하며, 보편적인 기동/정지 순서로 적용하지 않습니다.
🧩

1) 증상 & 원인 패턴 (왜 터질까?)

용도

오류 코드·진단 메시지·요청 DN과 작업 유형을 기록하고, RDN 제약·권한·스키마·연결 문제를 구분합니다.

목적

로그와 요청을 대조해 원인 가설을 검토하고, 근거 없는 반복 변경을 피합니다.

해석 방법

로그의 에러코드/키워드(67, proxy, SSL, USN)를 증상→처방 표에 매핑합니다.

  • LDAP 67 → 현재 RDN 값을 일반 modify로 제거하려 했는지 확인합니다. 이름 변경은 modrdn 요청과 서버의 스키마 제약을 검토해야 합니다.
  • OU 이동 실패 → 새 부모 add / 기존 부모 delete 등 유효 권한, 대상 부모 존재 여부와 스키마를 확인합니다. 권한 부족으로만 단정하지 않습니다.
  • ACI 부족 → add/delete/write/read/search/compare/browse/proxy를 일괄 부여하는 것이 아니라, 작업별 유효 권한·그룹·상속·적용 범위를 확인합니다. proxy는 일반 이동의 필수 권한이 아닙니다.
  • SSL/TLS 미스 → 설정된 리스너·모드·인증서 신뢰를 확인합니다. SSL_ENCRYPT와 4141은 기존 구성 예시이며, 포트 번호 자체가 TLS를 보장하지 않습니다.
  • LACN/USN 갭 → 체크포인트의 원본과 AD DC·invocationID를 먼저 맞춥니다. 번호 차이는 누락 건수나 rewind 필요성을 증명하지 않습니다.
  • EM Agent TZ → 주로 가시성 문제. 동작엔 제한적이나 운영에선 정합 권장.
🧪

2) 사전 점검 (스키마 · SSL · 프로파일 사전체크)

실패한 항목의 현재 위치, 옮길 위치와 실행 계정을 기록해 두면 구조 문제와 권한 문제를 나누어 조사할 수 있습니다. 오류 번호만 보고 권한을 넓히기 전에 이 조건부터 확인해야 합니다.

용도

변경 전 스키마·연결·프로파일의 확인 결과와 미확인 조건을 기록합니다.

목적

운영 창구 열리기 전에 구조/연결/설정 3요소 통과로 “실패 원인 불명” 방지.

해석 방법

각 테스트의 성공/에러 메시지를 기록, 에러는 해당 처방 섹션으로 해당 절로 돌아가 재확인.

스키마 존재

orclADUser/Group/Object는 필요한 스키마 정의와 구분해 확인합니다. 예제처럼 같은 이름의 속성을 요청해 결과가 없다는 이유만으로 스키마가 없다고 판단하지 않습니다.

ldapsearch -h <OID_HOST> -p 389 -D "cn=orcladmin" -w '<PW>' \
-b "cn=subschema" -s base "(objectClass=*)" \
"orclADUser" "orclADGroup" "orclADObject"

해석: 설치 버전의 objectClasses·attributeTypes 및 실제 매핑을 확인한 뒤 필요한 정의를 판단합니다. 예제 결과만으로 스키마 등록을 실행하지 않습니다. -w 인자는 비밀번호 노출 가능성이 있으며 389 자체는 암호화를 보장하지 않습니다.

SSL/TLS 신뢰체인

  • DIP→OID의 실제 리스너·모드를 확인: 4141 & SSL_ENCRYPT는 환경별 예시
  • OID 인증서를 DIP keystore/cacerts에 신뢰로 등록

프로파일 사전체크

# Map Rule 문법
manageSyncProfiles validateMapRules -p <ProfileName>

# 연결 테스트
manageSyncProfiles testProfile -p <ProfileName>

해석: validate는 문법/매핑 구조, testProfile은 단순 연결 점검이 아닙니다. Oracle 11g 문서에서는 실제 동기화를 수행하므로 설치 버전·인자와 대상 영향을 확인해야 합니다. 기존 -p 예제도 그대로 실행하지 않습니다.

⚠️
공백/탭/줄바꿈은 파싱 실패 원인 중 하나입니다. 오류 메시지와 설치 버전의 인자를 먼저 확인하세요. 업로드 전 “보이는 공백” 켠 에디터로 확인하세요.
🛡️

3) ACI 확인 — Rename/이동의 유효 권한

용도

RDN 변경과 부모 이동을 구분하고, 실제 바인드 주체의 유효 권한을 확인합니다.

목적

LDAP 50(권한), 65(오브젝트 클래스), 67(RDN 제약)을 구분합니다. ACI 변경만으로 모두 해결되지는 않습니다.

해석 방법

orclACI 검색 시 group DN·권한 키워드가 기대값(아래 표)과 일치하는지 확인.

상황필요 권한적용 위치
RDN 변경(동일 부모)엔트리 RDN write + 부모 browse 등 조회 조건 확인; proxy는 실제 프록시 사용 시 별도 검토대상 엔트리 & 해당 부모
부모 컨테이너 이동새 부모 add, 기존 부모 delete, 엔트리 RDN write, 부모들 browse 등 조회 조건 확인; proxy는 일반 필수 조건 아님기존/새 부모 컨테이너 + 엔트리

LDIF — Entry/Attr 권한 부여

dn: <대상_컨테이너_DN>
changetype: modify
add: orclACI
orclACI: access to entry by group="cn=odisgroup,cn=DIPAdmins,cn=Directory\20Integration\20Platform,cn=Products,cn=OracleContext" (browse,proxy)
-
add: orclACI
orclACI: access to attr=(*) by group="cn=odisgroup,cn=DIPAdmins,cn=Directory\20Integration\20Platform,cn=Products,cn=OracleContext" (read,search,compare,write)

해석: INVALID ACI는 문법·대상·주체 등을 확인해야 합니다. \20은 공백 표현 예시이며 내부 공백을 모두 이렇게 바꿔야 한다는 뜻은 아닙니다. 예제의 전체 속성 write/proxy를 최소 권한으로 인증하지 않습니다.

적용 확인

ldapsearch -h <OID_HOST> -p 389 -D "cn=orcladmin" -w '<PW>' \
-b "<대상_컨테이너_DN>" -s base "(objectClass=*)" orclACI

해석: 출력에 group DN과 (browse,proxy), (read,search,compare,write)가 보이는 것만으로 유효 권한이나 성공을 판정할 수 없습니다. 작업별 권한과 상속·그룹 관계를 확인합니다.

🧱

4) DIT 구조 정비 + 역LDIF(롤백)

ℹ️
DIT(Directory Information Tree)는 디렉터리의 계층 구조입니다. OU/컨테이너 경로가 표준과 다르면 Rename/이동/매핑이 꼬입니다.

용도

누락된 ou=yourdomain.com 같은 레벨을 보강하고, 레거시 서브트리를 표준 경로로 정렬.

목적

DIP DomainRules와 물리 경로 일치 → 신규/변경 정확히 반영.

해석 방법

이동 전/후 DN 매핑표(건수·샘플DN)로 검증. 역LDIF는 검토 자료이며, 의존 참조·현재 상태·동시 변경 때문에 즉시 복구를 보장하지 않습니다.

누락 OU 생성

dn: ou=yourdomain.com,cn=Users,dc=serv,dc=nossys,dc=net
objectClass: top
objectClass: organizationalUnit
ou: yourdomain.com

서브트리 이동 (modrdn)

dn: ou=CLGX,cn=Users,dc=serv,dc=nossys,dc=net
changetype: modrdn
newrdn: ou=CLGX
deleteoldrdn: 0
newsuperior: ou=yourdomain.com,cn=Users,dc=serv,dc=nossys,dc=net

역LDIF 예시 (적용 조건 검증 필요)

dn: ou=CLGX,ou=yourdomain.com,cn=Users,dc=serv,dc=nossys,dc=net
changetype: modrdn
newrdn: ou=CLGX
deleteoldrdn: 0
newsuperior: cn=Users,dc=serv,dc=nossys,dc=net
📝
반드시 정방향/역방향 LDIF 쌍 + 매핑표를 세트로 보관하세요.
🗺️

5) DIP DomainRules & 매핑 반영 (사전체크 포함)

용도

AD 도메인 베이스를 OID의 정확한 컨테이너로 매핑.

목적

예시 경로 ou=yourdomain.com → ou=CLGX와 실제 필터·DomainRules·속성 매핑·대상 부모를 함께 대조합니다.

해석 방법

validateMapRules는 문법, testProfile은 실제 동기화 영향을 확인한 뒤 사용하는 테스트입니다. 두 결과만으로 전체 경로·데이터 정합성을 판정하지 않습니다.

도메인 매핑(예시)

# dc=infosolco,dc=net → ou=yourdomain.com,cn=Users,...
DomainRules:
  dc=infosolco,dc=net : ou=yourdomain.com,cn=Users,dc=serv,dc=nossys,dc=net

업로드 전 사전체크

manageSyncProfiles validateMapRules -p <ProfileName>
manageSyncProfiles testProfile -p <ProfileName>

해석: 오류 메시지·인자·프로파일을 확인합니다. 공백·탭뿐 아니라 버전·매핑·접속·권한을 구분합니다.

📈

6) LACN ↔ AD USN 정합 (Go/No-Go 게이트)

용도

체크포인트가 어느 변경 원본을 가리키는지 확인합니다. 번호 차이를 지연 시간이나 누락 건수로 환산하지 않습니다.

목적

중복/누락 없이 안전 회수를 위해 증분 범위 명확화.

해석 방법

같은 AD DC·invocationID 기준인지 확인합니다. 청크 단위라도 안전한 rewind를 보장하지 않으며, 임의로 체크포인트를 낮추지 않습니다.

양쪽 수치 확인

# AD high watermark
repadmin /showrepl <DC-NAME>

# OID Profile 메트릭
ldapsearch -D "cn=orcladmin" -w '<PW>' \
-b "orclodipagentname=<Profile>,cn=ODIP Agents,cn=Directory Integration Platform,cn=Products,cn=OracleContext" \
-s base "(objectClass=*)" \
orclOdipConDirLastAppliedChgNum orclOdipProfileMetric

해석: failure_count의 정의·시간 범위와 실제 오류를 확인합니다. 증가만으로 구조/권한 문제를 단정하지 않습니다. 기존 repadmin 예제를 rootDSE highestCommittedUSN 조회로 간주하지 않습니다.

체크포인트 변경 예시의 위험 검토

# 큰 폭 조정 금지 → 안전 청크(예: 5,000,000)씩 낮추고 증분 실행/검증 반복
# 변경 전 Profile 백업 필수
⛔
주의: 기존 코드의 5,000,000은 안전 단위가 아닙니다. 변경 원본·보존 범위·필터·매핑·삭제 처리와 지원되는 복구 방식을 검증하기 전에는 rewind하지 않습니다.
🚀

7) 실행 순서 & 스모크 (성공/중단 기준 수치화)

용도

운영 반영을 체크리스트로 실행, 결과를 수치로 확인.

목적

감이 아니라 정량 근거로 승인/중단 결정.

해석 방법

failure_count=0, LDAP 50/65/67 없음, LACN 상승, 3건 스모크 T+30분은 예시 조건입니다. Go 판정에는 실제 대상 값·삭제/이동·필터 범위와 합의된 관찰 기간이 필요합니다.

실행 순서(클러스터 동일)

  1. Disable 대상 프로파일(양 노드 동일)
  2. DIT 보강/이동 + ACI 반영
  3. DomainRules/맵 반영 → validate/testProfile
  4. LACN/USN 원본 기준과 로그·대상 값 확인; rewind는 별도 승인·검증 조건
  5. 재기동 예시 Admin → Node Manager → OPMN(OID) → wls_ods1/2(DIP)는 설치 구성의 의존성과 운영 절차를 먼저 검증
  6. Enable + 수동 1회 증분 실행

스모크(즉시 3건)

  • 신규 사용자 → 표준 OU에 생성
  • UPN/mail 변경 → 속성 반영
  • Rename(ModifyDN) 또는 부모 이동 → 성공

성공/중단 기준 (해석)

  • failure_count = 0 유지는 보조 지표; 카운터 범위와 실제 대상 값·로그 대조 필요
  • LDAP 50/65/67 부재만으로 성공 판정 불가; 실제 요청 실행과 대상 DN·속성 결과 확인
  • LACN이 AD high watermark 방향으로 지속 상승만으로 누락 회수나 데이터 정합성을 증명하지 못함
  • 3건 스모크 T+30분 내는 예시이며, 모든 대상 범위·삭제 처리·관찰 기간을 별도로 검증

중단 및 복구 예시 (별도 검증 필요)

# 롤백 단위 요약
1) 프로파일/맵: 이전 버전 복구
2) ACI: 이전 값 복구
3) DIT: 역LDIF(modrdn reverse) 적용
4) 서비스: 필요 시 WLS/OID 재기동
5) DB/시스템(최후): RMAN/Datapump 또는 스냅샷 복원
📡

8) 모니터링 & EM Agent (TZ 정합)

용도

EM 콘솔 상태 그린 확보, 알람/스케줄 가시성 정상화.

목적

초동대응 시간을 줄이기 위한 관측성 확보.

해석 방법

시각 불일치가 시간대·표시·시계 중 어디에서 발생하는지 확인합니다. resetTZ/secure/restart는 버전·등록·신뢰 영향을 검증할 운영 작업이며 보편적인 해결책이 아닙니다.

# 시간대 정합
emctl resetTZ agent

# 상태/보안 재확립(환경별 상이)
emctl stop agent
emctl secure agent
emctl start agent

해석: DIP 동작엔 직접 영향이 없을 수도 있으나, 운영 의사결정(알람/타임라인)에 중요 — 정합화 권장.

✅

9) 바로 쓰는 검사표 (체크리스트)

항목내용상태
스키마orclADUser/Group/Object 존재☐
SSL/TLS실제 DIP→OID 리스너·모드·신뢰 확인; 4141/SSL_ENCRYPT는 예시☐
프로파일validateMapRules 인자·결과 확인; testProfile 실제 동기화 영향 검증☐
ACI작업별 RDN/부모 유효 권한 확인; proxy는 별도 조건, 최소 권한 검토☐
DIT누락 OU 생성, 이동 전/후 매핑표·역LDIF 준비☐
LACN/USN동일 원본/DC 기준 및 실제 대상 비교; 임의 rewind 금지☐
EM AgentTZ 정합 및 상태 그린☐
스모크신규/속성/이동·삭제 결과 확인; T+30분은 환경별 예시☐

* 표를 복사해 팀 공용 체크리스트로 쓰세요.

🏁
현장 한 줄 요약: 작업별 권한과 DIT·매핑을 확인하고, 체크포인트와 대상 데이터를 함께 검증. 절차는 단순합니다. Disable → 변경 → 검증 → Enable는 검증 계획의 틀입니다. 지원 버전·실제 데이터·복구 조건을 대신하지는 않습니다.
위로 스크롤