설치 매뉴얼
개요
로그프레소 소나와 AlphaKey를 연동해 두 가지 기능을 사용할 수 있습니다.
- SSO 로그인: SAML 2.0 기반으로 AlphaKey 계정을 통해 소나에 로그인합니다. 이 연동에서 소나는 SP(Service Provider), AlphaKey는 IdP(Identity Provider) 역할을 담당합니다.
- 감사 로그 수집: AlphaKey의 SSO/IAM 감사 이벤트를 소나로 전송받아 적재합니다. AlphaKey가 소나로 로그를 전송하는 푸시 방식입니다.
두 기능은 독립적이며, SSO만 사용하거나 로그 수집만 사용할 수도 있습니다. 설정 값은 AlphaKey와 소나 양쪽에 나누어 입력하며, 한쪽에서 입력한 값이 있어야 다른 쪽 값이 만들어집니다. 아래 순서대로 진행하세요.
- AlphaKey에 앱을 등록하고 Sonar 주소를 입력합니다.
- AlphaKey가 발급한 IdP 정보를 소나 SSO 설정에 입력합니다.
- AlphaKey → 소나 순서로 연동을 활성화하고 테스트합니다.
- 소나에 수집기를 등록하고, 그 수신 주소를 AlphaKey에 로그 전송 대상으로 지정합니다.
적용 범위
요구 사항
| 항목 | 요구사항 | 비고 |
|---|---|---|
| 소나 버전 | 5.0.2603.0 이상 | 시스템 > SSO 메뉴 지원 버전 |
| 외부 서비스 계정 | AlphaKey 관리자 계정 | 앱 등록·로그 전송 설정 권한 필요 |
| 소나 권한 | 시스템 관리 권한 | 시스템 > SSO, 수집 > 수집기 메뉴 접근 |
| 접속 주소 | HTTPS로 접근 가능한 Sonar 주소 | 리다이렉트 URL(ACS URL)에 사용 |
| 네트워크 허용 | HTTPS/443 (AlphaKey → 소나 수집 노드, Inbound) | 감사 로그 수집 시 방화벽 정책 반영 필요 |
AlphaKey 앱 등록
AlphaKey에 로그프레소 앱을 등록하고 연동 정보를 입력합니다. 이 단계에서 발급되는 IdP 정보가 소나 SSO 설정의 입력 값이 됩니다.
단계 1: 앱 추가
AlphaKey 관리자 페이지에서 AlphaKey > 앱 > 앱 현황으로 이동한 뒤 앱 추가를 클릭합니다.
앱 추가 방식 선택에서 AlphaKey에 등록된 앱 추가를 선택하고 다음을 클릭합니다.
Logpresso를 검색해 앱을 선택하고 적용을 클릭합니다.
계약 정보를 입력하면 앱 연동 페이지가 생성됩니다.
단계 2: 연동 정보 입력
생성된 앱 연동 페이지에 Sonar 주소를 입력합니다.
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 인증 프로토콜 | SAML 선택 |
| 필수 | 클라이언트 페이지 | Sonar 주소 |
| 필수 | 리다이렉트 URL | Sonar 주소 + /sso/alphakey-saml2 |
| 필수 | 엔티티 ID | Sonar 주소 |
입력 예시입니다.
예시) 로그프레소 소나 분석서버 URL : https://sample.logpresso.cloud 인 경우 아래와 같이 설정합니다.
클라이언트 페이지 : https://sample.logpresso.cloud
리다이렉트 URL : https://sample.logpresso.cloud/sso/alphakey-saml2
엔티티 ID : https://sample.logpresso.cloud
단계 3: IdP 정보 확인
입력을 완료한 뒤 IDP 정보 보기를 클릭합니다. 기본정보, Meta data, 인증서 PEM 세 탭의 값을 다음 단계에서 소나에 입력하므로 창을 열어 둔 채로 진행하세요.
로그프레소 SSO 설정
시스템 > SSO에서 추가를 클릭하고, AlphaKey의 앱 연동 페이지와 IDP 정보 창에 표시된 값을 아래와 같이 입력합니다.
| 구분 | 항목 | 설정 | AlphaKey 확인 위치 |
|---|---|---|---|
| 필수 | SSO | AlphaKey SAML 2.0 선택 | — |
| 선택 | 설명 | SSO 설정을 구분할 설명 | — |
| 필수 | ACS URL | 로그인 후 응답을 받을 콜백 주소 | 앱 연동 페이지의 리다이렉트 URL과 동일 |
| 필수 | SP 식별자 | SP 고유 식별값 | 앱 연동 페이지의 엔티티 ID와 동일 |
| 필수 | SSO URL | IdP가 로그인 요청을 받는 주소 | IDP 정보 > Meta data > SingleSignOnService Location |
| 필수 | IdP 식별자 | IdP 고유 식별값 | IDP 정보 > 기본정보 > 발급자 |
| 필수 | X.509 인증서 | IdP 서명 검증용 공개 인증서 | IDP 정보 > 인증서 PEM |
ACS URL과 SP 식별자는 AlphaKey에 입력한 리다이렉트 URL·엔티티 ID와 문자열이 정확히 일치해야 합니다.
SSO URL은 Meta data 탭의 SingleSignOnService 요소에 있는 Location 주소를 입력합니다.
IdP 식별자는 기본정보 탭의 발급자(IDP 엔티티 ID)를 입력합니다.
X.509 인증서는 인증서 PEM 탭에서 BEGIN CERTIFICATE, END CERTIFICATE 두 줄을 제외한 Base64 본문만 복사해 입력합니다.
연동 활성화
AlphaKey와 소나 양쪽 입력이 끝나면 아래 순서대로 활성화합니다.
AlphaKey에서 적용을 클릭하고, 소나에서 저장을 클릭합니다.
이어서 소나의 SSO 목록에서 등록된 AlphaKey SAML 2.0의 활성화 스위치를 켭니다. AlphaKey에서는 연결테스트를 클릭해 소나 로그인 화면이 호출되는지 확인합니다.
연결테스트가 정상이면 연동을 클릭합니다. AlphaKey 앱 현황에 Logpresso 앱이 생성되면 SSO 연동이 완료됩니다.
로그프레소 수집 설정
AlphaKey 감사 로그는 AlphaKey가 소나로 직접 전송하는 방식입니다. 소나에 수신용 수집기를 먼저 만들고, 여기서 정한 콜백 이름으로 수신 주소가 결정됩니다.
단계 1: 수집기 추가
수집 > 수집기에서 추가를 클릭하고 아래 값을 입력합니다.
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 수집기를 식별할 고유한 이름 (예: AlphaKey Audit) |
| 필수 | 적재 위치 | 로그프레소 플랫폼 구성에 따라 적합한 노드 선택 |
| 필수 | 수집 모델 | AlphaKey 선택 |
| 필수 | 테이블 | IAM_ALPHAKEY로 시작하는 테이블 이름 입력 (예: IAM_ALPHAKEY) |
| 필수 | 콜백 이름 | alphakey 입력 |
| 선택 | 실행 방식 | 기본값 유지 |
| 선택 | 주기(초) | 기본값 유지 |
단계 2: AlphaKey 로그 전송 대상 지정
| 이벤트명 | 설명 |
|---|---|
| AbnormalConnectAction | 시스템에서 비정상적인 접속 시도 또는 의심스러운 로그인 패턴을 감지했을 때 실행되는 보안 조치 |
| AbnormalConnectActionIdUnsuspend | 비정상 접속 시도로 인해 차단된 사용자 아이디의 차단이 자동으로 또는 관리자에 의해 해제될 때 발생하는 이벤트 |
| AccessRequestedResolved | 차단된 접속 요청 또는 리소스 접근 요청이 관리자에 의해 승인되었을 때 발생하는 이벤트 |
| AdministratorAdministratorDeleted | 관리자 권한을 가진 사용자가 삭제되었을 때 발생하는 이벤트 |
| AdministratorCreated | 일반 관리자 권한을 가진 새로운 사용자가 생성되었을 때 발생하는 이벤트 |
| AdministratorPermissionPeriod | 관리자 권한의 유효 기간이 설정되거나 변경되었을 때 발생하는 이벤트 |
| AppAddToAppGroup | 애플리케이션 그룹에 새로운 앱이 추가되었을 때 발생하는 이벤트 |
| AppCreated | 새로운 애플리케이션이 개별 등록하여 시스템에 연동되었을 때 발생하는 이벤트 |
| AppDeleted | 등록되어 있는 애플리케이션이 시스템에서 삭제되었을 때 발생하는 이벤트 |
| AppPermissionIntermediateApproval | 애플리케이션 권한 신청이 중간 결재자에 의해 승인되었을 때 발생하는 이벤트 |
| AppPermissionIntermediateRejection | 애플리케이션 권한 신청이 중간 결재자에 의해 반려되었을 때 발생하는 이벤트 |
| AppPermissionRequested | 사용자가 특정 애플리케이션 사용 권한을 신청했을 때 발생하는 이벤트 |
| AppPermissionRevocationRequested | 사용자의 애플리케이션 사용 권한 해제를 신청했을 때 발생하는 이벤트 |
| AppRemoveToAppGroup | 애플리케이션 그룹에서 앱이 제거되었을 때 발생하는 이벤트 |
| AppUpdated | 등록된 애플리케이션의 상세 연동 정보 또는 설정이 편집되었을 때 발생하는 이벤트 |
| AppUsagePeriodExtensionRequested | 애플리케이션의 이용 기간 연장을 신청했을 때 발생하는 이벤트 |
| AuthenticationMethodTerminated | 사용자의 인증 수단(예: 인증서, 토큰)이 해지되었을 때 발생하는 이벤트 |
| AuthenticatorActivated | 사용자의 OTP 인증기가 활성화되었을 때 발생하는 이벤트 |
| GroupProvisioning | 사용자 그룹에 대한 프로비저닝(권한 및 리소스 자동 할당)이 실행되었을 때 발생하는 이벤트 |
| GroupProvisioningManualExecution | 사용자 그룹에 대한 프로비저닝을 관리자가 수동으로 실행했을 때 발생하는 이벤트 |
| HrSynchronizationDepartmentSync | 인사 시스템으로부터 부서 정보가 동기화되었을 때 발생하는 이벤트 |
| HrSynchronizationFailure | 인사 시스템과의 동기화가 실패했을 때 발생하는 이벤트 |
| HrSynchronizationSuccess | 인사 시스템과의 동기화가 성공적으로 완료되었을 때 발생하는 이벤트 |
| HrSynchronizationUserSync | 인사 시스템으로부터 사용자 정보가 동기화되었을 때 발생하는 이벤트 |
| InitialPasswordSetup | 새로 생성된 사용자가 처음으로 비밀번호를 설정했을 때 발생하는 이벤트 |
| LoginHistoryReport | 사용자가 자신의 로그인 내역에 대해 신고(또는 조회)했을 때 발생하는 이벤트 |
| LoginRetentionPeriodUpdated | 로그인 유지 기간(세션 유지 시간) 설정이 편집되었을 때 발생하는 이벤트 |
| LoginSuccess | 사용자가 올바른 인증정보로 시스템에 정상 접속했을 때 발생하는 이벤트 |
| MfaAuthenticationCompleted | 다중 인증(2FA/MFA) 프로세스가 성공적으로 완료되었을 때 발생하는 이벤트 |
| SecurityHistoryReport | 사용자가 자신의 보안 관련 내역에 대해 신고(또는 조회)했을 때 발생하는 이벤트 |
| SuspiciousActivityReported | 시스템에서 감지한 의심스러운 활동(부정 로그인 시도, 비정상 접근 등)이 보고되었을 때 발생하는 이벤트 |
| TwoFactorAuthSent | 2단계 인증 코드가 사용자의 등록된 연락처(이메일, SMS 등)로 발송되었을 때 발생하는 이벤트 |
| UserAccessBlockIpCreated | 사용자 정보 관리에서 접속 차단 IP가 새로 추가되었을 때 발생하는 이벤트 |
| UserAccessBlockIpDeleted | 사용자 정보 관리에서 접속 차단 IP가 삭제되었을 때 발생하는 이벤트 |
| UserAccessBlockIpReasonUpdated | 사용자 정보 관리에서 접속 차단 IP 등록 사유가 수정되었을 때 발생하는 이벤트 |
| UserAccessBlockIpToggled | 사용자 정보 관리에서 접속 차단 IP의 활성화/비활성화 상태가 변경되었을 때 발생하는 이벤트 |
| UserAccountLocked | 비정상적인 로그인 시도(잘못된 비밀번호 반복 입력 등)로 인해 사용자 계정이 일시적으로 잠금된 이벤트 |
| UserActivated | 새로 생성된 사용자의 기본 정보가 최초로 활성화되었을 때 발생하는 이벤트 |
| UserAddToAppGroup | 애플리케이션 그룹 관리에서 사용자가 추가되었을 때 발생하는 이벤트 |
| UserAddToUserGroup | 사용자 그룹의 상세 정보 관리에서 새로운 사용자가 추가되었을 때 발생하는 이벤트 |
| UserAppPermissionCreated | 사용자 정보 관리에서 특정 사용자에게 애플리케이션 사용 권한이 새로 부여되었을 때 발생하는 이벤트 |
| UserAppPermissionRevoked | 사용자 정보 관리에서 특정 사용자의 애플리케이션 사용 권한이 해제되었을 때 발생하는 이벤트 |
| UserAssignedToApplication | 애플리케이션 관리에서 사용자에게 사용 권한이 추가되었을 때 발생하는 이벤트 |
| UserAuthenticationDeleted | 사용자 정보 관리에서 등록된 인증 수단(인증서, 토큰 등)이 삭제되었을 때 발생하는 이벤트 |
| UserCreated | 시스템 관리자가 사용자를 직접 추가했을 때 발생하는 이벤트 |
| UserDeleted | 사용자 정보 관리에서 사용자가 삭제되었을 때 발생하는 이벤트 |
| UserGranted | 사용자 ID가 신규로 생성되어 사용자에게 부여되었을 때 발생하는 이벤트 |
| UserGroupCreated | 새로운 사용자 그룹이 생성되었을 때 발생하는 이벤트 |
| UserGroupDeleted | 사용자 그룹이 삭제되었을 때 발생하는 이벤트 |
| UserGroupInfoUpdated | 사용자 그룹의 정보(이름, 설명, 멤버 등)가 수정되었을 때 발생하는 이벤트 |
| UserHomomorphicDeviceDeleted | 사용자 정보 관리에서 동형암호 기기가 삭제되었을 때 발생하는 이벤트 |
| UserHomomorphicDeviceInitialization | 사용자 정보 관리에서 동형암호 기기가 초기화되었을 때 발생하는 이벤트 |
| UserLogout | 사용자가 시스템에서 로그아웃했을 때 발생하는 이벤트 |
| UserPasswordChanged | 사용자가 자신의 비밀번호를 변경했을 때 발생하는 이벤트 |
| UserPasswordExpired | 사용자의 비밀번호 변경 주기가 만료되어 비밀번호 변경을 알리는 이벤트 |
| UserPasswordReset | 관리자가 사용자의 비밀번호를 초기화하거나 재설정했을 때 발생하는 이벤트 |
| UserPrivilegeRevoked | 사용자 아이디의 특정 권한이 회수되었을 때 발생하는 이벤트 |
| UserProfileUpdated | 사용자 정보 관리에서 사용자의 기본 정보(이름, 연락처 등)가 수정되었을 때 발생하는 이벤트 |
| UserRemoveToAppGroup | 애플리케이션 그룹 관리에서 사용자가 제거되었을 때 발생하는 이벤트 |
| UserRemoveToUserGroup | 사용자 그룹의 상세 정보 관리에서 기존 사용자가 제외되었을 때 발생하는 이벤트 |
| UserRevoked | 사용자 아이디가 회수(삭제)되었을 때 발생하는 이벤트 |
| UserSuspended | 사용자 아이디가 정지되었을 때 발생하는 이벤트 |
| UserUnassignedFromApplication | 애플리케이션 관리에서 사용자의 사용 권한이 회수되었을 때 발생하는 이벤트 |
AlphaKey 관리자 페이지에서 감사 로그 전송 대상을 아래와 같이 지정합니다.
| 항목 | 값 |
|---|---|
| 호스트 | Sonar 주소 |
| 포트 | 443 |
| 경로 | /log/alphakey |
| 메소드 | POST |
| Content-Type | application/json |
다음은 전송 주소 예시입니다.
설치 후 검증
SSO 로그인 확인
소나 로그인 화면에 AlphaKey SAML 2.0 로그인이 추가되었는지 확인하고, AlphaKey 계정으로 로그인합니다.
- 정상: AlphaKey 인증을 거쳐 소나에 로그인됩니다.
- 비정상: 서명 검증 오류가 발생하면 X.509 인증서에 BEGIN/END 라인이 포함되지 않았는지, 리다이렉트 URL과 ACS URL이 동일한지 확인합니다.
로그 수집 확인
아래 쿼리로 수집이 실제로 동작하는지 확인합니다. IAM_ALPHAKEY는 수집기에 지정한 테이블 이름으로 바꿔 실행합니다.
- 정상: 10분 내 수집된 레코드 수가 1 이상입니다.
- 비정상: 0이면 AlphaKey의 로그 전송 설정(호스트·경로), 수집기의 콜백 이름 일치 여부, 수집 노드로의 네트워크 도달(HTTPS/443 Inbound)을 재확인합니다.
필드가 정상적으로 분리되었는지는 아래 쿼리로 확인합니다.
table duration=10m IAM_ALPHAKEY
| fields _time, event_type, event_group, user, user_name, src_ip, msg













