데이터베이스(JDBC) 암호 소비자를 사용하기 위한 끝점 구성

목차
cminder12902kr
목차
데이터베이스에 연결하기 위해 JDBC를 사용하는 응용 프로그램에서 하드 코드된 암호를 대체하기 위해 JDBC 데이터베이스 암호 소비자를 사용할 수 있습니다. 응용 프로그램이 인증을 위해 암호를 제공할 때마다 SAM 에이전트는
Privileged Identity Manager
엔터프라이즈 콘솔에서 권한 있는 계정 암호를 가져와 하드 코드된 암호를 권한 있는 계정 암호로 대체합니다.
암호 소비자가 사용하는 데이터베이스를 구성하기 전에 JDBC 암호 소비자를 사용하도록 끝점을 준비해야 합니다.
다음 단계를 수행하십시오.
  1. SAM 통합 기능이 활성화된 끝점에
    Privileged Identity Manager
    가 설치되어 있고 데이터베이스에 연결하는 응응 프로그램이 JRE 1.5 이상을 사용하는지 확인합니다.
    참고:
    • 데이터베이스에 연결하는 응용 프로그램이 설치된 끝점에 
      Privileged Identity Manager
      를 설치하십시오.
      Privileged Identity Manager
      를 데이터베이스 호스트에 설치할 필요는 없습니다.
    • 사용 중인 java 버전에 맞는 JDBC 드라이버를 사용해야 합니다.
  2. 데이터베이스에 연결하는 응용 프로그램이 실행 중이면 중지합니다.
  3. 다음 디렉터리로 이동합니다. 여기서
    ACInstallDir
    Privileged Identity Manager
    이 설치된 디렉터리입니다.
    ACInstallDir/SDK/JDBC
  4. 다음 파일을 찾습니다.
    • CAJDBCDriver.jar
    • CAJDBCService.sar
    • CAPUPMClientCommons.jar
    • jsafeFIPS.jar
  5. CAJDBCService.sar를 다음 디렉터리에 복사합니다. 여기서
    JBOSS_HOME
    은 JBoss를 설치한 디렉터리입니다.
    JBOSS_HOME/server/default/deploy
  6. CAJDBCDriver.jar, CAPUPMClientCommons.jar, jsafeFIPS.jar 파일을 다음 디렉터리로 복사합니다.
    JBOSS_HOME/server/lib
  7. 엔터프라이즈 관리 서버에서 암호 소비자에 대해 정의한 데이터 원본 XML 파일을 찾습니다.
  8. 편집을 위해 파일을 엽니다: 다음 작업 중
    하나
    를 수행합니다.
    데이터베이스 연결 설정 및 데이터 원본 클래스를 지정하기 위해 데이터 원본 구성 파일을 사용자 지정합니다.
  9. Privileged Identity Manager
    를 시작합니다.
    암호 소비자를 사용하기 위해 끝점을 구성했습니다. 이제
    Privileged Identity Manager
    엔터프라이즈 콘솔에서 응용 프로그램에 대한 암호 소비자를 만들어야 합니다. 암호 소비자를 만든 이후에 응용 프로그램을 시작합니다.
Microsoft SQL Server에 대한 데이터 원본 구성 파일 사용자 지정
Microsoft SQL Server 데이터베이스에 연결하기 위해 JDBC를 사용하는 응용 프로그램에서 하드 코드된 암호를 대체하기 위해 JDBC 데이터베이스 암호 소비자를 구성할 수 있습니다. JDBC 암호 소비자를 사용하기 위해 끝점을 준비한 이후에 다음 단계를 수행하십시오.
다음 단계를 수행하십시오.
  1. <driver-class> 태그를 찾아 JDBC 드라이버 클래스 속성으로 기본값을 대체합니다. 예를 들면 다음과 같습니다.
    <driver-class>com.ca.ppm.clients.jdbc.CAJDBCDriver</driver-class>
  2. <connection-url> 태그를 찾아 데이터베이스 연결 설정으로 기본값을 대체합니다. 예를 들면 다음과 같습니다.
    <connection-url>>@@@com.microsoft.sqlserver.jdbc.SQLServerDriver@@@jdbc:sqlserver://SQLServer1:1433;selectMethod=cursor;DatabaseName=tempdb</connection-url>
  3. Privileged Identity Manager
    를 시작합니다.
    데이터베이스 구성 파일을 Microsoft SQL Server로 사용자 지정했습니다. 이제
    Privileged Identity Manager
    엔터프라이즈 콘솔에서 응용 프로그램에 대한 암호 소비자를 만들어야 합니다. 암호 소비자를 만든 이후에 응용 프로그램을 시작합니다.
Oracle에 대한 데이터 원본 구성 파일 사용자 지정
Oracle 데이터베이스에 연결하기 위해 JDBC를 사용하는 응용 프로그램에서 하드 코드된 암호를 대체하기 위해 JDBC 데이터베이스 암호 소비자를 구성할 수 있습니다. JDBC 암호 소비자를 사용하기 위해 끝점을 준비한 이후에 다음 단계를 수행하십시오.
다음 단계를 수행하십시오.
  1. <xa-datasource-class> 태그를 찾아 CAJDBCDataSource 클래스 속성으로 기본값을 대체합니다. 예를 들면 다음과 같습니다.
    <xa-datasource-class>com.ca.ppm.clients.jdbc.CAJDBCDataSource</xa-datasource-class>
    중요!
    속성 이름은 기본값과 대/소문자가 일치해야 합니다.
  2. 모든 <xa-datasource-property name=> 태그를 찾습니다. 예를 들면 다음과 같습니다.
    <xa-datasource-property name="URL">jdbc:oracle:oci8:@tc</xa-datasource-property> <xa-datasource-property name="User">scott</xa-datasource-property> <xa-datasource-property name="Password">tiger</xa-datasource-property>
  3. 속성을 단일 문자열로 구성합니다. 예를 들면 다음과 같습니다.
    <xa-datasource-property name="CAJDBCProperties">CAJDBCPropertyRealDatasourceClass="oracle.jdbc.xa.client.OracleXADataSource";URL="jdbc:oracle:oci8:@tc";User="scott";Password="tiger";</xa-datasource-property>
  4. Privileged Identity Manager
    를 시작합니다.
    Oracle에 대한 데이터 원본 구성 파일을 사용자 지정했습니다. 이제
    Privileged Identity Manager
    엔터프라이즈 콘솔에서 응용 프로그램에 대한 암호 소비자를 만들어야 합니다. 암호 소비자를 만든 이후에 응용 프로그램을 시작합니다.
암호 소비자 예제: JDBC 데이터베이스
이 예에서 시스템 관리자인 Steve는 JBoss Application Server를 사용하여 일반 텍스트로 된 암호를 수록하는 응용 프로그램을 실행합니다. 이 응용 프로그램은 일반 텍스트로 된 암호를 사용하여 Microsoft SQL Server 데이터베이스에 대한 연결을 인증합니다. Steve는 응용 프로그램이 데이터베이스에 연결할 때마다 SAM에서 권한 있는 계정 암호를 가져오도록 JBoss Application Server를 수정하려고 합니다.
Steve는 Windows 끝점에 JBoss Application Server 버전 4.2.3.GA와 Java Development Kit(JDK) 1.6.0_19를 설치했습니다. 끝점의 이름은 JBossEndpoint입니다. 이름이 JBossEndpoint\Administrator인 사용자는 run.bat 파일을 사용하여 JBoss Application Server를 시작하고, 이 서버는 Microsoft SQL Server 데이터베이스에 연결하는 응용 프로그램을 실행합니다. 이 응용 프로그램은 sa 계정을 사용하여 데이터베이스에 연결합니다.
  1. Steve는 JBossEndpoint에서 다음을 수행합니다.
    1. JBoss를 중지합니다.
    2. SAM 통합 기능을 활성화하여
      Privileged Identity Manager
      를 설치합니다.
    3. 다음 디렉터리로 이동합니다.
      C:\Program Files\CA\AccessControl\\SDK\JDBC
    4. 다음 파일을 찾습니다.
      • CAJDBCService.sar
      • CAJDBCDriver.jar
      • CAPUPMClientCommons.jar
      • jsafeFIPS.jar
    5. CAJDBCService.sar 파일을 다음 디렉터리로 복사합니다.
      C:\jboss-4.2.3.GA\server\default\deploy
    6. CAJDBCDriver.jar, CAPUPMClientCommons.jar, jsafeFIPS.jar 파일을 다음 디렉터리로 복사합니다.
      C:\jboss-4.2.3.GA\server\default\lib
    7. 다음 디렉터리로 이동합니다.
      C:\jboss-4.2.3.GA\server\default\deploy
    8. 편집을 위해 다음 파일을 엽니다:
      • imworkflowdb-ds.xml
      • objectstore-ds.xml
      • reportsnapshot-ds.xml
      • userstore-ds.xml
    9. <driver-class> 태그를 찾아 JDBC 드라이버 클래스 속성으로 기본값을 대체합니다. 예를 들면 다음과 같습니다.
      <driver-class>com.ca.ppm.clients.jdbc.CAJDBCDriver</driver-class>
    10. <connection-url> 태그를 찾아 데이터베이스 연결 설정으로 기본값을 대체합니다. 예를 들면 다음과 같습니다.
      <connection-url>>@@@com.microsoft.sqlserver.jdbc.SQLServerDriver@@@jdbc:sqlserver://SQLServer1:1433;selectMethod=cursor;DatabaseName=tempdb</connection-url>
    11. 파일을 저장하고 닫습니다.
    12. Privileged Identity Manager
      를 시작합니다.
  2. Steve가
    Privileged Identity Manager
    엔터프라이즈 콘솔에서 다음 작업을 수행합니다.
    1. JBossEndpoint_PUPM이란 이름으로 Windows Agentless 유형의 끝점을 만듭니다.
    2. JBossEndpoint_PUPM 끝점에서 sa 권한 있는 계정을 검색합니다.
    3. 다음 매개 변수를 사용하여 데이터베이스 암호 소비자를 만듭니다.
      1. 이름 - JBossEndpoint MS SQL 연결
      2. 소비자 유형 - 데이터베이스(ODBC/JDBC/OLEDB/OCI)
      3. 응용 프로그램 경로 - C:\jboss-4.2.3.GA\bin\run.bat
      4. 계정 - sa
      5. 호스트 - JBossEndpoint
      6. 사용자 - JBossEndpoint\Administrator
  3. JBossEndpoint\Administrator 사용자는 run.bat 파일을 실행하여 끝점에서 JBoss Application Server를 시작합니다.
    JBoss Application Server가 시작되고 이 응용 프로그램이 SQL Server에 연결을 시도합니다. 그러면 SAM 에이전트가 연결 시도를 가로채고 권한 있는 계정 암호를 응용 프로그램에 제공합니다.
  4. Steve는 다음 디렉터리에 있는 JBoss 로그 파일에서 오류가 있는지 검사합니다.
    C:\jboss-4.2.3.GA\server\default\log
Oracle 데이터베이스에 대한 추가 정보
tnsnames.ora 파일은 클라이언트가 Oracle 데이터베이스에 연결하기 위해 사용하는 데이터베이스 주소를 정의하는 Oracle 구성 파일입니다. tnsnames.ora 파일은 여러 호스트 이름, 포트, 서비스 이름, 인스턴스 이름 SID를 포함할 수 있습니다.
SAM 에이전트는 tnsnames.ora 파일의 전체 경로를 확인하기 위해 $ORACLE_HOME 및 $TNS_ADMIN 환경 변수를 확인합니다. 이 환경 변수는 다음 레지스트리 키에 정의됩니다.
HKEY_LOCAL_MACHINE\SOFTWARE\ComputerAssociates\AccessControl\Instrumentation\PlugIns\plugin\EnvironmentVariables
  • plugin
    연결 시도를 가로채는 플러그 인의 이름을 지정합니다.
    값:
    OCIPlg, ODBCPlg, OLEDBPlg
SAM 에이전트는 Oracle 데이터베이스에 대한 연결 시도를 가로챌 때마다 tnsnames.ora 파일을 구문 분석합니다. 이 파일에 이러한 특성에 대한 값이 여러 개 포함된 경우, SAM 에이전트는 가능한 각 특성 조합마다 별도의 네트워크 세트를 만듭니다. SAM 에이전트는 모든 네트워크 세트를
Privileged Identity Manager
엔터프라이즈 콘솔에 보내고, 여기서는 네트워크 세트와 가장 가깝게 일치하는 권한 있는 계정에 대한 암호를 가져옵니다.
예: tnsnames.ora 파일의 네트워크 세트
다음은 tnsnames.ora 파일의 예입니다.
SAMPLE_INSTANCE= (DESCRIPTION= (SOURCE_ROUTE=yes) (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630)) # hop 1 (ADDRESS_LIST= (FAILOVER=on) (LOAD_BALANCE=off) # hop 2 (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630)) (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630))) (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521)) # hop 3 (CONNECT_DATA=(SERVICE_NAME=Sales.example.com)))
SAM 에이전트는 이 tnsnames.ora 파일을 구문 분석할 때 다음 네트워크 세트를
Privileged Identity Manager
엔터프라이즈 콘솔로 보냅니다.
  • HOST=host1, PORT=1630
  • HOST=host2a, PORT=1630
  • HOST=host2b, PORT=1630
  • HOST=host3, PORT=1521, SERVICE_NAME= Sales.example.com