Sun Java 로고     이전      목차      색인      다음     

Sun 로고
Sun[TM] Identity Manager 8.0 관리 

10장
감사 로깅

이 장에서는 감사 시스템에서 이벤트를 기록하는 방법에 대해 설명합니다.

이 장은 다음 절로 구성되어 있습니다.


개요

Identity Manager 감사의 목적은 누가 언제 어떤 Identity Manager 객체에 대해 무엇을 수행했는지 기록하는 것입니다.

감사 이벤트는 하나 이상의 게시자에 의해 처리됩니다. 기본적으로 Identity Manager에서는 저장소 게시자를 사용하여 감사 이벤트를 저장소에 기록합니다. 관리자는 감사 그룹과 함께 필터링을 사용하여 기록할 감사 이벤트의 하위 집합을 선택할 수 있습니다. 처음부터 활성화되는 하나 이상의 감사 그룹을 각 게시자에게 할당할 수 있습니다.


주

사용자 위반 모니터링 및 관리에 대한 자세한 내용은 13장, "아이디 감사: 기본 개념"을 참조하십시오.



Identity Manager의 감사 대상

기본 감사는 대부분 내부 Identity Manager 구성 요소에서 수행합니다. 그러나 작업 흐름이나 Java 코드에서 이벤트를 생성할 수 있는 인터페이스가 있습니다.

기본 Identity Manager 감사 기기에서는 다음 네 가지 주 영역을 집중적으로 감사합니다.


작업 흐름에서 감사 이벤트 만들기

기본적으로 승인 작업 흐름만 감사 레코드를 생성하도록 지정되어 있습니다. 이 절에서는 com.waveset.session.WorkflowServices 응용 프로그램을 사용하여 작업 흐름 프로세스에서 추가 감사 이벤트를 생성하는 방법에 대해 설명합니다.

사용자 정의 작업 흐름에서 보고가 필요할 경우 감사 이벤트가 추가로 필요할 수 있습니다. 작업 흐름에 감사 이벤트를 추가하는 방법에 대한 자세한 내용은 표준 감사 이벤트 기록을 위한 작업 흐름 수정을 참조하십시오.

작업 흐름 보고서((자세히...) )를 지원하기 위해 작업 흐름에 특수 감사 이벤트를 추가할 수도 있습니다. 작업 흐름 보고서는 작업 흐름을 완료하는 데 드는 시간을 보고하고 특수 감사 이벤트는 시간 계산에 필요한 데이터를 저장하는 데 필요합니다. 작업 흐름에 타이밍 감사 이벤트를 추가하는 방법에 대한 자세한 내용은 타이밍 감사 이벤트 기록을 위한 작업 흐름 수정을 참조하십시오.

com.waveset.session.WorkflowServices 응용 프로그램

com.waveset.session.WorkflowServices 응용 프로그램은 작업 흐름 프로세스에서 감사 이벤트를 생성합니다. 표 10-1에서는 이 응용 프로그램에 사용할 수 있는 인수에 대해 설명합니다.

표 10-1 com.waveset.session.WorkflowServices에 대한 인수 (1/2페이지)

인수

유형

설명

op

String

WorkflowServices 작업입니다. audit 또는 auditWorkflow로 설정해야 합니다. 표준 작업 흐름 감사를 사용하려면 audit를 사용하고 시간 계산에 필요한 타이밍 감사 이벤트를 저장하려면 auditWorkflow를 사용합니다. 필수입니다.

type

String

감사 중인 객체 유형 이름입니다. 표 17-1에서 감사 가능한 객체 유형을 확인할 수 있습니다. 표준 감사 이벤트를 기록하는 데 필요합니다.

action

String

수행한 작업 이름입니다. 표 B-5에서 감사 가능한 작업을 확인할 수 있습니다. 필수입니다.

status

String

지정한 작업의 상태 이름입니다. 표 B-6(결과 열)에서 상태를 볼 수 있습니다. 표준 감사 이벤트를 기록하는 데 필요합니다.

name

String

지정한 작업에 따라 영향을 받는 객체 이름입니다. 표준 감사 이벤트를 기록하는 데 필요합니다.

resource

String

(선택 사항) 객체가 변경 중인 자원 이름입니다.

accountId

String

(선택 사항) 수정 중인 계정 아이디입니다.
원시 자원 계정 이름이어야 합니다.

error

String

(선택 사항) 모든 오류에 제공되는 현지화된 오류 문자열입니다.

reason

String

(선택 사항) 일반 오류의 원인을 설명하는 국제화된 메시지에 매핑되는 ReasonDenied 객체의 이름입니다.

attributes

Map

(선택 사항) 추가되거나 수정된 속성 이름 및 값의 맵입니다.

parameters

Map

(선택 사항) 이벤트와 관련된 최대 다섯 개까지의 추가 이름 또는 값에 매핑됩니다.

organizations

List

(선택 사항) 이 이벤트가 배치될 조직 이름 또는 ID의 목록입니다. 이 인수는 감사 로그의 조직 범위를 설정하는 데 사용됩니다. 이 인수가 없으면 처리기는 유형과 이름을 기준으로 조직을 확인하려고 합니다. 조직을 확인할 수 없으면 이벤트는 최상위(조직 계층의 가장 높은 수준)에 놓입니다.

originalAttributes

Map

(선택 사항) 이전 속성 값의 맵입니다. 이 인수의 이름은 attributes 인수에 나열된 이름과 일치해야 합니다. 값은 감사 로그에 저장할 모든 이전 값입니다.

표준 감사 이벤트 기록을 위한 작업 흐름 수정

작업 흐름에서 표준 감사 이벤트를 만들려면 작업 흐름에 다음 <Activity> 요소를 추가합니다.

<Activity name='createEvent'>

그런 다음 <Activity> 요소에 com.waveset.session.WorkflowServices 응용 프로그램을 참조하는 <Action> 요소를 중첩합니다.

<Action class='com.waveset.session.WorkflowServices'>

<Action> 요소에 필수 및 선택적 <Argument> 요소를 중첩합니다. 인수 목록은 표 10-1을 참조하십시오.

표준 감사 이벤트를 기록하려면 op 인수를 audit로 설정해야 합니다.

코드 예 10-1은 표준 감사 이벤트를 만드는 데 필요한 최소 코드입니다.

예

코드 예 10-1은 간단한 작업 흐름 작업을 보여 줍니다. 여기에서는 ResourceAdministrator가 수행한 ADSIResource1이라는 자원 삭제 작업을 기록할 이벤트의 생성을 보여줍니다.

코드 예 10-1 간단한 작업 흐름 작업

 

<Activity name='createEvent'>

   <Action class='com.waveset.session.WorkflowServices'>

     <Argument name='op' value='audit'/>

     <Argument name='type' value='Resource'/>

     <Argument name='action' value='Delete'/>

     <Argument name='status' value='Success'/>

     <Argument name='subject' value='ResourceAdministrator'/>

     <Argument name='name' value='ADSIResource1'/>

   </Action>

   <Transition to='end'/>

</Activity>

 

코드 예 10-2에서는 승인 프로세스에서 각 사용자가 적용한 변경 사항을 추적하는 작업 흐름에 특정 속성을 추가할 수 있는 방법을 세밀한 수준으로 보여줍니다. 이러한 추가는 일반적으로 사용자의 입력을 요청하는 ManualAction 다음에 수행됩니다.

ACTUAL_APPROVER는 승인 표에서 승인하고 있는 경우 실제로 승인한 사람을 기준으로 하는 양식 및 작업 흐름에서 설정됩니다. APPROVER는 승인이 할당된 사람을 식별합니다.

코드 예 10-2 승인 프로세스에서 변경 사항을 추적하기 위해 추가되는 속성
(1/2페이지)

 

<Action name='Audit the Approval'    application='com.waveset.session.WorkflowServices'>

     <Argument name='op' value='audit'/>

     <Argument name='type' value='User'/>

     <Argument name='name' value='$(CUSTOM_DESCRIPTION)'/>

     <Argument name='action' value='approve'/>

     <Argument name='accountId' value='$(accountId)'/>

     <Argument name='status' value='success'/>

     <Argument name='resource' value='$(RESOURCE_IF_APPLICABLE)'/>

     <Argument name='loginApplication' value='$(loginApplication)'/>

     <Argument name='attributes'>

       <map>

          <s>fullname</s><ref>user.accounts[Lighthouse].fullname</ref>

          <s>jobTitle</s><ref>user.accounts[Lighthouse].jobTitle</ref>

          <s>location</s><ref>user.accounts[Lighthouse].location</ref>

          <s>team</s><ref>user.waveset.organization</ref>

          <s>agency</s><ref>user.accounts[Lighthouse].agency</ref>

      </map>

    </Argument>

    <Argument name='originalAttributes'>

      <map>

        <s>fullname</s>

        <s>User's previous fullname</s>

        <s>jobTitle</s>

        <s>User's previous job title</s>

        <s>location</s>

        <s>User's previous location</s>

        <s>team</s>

        <s>User's previous team</s>

        <s>agency</s>

        <s>User's previous agency</s>

      </map>

    </Argument>

    <Argument name='attributes'>

      <map>

         <s>firstname</s>

         <s>Joe</s>

         <s>lastname</s>

         <s>New</s>

      </map>

    </Argument>

    <Argument name='subject'>

      <or>

          <ref>ACTUAL_APPROVER</ref>

          <ref>APPROVER</ref>

      </or>

    </Argument>

    <Argument name='approver' value='$(APPROVER)'/>

</Action>

 

타이밍 감사 이벤트 기록을 위한 작업 흐름 수정

작업 흐름 보고서((자세히...) )를 지원하기 위해 타이밍 이벤트를 기록하도록 작업 흐름을 수정할 수 있습니다. 표준 감사 이벤트는 이벤트가 발생했다는 사실만 기록하지만 타이밍 감사 이벤트는 이벤트의 시작 및 중지 시간을 기록하므로 시간을 계산하는 데 사용할 수 있습니다. 타이밍 이벤트 데이터뿐만 아니라 표준 감사 이벤트에 의해 기록된 대부분의 정보도 함께 저장됩니다. 자세한 내용은 타이밍 감사 이벤트가 저장하는 정보를 참조하십시오.


주

타이밍 감사 이벤트를 기록하려면, 감사할 각 작업 흐름 유형에 대해 작업 흐름 감사를 먼저 활성화해야 합니다.

  • 작업 서식 파일을 사용하여 관리자 인터페이스에서 구성할 수 있는 작업 흐름의 경우, 감사할 작업 흐름에 해당하는 작업 서식 파일을 먼저 활성화합니다. 자세한 내용은 작업 서식 파일 사용을 참조하십시오.

    그런 다음 전체 작업 흐름 감사 확인란을 선택하여 작업 흐름 감사를 설정합니다. 자세한 내용은 감사 탭 구성을 참조하십시오.

  • 작업 서식 파일이 없는 작업 흐름의 경우 auditWorkflow라는 변수를 정의하고 값을 true로 설정합니다.

작업 흐름 감사 기능을 사용하면 성능이 저하됩니다.


코드 예 10-3은 타이밍 감사 이벤트를 만드는 데 필요한 코드입니다. 타이밍 감사 이벤트를 기록하려면 op 인수를 auditWorkflow로 설정해야 합니다.

또한, action 인수도 필요하며 다음 값 중 하나로 설정해야 합니다.

auditconfig.xml에서 작업 인수를 추가로 정의할 수 있습니다.

예

코드 예 10-3은 작업 흐름에서 타이밍 감사 이벤트를 활성화합니다. 작업 흐름을 지정하려면 작업 흐름, 프로세스 및 작업의 시작과 끝에 auditWorkflow 이벤트를 추가해야 합니다.

auditWorkflow 작업은 com.waveset.session.WorkflowServices에서 정의합니다. 자세한 내용은 (자세히...) 를 참조하십시오.

코드 예 10-3 작업 흐름에서 타이밍 감사 이벤트 시작

 

<Action application='com.waveset.session.WorkflowServices'>

  <Argument name=°Øop°Ø value=°ØauditWorkflow°Ø/>

  <Argument name=°Øaction°Ø value=°ØStartWorkflow°Ø/>

</Action>

작업 흐름에서 타이밍 감사 이벤트 기록을 중지하려면 작업 흐름의 맨 끝 부분에 있는 pre-end 작업에 코드 예 10-4의 코드를 추가합니다. 작업 흐름 또는 프로세스를 지정할 때 end 작업에는 아무 것도 삽입할 수 없습니다. 마지막 auditWorkflow 이벤트를 수행한 다음 무조건적으로 end 이벤트로 전환되는 pre-end 작업을 만들어야 합니다.

코드 예 10-4 작업 흐름에서 타이밍 감사 이벤트 중지

 

<Action application='com.waveset.session.WorkflowServices'>

  <Argument name=°Øop°Ø value=°ØauditWorkflow°Ø/>

  <Argument name=°Øaction°Ø value=°ØEndWorkflow°Ø/>

</Action>

타이밍 감사 이벤트가 저장하는 정보

기본적으로 타이밍 감사 이벤트는 다음 속성을 비롯하여 일반 감사 이벤트에 의해 저장되는 대부분의 정보를 기록합니다.

속성

설명

WORKFLOW

실행 중인 작업 흐름의 이름

PROCESS

실행 중인 현재 프로세스의 이름

INSTANCEID

실행 중인 작업 흐름의 고유 인스턴스 ID

ACTIVITY

이벤트를 기록 중인 작업

MATCH

작업 흐름 인스턴스 내 고유 식별자

위의 속성은 logattr 테이블에 저장되고 auditableAttributesList에서 가져옵니다. Identity Manager는 workflowAuditAttrConds 속성이 정의되었는지 여부도 확인합니다.

프로세스 또는 작업 흐름의 단일 인스턴스 내에서 작업을 여러 번 호출할 수 있습니다. Identity Manager는 logattr 테이블의 작업 흐름 인스턴스 내에서 고유한 식별자를 저장하여 특정 작업 인스턴스에 대한 감사 이벤트를 일치시킵니다.

작업 흐름에 대해 logattr 테이블에 속성을 추가로 저장하려면 GenericObjects 목록으로 간주되는 workflowAuditAttrConds 목록을 정의해야 합니다. workflowAuditAttrConds 목록에서 attrName 속성을 정의하면 Identity Manager가 코드에 포함된 객체에서 attrName을 추출하여 attrName을 키로 사용하여 attrName의 값을 저장합니다. 모든 키와 값은 대문자로 저장됩니다.


감사 구성

감사 구성은 하나 이상의 게시자와 여러 개의 미리 정의된 그룹으로 구성됩니다.

감사 그룹은 객체 유형, 작업 및 작업 결과를 기반으로 모든 감사 이벤트의 하위 집합을 정의합니다. 각 게시자에는 하나 이상의 감사 그룹이 할당됩니다. 기본적으로 저장소 게시자는 모든 감사 그룹에 할당됩니다.

감사 게시자는 특정 감사 대상에 감사 이벤트를 전달합니다. 기본 저장소 게시자는 저장소에 감사 레코드를 작성합니다. 각 감사 게시자에게는 구현별 옵션이 있을 수 있습니다. 감사 게시자에는 텍스트 포매터가 할당될 수 있으며 이 텍스트 포매터는 감사 이벤트를 텍스트로 표시합니다.

감사 구성(#ID#Configuration:AuditConfiguration) 객체는 sample/auditconfig.xml 파일에 정의됩니다. 이 구성 객체는 일반 객체인 확장을 가집니다. 이 객체의 최상위 수준에는 다음 속성이 있습니다.

filterConfiguration

filterConfiguration 속성은 하나 이상의 이벤트가 이벤트 필터를 통과할 수 있도록 설정하는 데 사용되는 이벤트 그룹을 나열합니다. filterConfiguration 속성에 나열되는 각 그룹에는 표 10-2에 나열된 속성이 들어 있습니다.

표 10-2 filterConfiguration 속성  

속성

유형

설명

groupName

String

이벤트 그룹 이름입니다.

displayName

String

그룹 이름을 나타내는 메시지 카탈로그 키입니다.

enabled

String

전체 그룹의 활성화 또는 비활성화 여부를 나타내는 부울 플래그입니다. 이 속성은 필터링 객체를 최적화합니다.

enabledEvents

List

그룹에서 활성화하는 이벤트를 설명하는 일반 객체 목록입니다. 이벤트를 나열해야 이벤트 로깅을 활성화할 수 있습니다. 나열된 각 객체에는 다음 속성이 있어야 합니다.

  • objectType(String) - objectType의 이름을 지정합니다.
  • actions(List) - 하나 이상의 작업 목록입니다.
  • results(List) - 하나 이상의 결과 목록입니다.

코드 예 10-5는 기본 자원 관리 그룹입니다.

코드 예 10-5 기본 자원 관리 그룹

 

<Object name='Resource Management'>

  <Attribute name='enabled' value='true'/>

  <Attribute name='displayName'

             value='UI_RESOURCE_MGMT_GROUP_DISPLAYNAME'/>

  <Attribute name='enabledEvents'>

    <List>

      <Object>

        <Attribute name='objectType' value='Resource'/>

        <Attribute name='actions' value='ALL'/>

        <Attribute name='results' value='ALL'/>

      </Object>

      <Object>

        <Attribute name='objectType' value='ResourceObject'/>

        <Attribute name='actions' value='ALL'/>

        <Attribute name='results' value='ALL'/>

      </Object>

    </List>

  </Attribute>

</Object>

 

Identity Manager에서는 다음과 같은 기본 감사 이벤트 그룹을 제공합니다.

Identity Manager 관리 인터페이스의 감사 구성 페이지(구성 > 감사)에서 각 그룹을 구성할 수 있습니다. 감사 그룹 및 감사 이벤트 구성을 참조하십시오.

감사 구성 페이지에서는 각 그룹에 대한 성공 또는 실패 이벤트를 구성할 수 있습니다. 인터페이스에서는 그룹에 대해 활성화된 이벤트를 추가 또는 수정할 수 없지만 Identity Manager 디버그 페이지((자세히...) )를 사용하여 이 작업을 수행할 수 있습니다.

기본 이벤트 그룹과 이 그룹에서 활성화하는 이벤트에 대해서는 다음 절에서 설명합니다.

계정 관리

이 그룹은 기본적으로 활성화됩니다.

표 10-3 기본 계정 관리 이벤트 그룹 

유형

작업

암호화 키

모든 작업

Identity System 계정

모든 작업

자원 계정

승인, 비밀번호 변경, 만들기, 삭제, 비활성화, 활성화, 수정, 거부, 이름 변경, 비밀번호 재설정, 잠금

작업 흐름 케이스

작업 종료, 프로세스 종료, 작업 흐름 종료, 작업 시작, 프로세스 시작, 작업 흐름 시작

사용자

승인, 만들기, 자격 증명 만료, 삭제, 비활성화, 활성화, 잠금, 로그인, 로그아웃, 수정, 거부, 이름 변경, 잠금 해제, 사용자 이름 복구

외부 Identity System 변경

이 그룹은 기본적으로 비활성화됩니다.

표 10-4 외부 Identity Manager 이벤트 그룹 및 이벤트 변경

유형

작업

ResourceAccount

NativeChange

준수 관리

이 그룹은 기본적으로 활성화됩니다.

표 10-5 기본 준수 관리 그룹 이벤트  

유형

작업

AuditPolicy

모든 작업

AccessScan

모든 작업

ComplianceViolation

모든 작업

데이터 내보내기

모든 작업

UserEntitlement

입증인 승인됨, 입증인 거부됨, 수정 요청됨, 다시 검색 요청됨, 종료

액세스 검토 작업 흐름

모든 작업

수정 작업 흐름

모든 작업

구성 관리

이 그룹은 기본적으로 활성화됩니다.

표 10-6 기본 구성 관리 이벤트 그룹  

유형

작업

Configuration

모든 작업

UserForm

모든 작업

규칙

모든 작업

EmailTemplate

모든 작업

LoginConfig

모든 작업

정책

모든 작업

XmlData

가져오기

로그

모든 작업

이벤트 관리

이 그룹은 기본적으로 활성화됩니다.

표 10-7 기본 이벤트 관리 이벤트 그룹  

유형

작업

전자 메일

알림

TestNotification

알림

로그인/로그오프

이 그룹은 기본적으로 활성화됩니다.

표 10-8 기본 Identity Manager 로그인/로그오프 이벤트 그룹  

유형

작업

사용자

자격 증명 만료, 잠금, 로그인, 로그아웃, 잠금 해제, 사용자 이름 복구

비밀번호 관리

이 그룹은 기본적으로 활성화됩니다.

표 10-9 기본 비밀번호 관리 이벤트 그룹 및 이벤트

유형

작업

자원 계정

비밀번호 변경, 비밀번호 재설정

자원 관리

이 그룹은 기본적으로 활성화됩니다.

표 10-10 기본 자원 관리 이벤트 그룹 및 이벤트

유형

작업

자원

모든 작업

자원 객체

모든 작업

ResourceForm

모든 작업

ResourceAction

모든 작업

AttrParse

모든 작업

작업 흐름 케이스

작업 종료, 프로세스 종료, 작업 흐름 종료, 작업 시작, 프로세스 시작, 작업 흐름 시작

역할 관리

이 그룹은 기본적으로 비활성화됩니다.

표 10-11 기본 역할 관리 이벤트 그룹 및 이벤트

유형

작업

역할

모든 작업

보안 관리

이 그룹은 기본적으로 활성화됩니다.

표 10-12 기본 보안 관리 이벤트 그룹 및 이벤트

유형

작업

기능

모든 작업

EncryptionKey

모든 작업

조직

모든 작업

관리 역할

모든 작업

서비스 공급자 Edition

이 그룹은 기본적으로 활성화됩니다.

표 10-13 서비스 공급자 이벤트 그룹 및 이벤트  

유형

작업

디렉토리 사용자

시도 응답, 만들기, 삭제, 수정, 사후 작업 콜아웃, 사전 작업 콜아웃, 인증 응답 업데이트, 사용자 이름 복구

작업 관리

이 그룹은 기본적으로 비활성화됩니다.

표 10-14 작업 관리 이벤트 그룹 및 이벤트

유형

작업

TaskInstance

모든 작업

TaskDefinition

모든 작업

TaskSchedule

모든 작업

TaskResult

모든 작업

ProvisioningTask

모든 작업

extendedTypes

com.waveset.object.Type  클래스에 추가하는 각각의 새 유형을 감사할 수 있습니다. 새 유형에는 두 자로 된 고유한 데이터베이스 키가 할당되어야 하며, 이 키는 데이터베이스에 저장됩니다. 새 유형은 모두 다양한 감사 보고 인터페이스에 추가됩니다. 필터링하지 않고 데이터베이스에 기록할 각각의 새 유형은 enabledEvents 속성에 대해 설명한 대로 감사 이벤트 그룹 enabledEvents 속성에 추가해야 합니다.

연관된 com.waveset.object.Type이 없는 대상을 감사하거나 기존 유형을 더욱 세밀하게 표시하려는 경우가 있을 수 있습니다.

예를 들어, WSUser 객체는 저장소에 있는 사용자의 계정 정보를 모두 저장합니다. 감사 프로세스에서는 각 이벤트를 USER 유형으로 표시하는 대신, WSUser 객체를 Resource Account 및 Identity Manager Account이라는 두 개의 다른 감사 유형으로 분할합니다. 객체를 이와 같이 분할하면 감사 로그에서 특정 계정 정보를 쉽게 찾을 수 있습니다.

extendedObjects 속성에 추가하여 확장된 감사 유형을 추가합니다. 확장된 각 객체에는 다음 표에 나열된 속성이 있어야 합니다.

표 10-15 확장된 객체 속성  

인수

유형

설명

name

String

AuditEvents를 구성할 때와 이벤트 필터링 중에 사용되는 유형 이름입니다.

displayName

String

유형 이름을 나타내는 메시지 카탈로그 키입니다.

logDbKey

String

로그 테이블에 이 객체를 저장할 때 사용할 두 자로 된 데이터베이스 키입니다. 예약된 값을 보려면 감사 로그 데이터베이스 매핑을 참조하십시오.

supportedActions

List

객체 유형에서 지원하는 작업입니다. 이 속성은 사용자 인터페이스에서 감사 쿼리를 만들 때 사용됩니다. 이 값이 null이면 모든 작업이 이 객체 유형에 대해 쿼리할 수 있는 값으로 표시됩니다.

mapsToType

String

(선택 사항) 적용 가능한 경우 이 유형에 매핑되는 com.waveset.object.Type의 이름입니다. 이 속성은 객체의 조직 구성원을 이벤트에서 아직 지정하지 않은 경우 이를 확인할 때 사용됩니다.

organizationalMembership

List

(선택 사항) 이 유형의 이벤트에 조직 구성원이 아직 할당되지 않은 경우 이 이벤트가 배치되어야 하는 조직 ID의 기본 목록입니다.

내부 기호를 새로 추가할 때 키가 중복되지 않도록 모든 고객별 키는 # 기호로 시작해야 합니다.

코드 예 10-6은 확장된 유형의 Identity Manager 계정입니다.

코드 예 10-6 확장된 유형의 Identity Manager 계정 (1/2페이지)

 

<Object name='LighthouseAccount'>

   <Attribute name='displayName' value='LG_LIGHTHOUSE_ACCOUNT'/>

   <Attribute name='logDbKey' value='LA'/>

   <Attribute name='mapsToType' value='User'/>

   <Attribute name='supportedActions'>

      <List>

         <String>Disable</String>

         <String>Enable</String> 

         <String>Create</String>

         <String>Modify</String>

         <String>Delete</String>

         <String>Rename</String>

      </List>

   </Attribute>

</Object>

extendedActions

감사 작업은 일반적으로 com.waveset.security.Right 객체에 매핑됩니다. 새 권한 객체를 추가할 때 데이터베이스에 저장되는 두 자로 된 고유한 logDbKey를 지정해야 합니다. 감사해야 하는 특정 작업에 해당하는 권한이 없는 경우가 발생할 수 있습니다. 이럴 경우 extendedActions 속성의 객체 목록에 이 작업을 추가하여 작업을 확장할 수 있습니다.

각 extendedActions 객체에는 표 10-16에 나열된 속성이 들어 있어야 합니다.

표 10-16 extendedAction 속성

속성

유형

설명

name

String

AuditEvents를 구성할 때와 이벤트 필터링 중에 사용되는 작업 이름입니다.

displayName

String

작업 이름을 나타내는 메시지 카탈로그 키입니다.

logDbKey

String

로그 테이블에 이 작업을 저장할 때 사용할 두 자로 된 데이터베이스 키입니다.

예약된 값을 보려면 감사 로그 데이터베이스 매핑을 참조하십시오.

내부 기호를 새로 추가할 때 키가 중복되지 않도록 모든 고객별 키는 # 기호로 시작해야 합니다.

코드 예 10-7는 로그아웃에 대한 작업 추가 방법을 보여줍니다.

코드 예 10-7 로그아웃에 대한 작업 추가

 

<Object name='Logout'>

  <Attribute name='displayName' value='LG_LOGOUT'/>

  <Attribute name='logDbKey' value='LO'/>

</Object>

extendedResults

감사 유형 및 작업을 확장하는 것 외에 결과를 추가할 수도 있습니다. 기본적으로 성공과 실패라는 두 가지 결과가 있습니다. extendedResults 속성의 객체 목록에 이 결과를 추가하여 결과를 확장할 수 있습니다.

각 extendedResults 객체에는 표 10-17에 설명된 속성이 들어 있어야 합니다.

표 10-17 extendedResults 속성  

속성

유형

설명

name

String

AuditEvents에서 상태를 설정할 때와 이벤트 필터링 중에 사용되는 결과 이름입니다.

displayName

String

결과 이름을 나타내는 메시지 카탈로그 키입니다.

logDbKey

String

로그 테이블에 이 결과를 저장할 때 사용할 한 자로 된 데이터베이스 키입니다. 예약된 값을 보려면 데이터베이스 키 절을 참조하십시오.

새 내부 키를 추가할 때 키가 중복되지 않도록 모든 고객별 키에는 0에서 9 사이의 값을 사용해야 합니다.

게시자

게시자 목록의 각 항목은 일반 객체입니다. 각 게시자에는 다음과 같은 속성이 있습니다.

표 10-18 게시자 속성  

속성

유형

설명

class

String

게시자 클래스 이름입니다.

displayName

String

게시자 이름을 나타내는 메시지 카탈로그 키입니다.

설명

String

게시자에 대한 설명입니다.

filters

List

이 게시자에 할당된 감사 그룹 목록입니다.

formatter

String

텍스트 포매터 이름(있는 경우)입니다.

options

List

게시자 옵션 목록입니다. 이 옵션은 게시자 전용입니다. 이 목록의 각 항목은 PublisherOption을 맵으로 표시합니다. 이에 대한 예는 sample/auditconfig.xml을 참조하십시오.


데이터베이스 스키마

Identity Manager 저장소에서는 감사 데이터를 저장할 때 다음 두 테이블을 사용합니다.

이 절에서는 이 두 테이블에 대해 먼저 설명합니다.

감사 로그 데이터가 위의 테이블에 지정된 열 길이 제한을 초과하면 데이터가 제한 길이에 맞게 잘립니다. 감사 로그 잘림은 (자세히...) 에 설명되어 있습니다.

감사 로그의 일부 열에는 구성 가능한 열 길이 제한이 있습니다. 이러한 열을 살펴보고 길이 제한을 변경하는 방법에 대한 자세한 내용을 보려면 감사 로그 구성을 참조하십시오.

waveset.log

이 절에서는 waveset.log 테이블에 있는 여러 열 이름과 데이터 유형을 나열합니다. 데이터 유형은 Oracle 데이터베이스 정의의 유형을 사용하며 데이터베이스마다 약간 다릅니다. 지원되는 모든 데이터베이스의 데이터 스키마 값 목록은 부록 B, "감사 로그 데이터베이스 스키마"를 참조하십시오.

공간을 최적화하기 위해 일부 열 값이 데이터베이스에 키로 저장됩니다. 키 정의에 대한 자세한 내용은 감사 로그 데이터베이스 매핑 절을 참조하십시오.

waveset.logattr

waveset.logattr 테이블은 각 이벤트의 조직 구성원 아이디를 저장하며 조직별로 감사 로그의 범위를 설정하는 데 사용됩니다.

감사 로그 잘림

감사 로그 데이터의 하나 이상의 열이 지정된 열 길이 제한을 초과할 경우 열 데이터가 제한에 맞게 잘립니다. 즉, 데이터가 지정된 길이 제한보다 3글자 적은 길이로 잘린 다음 잘림이 발생했음을 나타내기 위해 열 데이터에 생략 기호(...)가 추가됩니다.

또한, 감사 레코드의 NAME 열 맨 앞에는 잘린 레코드의 쿼리가 용이하도록 #TRUNCATED# 문자열이 추가됩니다.


주

Identity Manager 메시지가 잘리는 위치를 계산할 때 UTF8 인코딩을 가정합니다. 구성에서 UTF8 이외의 인코딩이 사용될 경우 데이터가 잘린 후에도 데이터베이스의 실제 열 크기를 초과할 가능성이 있습니다. 이 경우 잘린 메시지가 감사 로그에 표시되지 않으며 시스템 로그에 오류가 기록됩니다.



감사 로그 구성

감사 로그의 특정 열은 저장소에서 대량의 데이터를 저장하도록 구성할 수 있습니다.

열 길이 제한 크기 조정

감사 로그의 일부 열에는 구성 가능한 열 길이 제한이 있습니다. 해당하는 열은 다음과 같습니다.

열 길이 제한은 RepositoryConfiguration 객체를 편집하여 변경할 수 있습니다. RepositoryConfiguration 객체 편집 방법에 대한 자세한 내용은 Identity Manager 구성 객체 편집을 참조하십시오.

새 값을 적용하려면 서버를 다시 시작해야 합니다.

RepositoryConfiguration 객체의 열 길이 제한 설정은 열에 저장할 수 있는 최대 데이터 양을 결정합니다. 저장할 데이터가 이 설정을 초과할 경우 데이터가 잘립니다. 자세한 내용은 감사 로그 잘림을 참조하십시오.

RepositoryConfiguration 객체의 열 길이 설정을 증가시킬 경우 데이터베이스의 열 길이 설정도 RepositoryConfiguration 객체에 구성된 크기 이상인지 확인합니다.


감사 로그에서 레코드 제거

감사 로그가 너무 커지지 않도록 주기적으로 잘라야 합니다. AuditLog 유지 보수 작업을 사용하여 감사 로그에서 이전 레코드를 제거합니다.

감사 로그에서 이전 레코드를 제거하는 작업을 예약하려면 다음 단계를 수행합니다.

  1. 관리자 인터페이스에서 서버 작업 > 일정 관리를 누릅니다.
  2. 예약 가능한 작업 섹션에서 AuditLog 유지 보수 작업을 누릅니다.
  3. "새 AuditLog 유지 보수 작업 작업 예약 작성" 페이지가 열립니다.

  4. 양식을 작성하고 저장을 누릅니다.


감사 로그 변조 방지

다음과 같은 형태의 감사 로그 변조를 방지하도록 Identity Manager를 구성할 수 있습니다.

모든 Identity Manager 감사 로그 레코드에는 서버별로 고유한 순서 번호와 레코드 및 순서 번호에 대한 암호화된 해시가 있습니다. 변조 검색 보고서를 만들 때 서버별로 감사 로그에 다음이 있는지 검색합니다.

변조 방지 로깅 구성

변조 방지 로깅을 구성하려면 다음 단계를 수행합니다.

  1. 보고서> 새로 만들기> 감사 로그 변조 보고서를 선택하여 변조 보고서를 만듭니다.
  2. 변조 보고서 정의 페이지(그림 10-1 참조)가 표시되면 보고서의 제목을 입력한 다음 저장합니다.
  3. 그림 10-1 감사 로그 변조 보고서 구성
    감사 로그 변조 보고서 구성

    다음의 선택 매개 변수를 지정할 수도 있습니다.

    • 보고서 요약 - 보고서를 설명하는 요약을 입력합니다.
    • 서버의 시작 순서 '<server_name>' - 서버의 시작 순서 번호를 입력합니다.
    • 이 옵션을 사용하면 이전 로그 항목을 변조된 것으로 플래그 지정하지 않고 삭제할 수 있으며 보고서 범위를 제한하여 성능을 개선할 수 있습니다.
    • 전자 메일로 보고서 보내기 - 보고서 결과를 지정한 전자 메일 주소로 보낼 수 있습니다.
    • 이 옵션을 선택하면 페이지가 새로 고침되고 전자 메일 주소를 입력하라는 메시지가 표시됩니다. 그러나 텍스트 내용을 전자 메일로 보내는 것은 안전하지 않습니다. 계정 아이디나 계정 내역과 같은 중요한 정보가 노출될 수 있습니다.
    • 기본 PDF 옵션 대체 - 이 보고서의 기본 PDF 옵션을 대체하려면 이 옵션을 선택합니다.
    • 조직 - 이 보고서에 액세스해야 하는 조직을 선택합니다.
  4. 그런 다음 구성 > 감사를 선택하여 감사 구성 페이지(그림 10-2 참조)를 엽니다.
  5. 그림 10-2 변조 방지 감사 로깅 구성
    감사 구성 페이지를 사용하여 감사 이벤트를 구성합니다.

  6. 사용자 정의 게시자 사용을 선택한 다음 저장소 게시자 링크를 누릅니다.
  7. 변조 방지 감사 로그 활성화를 선택한 다음 확인을 누릅니다.
  8. 저장을 눌러 설정을 저장합니다.
  9. 이 옵션을 다시 해제할 수도 있지만, 이렇게 하면 감사 로그 변조 보고서에서 서명되지 않은 항목이 이와 같이 플래그 표시되므로 이러한 항목을 무시하도록 보고서를 다시 구성해야 합니다.


사용자 정의 감사 게시자 사용

Identity Manager에서는 사용자 정의 감사 게시자에 감사 이벤트를 제출할 수 있습니다. 다음과 같은 사용자 정의 게시자가 제공됩니다.

고유한 게시자를 만들려면 사용자 정의 감사 게시자 개발을 참조하십시오.

사용자 정의 감사 게시자 활성화

사용자 정의 감사 게시자는 감사 구성 페이지에서 활성화합니다.

사용자 정의 감사 게시자를 활성화하려면 다음 단계를 수행합니다.

  1. 관리자 인터페이스의 주 메뉴에서 구성을 누르고 보조 메뉴에서 감사를 누릅니다.
  2. 감사 구성 페이지가 열립니다.

  3. 페이지 맨 아래에서 사용자 정의 게시자 사용 옵션을 선택합니다.
  4. 현재 구성된 감사 게시자가 나열된 테이블이 열립니다.

  5. 새 감사 게시자를 구성하려면 새 게시자 드롭다운 메뉴에서 사용자 정의 게시자 유형을 선택합니다.
  6. 새 감사 게시자 구성 양식을 작성합니다. 확인을 누릅니다.

  7. 중요! 저장을 눌러 새 감사 게시자를 저장합니다!

콘솔, 파일, JDBC 및 스크립팅된 게시자 유형

콘솔, 파일, JDBC 또는 스크립팅된 감사 게시자를 활성화하려면 사용자 정의 감사 게시자 활성화에 설명된 단계를 수행합니다. 새 게시자 드롭다운 메뉴에서 해당 게시자 유형을 선택합니다.

새 감사 게시자 구성 양식을 작성합니다. 양식에 대해 궁금한 점이 있으면 i-Help 및 온라인 도움말을 참조하십시오.

JMS 게시자 유형

JMS 감사 로그 사용자 정의 게시자는 JMS(Java Message Service) 대기열 또는 항목에 감사 이벤트 레코드를 게시할 수 있게 해줍니다.

JMS를 사용하는 이유

JMS에 게시하면 여러 Identity Manager 서버가 있는 환경에서 상관 관계에 대한 유연성을 추가로 얻을 수 있습니다. 뿐만 아니라, JMS는 서버가 실행 중인 동안 로그가 클라이언트 보고 도구에 액세스하지 못할 수 있는 Windows 환경과 같이 파일 감사 로그 게시자를 사용하는 데 제한이 있는 환경에서도 사용할 수 있습니다.

JMS는 여러 개의 서버가 있는 환경에 몇 가지 이점을 제공합니다.

지점 간 모델 또는 게시 및 가입 모델

JMS는 메시징을 위한 두 가지 모델로 지점 간 모델(대기열 삽입 모델)과 게시 및 가입 모델(항목 모델)을 제공합니다. Identity Manager는 두 모델을 모두 지원합니다.

지점 간 모델에서 생성자는 특정 대기열에 메시지를 게시하고, 소비자는 대기열의 메시지를 읽습니다. 이 때, 생성자는 메시지의 대상을 인식하여 소비자의 대기열에 직접 메시지를 게시합니다.

지점 간 모델의 특징은 다음과 같습니다.

반면에, 게시 및 가입 모델은 특정 메시지 항목에 메시지를 게시하도록 지원합니다. 0개 이상의 가입자가 특정 메시지 항목에 대한 메시지를 수신하는 데 관심을 등록할 수 있습니다. 이 모델에서는 게시자와 가입자가 모두 서로에 대해 알지 못합니다. 이 모델에 대한 좋은 예로, 익명 게시판이 있습니다.

게시 및 가입 모델에는 다음과 같은 특징이 있습니다.

JMS 게시자 유형 구성

JMS 게시자는 감사 이벤트를 JMS TextMessage 형식으로 지정합니다. 이러한 TextMessage는 구성에 따라 대기열 또는 항목으로 전송됩니다. 텍스트 메시지는 구성에 따라 XML 또는 ULF(범용 로깅 형식) 형식으로 지정할 수 있습니다.

JMS 게시자 유형을 활성화하려면 사용자 정의 감사 게시자 활성화에 설명된 단계를 수행하고 새 게시자 드롭다운 메뉴에서 JMS를 선택합니다.

JMS 게시자 유형을 구성하려면 새 감사 게시자 구성 양식을 작성합니다. 양식에 대해 궁금한 점이 있으면 i-Help 및 온라인 도움말을 참조하십시오.

JMX 게시자 유형

JMX 감사 로그 게시자는 JMX(Java Management Extensions) 클라이언트가 Identity Manager 감사 로그 작업을 모니터링할 수 있도록 감사 이벤트를 게시합니다.

JMX란?

JMX(Java Management Extensions)는 응용 프로그램, 시스템 객체, 장치 및 서비스 지향 네트워크를 관리 및/또는 모니터링할 수 있게 해주는 Java 기술입니다. 관리/모니터링되는 엔티티는 MBean(Managed Bean)이라는 객체로 표현됩니다.

Identity Manager의 JMX 게시자 구현

Identity Manager의 JMX 감사 로그 게시자는 이벤트에 대한 감사 로그를 모니터링합니다. 이벤트가 감지되면 JMX 게시자는 감사 이벤트 레코드를 MBean으로 래핑하고 메모리에 보관된 임시 내역을 업데이트합니다. 각 이벤트에 대해 별도의 작은 알림이 JMX 클라이언트로 전송됩니다. 관심 이벤트의 경우 JMX 클라이언트가 추가 정보를 얻기 위해 감사 이벤트를 래핑하는 MBean을 쿼리할 수 있습니다.


주

감사 이벤트 레코드에 대한 자세한 내용은 com.waveset.object.AuditEvent Javadoc를 참조하십시오. Javadoc는 사용자 정의 감사 게시자 개발에서 설명한 REF 키트에 포함되어 있습니다.


올바른 MBean으로부터 정보를 검색하려면 내역 순서 번호가 필요합니다. 이 번호는 이벤트 알림에 포함되어 있습니다.

각 이벤트 알림에는 다음 정보가 포함됩니다.

JMX 게시자 유형 구성

JMX 게시자 유형을 구성하려면 다음 단계를 수행합니다.

  1. JMS 게시자 유형을 활성화하려면 사용자 정의 감사 게시자 활성화에 설명된 단계를 수행하고 새 게시자 드롭다운 메뉴에서 JMS를 선택합니다.
  2. JMS 게시자 유형을 구성하려면 새 감사 게시자 구성 양식을 작성합니다. 양식에 대해 궁금한 점이 있으면 i-Help 및 온라인 도움말을 참조하십시오.
  3. 게시자 이름 - JMX 감사 이벤트 게시자의 고유한 이름을 입력합니다.

    내역 제한 - 게시가 메모리에 보관되어야 하는 이벤트 항목의 수입니다. 기본값은 100입니다. 제한을 변경하려면 다른 값을 입력합니다.

  4. 게시자 이름이 허용되는지 테스트를 눌러 확인합니다.
  5. 확인을 누릅니다. 새 감사 게시자 구성 양식을 종료합니다.
  6. 중요! 저장을 누릅니다.

JMX 클라이언트에서 감사 이벤트 보기

JMX 클라이언트를 사용하여 JMX 게시자를 봅니다. 다음 화면 캡처를 만드는 데 JDK 1.5에 포함된 JConsole이 사용되었습니다.

JConsole을 사용 중인 경우 IDM:type=AuditLog MBean을 보기 위해 프로세스에 대한 연결을 선택합니다. JConsole을 JMX 클라이언트로 사용하도록 구성하는 방법에 대한 자세한 내용은 JMX 데이터 보기를 참조하십시오.

JConsole에서 Notifications 탭을 눌러 감사 이벤트를 봅니다. 알림에는 순서 번호가 포함되어 있습니다. 순서 번호는 추가 정보를 얻기 위해 MBean을 쿼리할 때 필요합니다.

그림 10-3 JConsole에서 JMX 감사 이벤트 알림 보기

추가 정보를 위한 MBean 쿼리

JConsole에서 Operations 탭을 누릅니다. 알림에 포함된 순서 번호를 사용하여 이벤트 세부 정보를 확인하기 위해 MBean을 쿼리합니다. 각 작업에는 'get'이라는 접두어가 붙고 '순서' 번호가 유일한 매개 변수입니다.

그림 10-4 JConsole에서 추가 정보를 위한 MBean 쿼리

MBean은 실제로 com.waveset.object.AuditEvent 클래스에 대한 일대일 매핑이며, 표 10-19는 MBean이 제공하는 각 속성/작업에 대한 설명입니다.

표 10-19 MBeanInfo 속성/작업 설명  

속성/작업

설명

AccountAttributesBlob

변경된 속성 목록

AccountId

이벤트와 연관된 AccountId

Action

이벤트 동안 수행된 작업

AuditableAttributes

감사 가능한 속성

ErrorString

모든 오류 문자열

Interface

감사 인터페이스

MemberObjectGroupRefs

구성원 객체 그룹 참조

ObjectName

객체 이름

ObjectType

객체 유형

OverflowAttributes

모든 오버플로 속성

Parameters

모든 매개 변수

Reason

이벤트 원인

ResourceName

이벤트와 연관된 자원

RoleName

이벤트와 연관된 역할

SubjectName

이벤트와 연관된 사용자 또는 서비스

Server

이벤트가 발생한 서버 이름

Status

감사 이벤트의 상태

Timestamp

감사 이벤트의 날짜/시간

JConsole에서 Attributes 탭을 누릅니다. Current라는 접두어가 붙은 속성은 해당 속성에 시스템으로 전송된 최신 감사 이벤트가 포함되었음을 나타냅니다.

그림 10-5 JConsole에서

MBean 속성 보기


사용자 정의 감사 게시자 개발

이 절에서는 Java에서 새 사용자 정의 감사 게시자를 만드는 방법에 대해 설명합니다.

Identity Manager와 함께 제공된 콘솔, 파일 및 JDBC 사용자 정의 게시자는 AuditLogPublisher 인터페이스를 구현합니다. 이러한 게시자에 대한 소스 코드는 REF 키트에 있습니다. 인터페이스에 대한 설명서도 REF 키트에서 Javadoc 형식으로 제공합니다. 인터페이스에 대한 자세한 내용은 Javadoc를 참조하십시오.


주

REF(자원 확장 기능) 키트는 제품 CD 또는 설치 이미지의 /REF 디렉토리에 들어 있습니다.


개발자는 AbstractAuditLogPublisher 클래스를 확장할 수 있습니다. 이 클래스는 구성을 구문 분석하고 게시자에 대해 모든 필수 옵션이 제공되었는지 확인합니다. REF 키트에서 예 게시자를 참조하십시오.

게시자에는 인수 없는 구성자가 있어야 합니다.

라이프사이클

다음 단계에서는 게시자의 라이프사이클에 대해 설명합니다.

  1. 객체를 인스턴스화합니다.
  2. setFormatter() 메소드를 사용하여 포매터(있는 경우)를 설정합니다.
  3. configure(Map) 메소드를 사용하여 옵션을 제공합니다.
  4. publish(Map, LoggingErrorHandler) 메소드를 사용하여 이벤트를 게시합니다.
  5. shutdown() 메소드를 사용하여 게시자를 종료합니다.

1-3단계는 Identity Manager가 시작될 때와 감사 구성이 업데이트될 때마다 실행됩니다. 종료가 호출되기 전에 감사 이벤트가 생성되지 않는 경우 4단계는 발생하지 않습니다.

configure(Map) 메소드는 동일한 게시자 객체에서 한 번만 호출됩니다. 게시자는 즉석에서 만들어지는 구성 변경 사항에 대비할 필요가 없습니다. 감사 구성이 업데이트되면 먼저 현재 게시자가 종료된 후 새 게시자가 만들어집니다.

3단계의 configure() 메소드는 WavesetException을 발생시킬 수 있습니다. 이 경우 게시자는 무시되고 게시자에 대한 다른 호출이 수행되지 않습니다.

구성

게시자에는 0개 이상의 옵션이 있을 수 있습니다. getConfigurationOptions() 메소드는 게시자에서 지원하는 옵션 목록을 반환합니다. 옵션은 PublisherOption 클래스를 사용하여 캡슐화됩니다. 이 클래스에 대한 자세한 내용은 Javadoc를 참조하십시오. 감사 구성 뷰어에서 게시자의 구성 인터페이스를 작성할 때 이 메소드를 호출합니다.

Identity Manager에서는 서버 시작 시와 감사 구성이 변경된 후에 configure(Map) 메소드를 사용하여 게시자를 구성합니다.

포매터 개발

REF 키트에는 다음과 같은 포매터에 대한 소스 코드가 포함됩니다.

포매터는 AuditRecordFormatter 인터페이스를 구현해야 합니다. 또한 포매터에는 인수 없는 구성자가 있어야 합니다. 자세한 내용은 REF 키트에 있는 Javadoc를 참조하십시오.

게시자/포매터 등록

#ID#Configuration:SystemConfiguration 객체의 감사 속성에서는 등록된 게시자와 포매터를 모두 나열합니다. 이러한 게시자와 포매터만 감사 구성 사용자 인터페이스에서 사용할 수 있습니다.



이전      목차      색인      다음     


부품 번호: 820-5434.   Copyright 2008 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.