Oracle Unified Directory 정책 저장소 복제

병렬 마이그레이션 모델 및 Oracle Directory Server 복제를 사용하는 정책 저장소 마이그레이션을 구성하여 정책 저장소를 새 Oracle Unified Directory 인스턴스에 전파할 수 있습니다. 이 구성을 사용하면 r12.x 정책 저장소에서 병렬 r12.x 정책 저장소로 쉽게 마이그레이션할 수 있습니다. 복제 기능은 스키마와 데이터 사전을 구성하고, 사용자 정의 데이터를 새 정책 저장소로 마이그레이션합니다.
casso12kr
병렬 마이그레이션 모델 및 Oracle Directory Server 복제를 사용하는 정책 저장소 마이그레이션을 구성하여 정책 저장소를 새 Oracle Unified Directory 인스턴스에 전파할 수 있습니다. 이 구성을 사용하면 r12.x 정책 저장소에서 병렬 r12.x 정책 저장소로 쉽게 마이그레이션할 수 있습니다. 복제 기능은 스키마와 데이터 사전을 구성하고, 사용자 정의 데이터를 새 정책 저장소로 마이그레이션합니다.
이 섹션에서는 다음과 같은 용어가 사용됩니다.
  • 원본:
    마이그레이션할 데이터가
    있는
    r12.x 정책 서버 및 정책 저장소입니다.
  • 대상:
    데이터를 마이그레이션할
    대상
    r12.x 정책 서버 및 정책 저장소입니다.
경고!
대상 정책 서버는 원본 정책 서버와 동일한 암호화 키를 사용하도록 구성하십시오. 이 키는 정책 저장소의 중요한 데이터를 암호 해독하는 데 사용됩니다. 동일한 키를 사용하지 않는 정책 서버 암호화 키로 암호화한 데이터를 대상 정책 저장소에서 해독할 수 없습니다.  키가 서로 다른 경우에는 중요한 데이터를 모두 다시 입력해야 합니다. 중요한 데이터에는 사용자 저장소 관리자 암호, 신뢰할 수 있는 호스트 공유 암호(에이전트 다시 등록), 4.x 에이전트 암호,
Single Sign-On
관리자 암호가 포함됩니다.
Oracle Directory Server에서 원본 정책 저장소 내보내기
Oracle Directory Server에서 원본 정책 저장소를 LDIF 파일로 내보냅니다. 
다음 단계를 수행하십시오.
  1. Oracle Directory Service Control Center에 로그온하고 정책 저장소 인스턴스를 선택합니다.
  2. "Suffixes"(접미사) 탭으로 이동합니다.
  3. 내보낼 옵션으로 "ou=Netegrity,O=
    PolicyStore
    "를 선택합니다.
  4. "More Suffix Actions"(추가 접미사 작업), "Export Data to LDIF"(데이터를 LDIF로 내보내기)로 이동합니다.
  5. LDIF 내보내기 파일의 파일 경로를 입력합니다.
  6. LDIF 내보내기 파일을 가져올 수 있도록 Oracle Unified Directory 시스템에 복사합니다.
원본 정책 저장소를 Oracle Unified Directory로 가져오기
원본 정책 저장소에서 내보낸 LDIF 파일에서 Oracle Unified Directory로 원본 정책 저장소를 가져옵니다. 
다음 단계를 수행하십시오.
  1. Oracle Unified Directory의 DN이 다른 경우 동일한 루트 접미사가 있는지 확인합니다. 그렇지 않으면 LDIF를 가져올 수 없습니다. 
    예를 들어 Oracle Unified Directory 인스턴스가 기본 DN "dc=example,dc=lab"을 사용하며 R12.0SP3 환경의 "O=
    PolicyStore
    "와 일치하지 않을 수 있습니다. 이 경우 LDIF 내보내기 파일을 수정하거나 일치하는 접미사(로컬 명명 컨텍스트)를 만드십시오.
  2. "Create Local Naming Context"(로컬 명명 컨텍스트 만들기)를 클릭합니다.
  3. "Base DN"(기본 DN)으로 "O=
    PolicyStore
    "를 입력합니다
    .
  4. "Create"(만들기) 단추를 클릭합니다. 이제 "O=
    PolicyStore
    "가 있는 것을 볼 수 있습니다. 
  5. 새 정책 서버 시스템의
    sm_install_directory
    \db\tier2\OUD\oud_sm_schema.ldif를 Oracle Unified Directory 시스템의
    oracle_install_dir
    \Oracle_OUD1\config\schema 폴더에 복사합니다.
  6. 새 정책 서버 시스템의
    sm_install_directory
    \xps\db\schema_extension\db\OUD\oud_xps_schema.ldif를 Oracle Unified Directory 시스템의
    oracle_install_dir
    \Oracle_OUD1\config\schema 폴더에 복사합니다.
  7. Oracle Unified Directory 인스턴스를 구성합니다.
  8. Oracle Unified Directory를 Windows 서비스로 구성한 경우 서비스 콘솔에서 Oracle Unified Directory를 중지합니다. 서비스를 사용하여 시작하는 경우에는 로그 폴더 또는 잠금 폴더와 해당 폴더의 파일이 생성되지 않습니다.
    Oracle Unified Directory를 Windows 서비스로 구성하지 않은 경우에는 stop-ds.bat을 실행합니다. 그러나 stop-ds.bat이 로그 폴더에 대해 오류 메시지를 throw하는 경우에는 로그 폴더가 존재하지 않음을 의미합니다. Oracle Unified Directory를 중지하려면 이 폴더를 수동으로 만들어 stop-ds.bat을 실행하십시오. 
  9. oracle_install_dir
    \Oracle_OUD1\config\config.ldif 파일을 편집합니다.
  10. "dn: cn=Index,cn=userRoot,cn=Workflow Elements,cn=config"를 찾습니다.
  11. sm_install_dir
    \db\tier2\OUD\oud_sm_indexes.ldif와
    sm_install_dir
    \db\tier2\OUD\oud_sm_indexes.ldif의 내용을 이 파일에 추가합니다.
  12. Oracle Unified Directory를 시작합니다.
  13. 다음 명령을 실행하여 인덱스를 다시 작성합니다.
    cd C:\Oracle\Middleware\Oracle_OUD1\bat
    rebuild-index.bat -b 
    base_dn
     --rebuildAll -h 
    hostname
     -p 
    OUD_administration_port
     -D "cn=Directory Manager" -j
    bindpasswordfile
    -X -t 0 --completionNotify 
    emailAddress
  14. password.txt 파일을 사용하여 관리자 암호를 저장합니다.
    rebuild-index -b ou=Netegrity,O=
    PolicyStore
    --rebuildAll -h OUD1 -p 4444 -D "cn=Directory Manager" -j password.txt -X -t 0
  15. 이제 Oracle Unified Directory Services Manager에 로그인하고 "Schema"(스키마) 탭으로 이동하면 스키마가 올바르게 나타납니다.
  16. 다음과 같은 기본 트리 구조를 만듭니다.
    ou=XPS,ou=PolicySvr4,ou=SiteMinder,ou=Netegrity,O=
    PolicyStore
  17. "Data Browser"(데이터 브라우저) 탭으로 이동하여 기본 DN "O=
    PolicyStore
    "를 선택하고 "New"(새로 만들기) 단추를 클릭한 다음 "Organizational Unit Entry"(조직 단위 항목)를 선택합니다.
  18. 조직 단위의 이름을 "Netegrity"로 입력하고 "Create"(만들기)를 클릭합니다.
  19. O=
    PolicyStore
    아래에 ou=Netegrity가 생성된 것을 볼 수 있습니다. 모든 구조를 만들 때까지 작업을 반복하십시오. 기본 구조를 모두 만든 후에 LDIF 파일을 가져올 수 있습니다.
  20. "ou = Netegrity" 항목을 선택하고 "Import LDIF"(LDIF 가져오기) 단추를 클릭합니다.
    참고:
    4개의 구조가 있다면 실패한 가져오기는 신경 쓰지 마십시오. 이러한 기본 구조는 사용자가 수동으로 만든 구조입니다. 가져오기 프로세스가 기존 항목을 찾았기 때문에 가져오기가 실패한 것입니다. 하지만 모든 내용은 오류 없이 가져와야 합니다. 이 단계는 시간이 오래 걸립니다.
  21. LDIF를 가져온 후 reindex 명령을 실행하여 인덱스를 생성합니다.
  22. 이제 이전 정책 서버를 이 LDAP 인스턴스에 연결하여 테스트를 시도할 수 있습니다. 정책 서버가 오류 없이 시작되며 사용자가 관리 UI에 로그인할 수 있는지 확인하십시오.
    참고
    : 이 단계를 통해 정책 저장소가 제대로 설정되어 있는지 확인할 수 있습니다. 정책 저장소와 키 저장소가 DB였고 OUD로 병렬 업그레이드를 수행하는 경우에는 이 절차를 적용할 수 없습니다. 이전 정책 서버는 DB 정책 저장소와 LDAP 키 저장소 같은 다양한 유형의 정책 저장소 및 키 저장소로의 연결을 지원하지 않았습니다. 이 경우 새 R12.52SP2 정책 서버를 사용하여 테스트해야 합니다.
  23. 이전 정책 서버를 중지합니다.
정책 저장소 설정을 Oracle Directory Server에서 Oracle Unified Directory로 변경
다음 단계를 수행하십시오.
  1. 이전 정책 서버를 시작합니다.
  2. smps.log에 오류가 없는지 확인합니다. 아래에서는 정책 저장소로 OUD1이 지정되어 있고 키 저장소로 OID1이 지정되어 있음을 알 수 있습니다.
    참고
    : R12.0SP3은 Oracle Unified Directory를 지원하지 않습니다. 이 단계에서는 단순히 일반 LDAP 서버의 데이터를 가져올 수 있는지를 확인합니다.
  3. 관리 UI에 테스트 로그인합니다.
  4. 로그인이 가능하면 암호화된 내용을 올바르게 해독할 수 있는 것입니다.
  5. 사용자 디렉터리의 내용을 표시해 보는 방법으로 다시 테스트합니다. 이 단계에서는 관리자 사용자 암호를 해독할 수 있는지 확인합니다. 이를 통해 Oracle Unified Directory로 LDIF 가져오기가 성공한 것으로 확인되면 이전 정책 서버의 정책 저장소 연결을 다시 이전 정책 저장소로 되돌릴 수 있습니다.
  6. 새 정책 서버가 이 새 정책 저장소를 가리키도록 구성합니다. 테스트 연결이 성공하는지 확인하십시오.
  7. 이전 키 저장소에 연결합니다. 
  8. "키 생성" 옵션을 사용하지 않도록 설정합니다. "키" 탭으로 이동하여 "에이전트 키 생성 사용" 옵션의 선택을 취소하십시오. 호환성을 위해 이전 정책 서버만 에이전트 키를 생성할 수 있어야 합니다. "적용"을 클릭합니다.
    이제 이 정책 저장소를 R12.52SP2로 업그레이드할 수 있습니다.
  9. 새 정책 서버에서 다음 명령을 이 순서로 실행합니다. 
    cd
    sm_install_dir
    \xps\dd
    XPSDDInstall smmaster.xdd
    뒤이어 다음을 실행합니다.
    cd
    sm_install_dir
    \db
    XPSImport smpolicy.xml -npass
    XPSImport smpolicy.xml -npass가 실행될 때 CDATA를 값으로 갖는 항목에 대해서는 가져오기가 실패하고 오류가 throw됩니다.
    <Object class="CA.SM::Variable" Xid="CA.SM::Variable@1d-dad4d124-7518-4b67-b72c-b4ef76622eb3" CreatedDateTime="2011-03-09T12:16:10" ModifiedDateTime="2011-03-09T12:16:10" UpdatedBy="SMSTUB" UpdateMethod="Internal">
                    <Property Name="CA.SM::Variable.Definition">
                        <StringValue><![CDATA[<UserContextVariableDef><ItemName>UserProperty</ItemName><PropertyName>AllowNotification</PropertyName><BufferSize>4</BufferSize></UserContextVariableDef>]] ></StringValue>
                    </Property>
                    <Property Name="CA.SM::Variable.Name">
                        <StringValue>AllowNotification</StringValue>
                    </Property>
                    <Property Name="CA.SM::Variable.PreFetchFlag">
                        <BooleanValue>false</BooleanValue>
                    </Property>
                    <Property Name="CA.SM::Variable.ReturnType">
                        <NumberValue>3</NumberValue>
                    </Property>
                    <Property Name="CA.SM::Variable.VariableTypeLink">
                        <LinkValue>
                            <XID>CA.SM::VariableType@1e-4afc0e38-ae25-11d1-9cdd-006008aac24b</XID>
                        </LinkValue>
                    </Property>
                </Object><!-- Xid="CA.SM::Variable@1d-dad4d124-7518-4b67-b72c-b4ef76622eb3" -->
                <Object class="CA.SM::Variable" Xid="CA.SM::Variable@1d-98031368-1b9d-4d40-b572-91cef289f497" CreatedDateTime="2011-03-09T12:16:10" ModifiedDateTime="2011-03-09T12:16:10" UpdatedBy="SMSTUB" UpdateMethod="Internal">
                    <Property Name="CA.SM::Variable.Definition">
                        <StringValue><![CDATA[<UserContextVariableDef><ItemName>UserProperty</ItemName><PropertyName>SessionSynchronization</PropertyName><BufferSize>4</BufferSize></UserContextVariableDef>]] ></StringValue>
                    </Property>
                    <Property Name="CA.SM::Variable.Name">
                        <StringValue>AllowSessionSync</StringValue>
                    </Property>
                    <Property Name="CA.SM::Variable.PreFetchFlag">
                        <BooleanValue>false</BooleanValue>
                    </Property>
                    <Property Name="CA.SM::Variable.ReturnType">
                        <NumberValue>3</NumberValue>
                    </Property>
                    <Property Name="CA.SM::Variable.VariableTypeLink">
                        <LinkValue>
                            <XID>CA.SM::VariableType@1e-4afc0e38-ae25-11d1-9cdd-006008aac24b</XID>
                        </LinkValue>
                    </Property>
                </Object><!-- Xid="CA.SM::Variable@1d-98031368-1b9d-4d40-b572-91cef289f497" -->
  10. 이에 대한 빠른 해결 방법은
    old_PS
    _export.smdif에서 위의 항목을 삭제하고 이를
    old_PS
    _export_modified.smdif에 저장하는 것입니다. 또한
    old_PS
    _export.cfg를
    old_PS
    _export_modified.cfg에 복사합니다.
  11. 가져오기가 성공합니다. 이러한 항목은 R12.52SP2 구성 과정에서 정책 저장소를 초기화할 때부터 존재하므로 문제가 아닙니다. 
  12. 잘못된 문자를 제거하려면 다음 항목을 완전히 삭제합니다.
    objectclass: Scheme
    Oid: 0d-507801e0-5b99-4f02-886b-bc79d1859344
    Name: SafeWord HTML Form Template
    Desc: Secure Computing SafeWord Form
    Level: 10
    Lib: smauthenigmahtml
    Param: ;http:///siteminderagent/forms/safeword.fcc
    Secret: ‑!*åäª
    IsTemplate: true
    IsUsedbyAdmin: true
    Type: 17
    AllowSaveCreds: false
    IsRadius: true
    IgnorePwCheck: true
     
    objectclass: Variable
    Oid: 1d-dad4d124-7518-4b67-b72c-b4ef76622eb3
    DomainOid: 03-1c7ac22e-6646-4c61-8f2f-6261a0ef3a92
    Name: AllowNotification
    Desc:
    VariableType: 1e-4afc0e38-ae25-11d1-9cdd-006008aac24b
    Definition: Z gÔ6GAZÿÈN§BèØÍ€p#
    ReturnType: 3
    PreFetchFlag: false
    NestedVariables:
    MetaData:
     
    objectclass: Variable
    Oid: 1d-98031368-1b9d-4d40-b572-91cef289f497
    DomainOid: 03-1c7ac22e-6646-4c61-8f2f-6261a0ef3a92
    Name: AllowSessionSync
    Desc:
    VariableType: 1e-4afc0e38-ae25-11d1-9cdd-006008aac24b
    Definition: Z gÔ6GAZÿÈN§BèØÍ€p#
    ReturnType: 3
    PreFetchFlag: false
    NestedVariables:
    MetaData: