계정 및 권한
exemONE 계정 관리 및 외부 인증(SSO) 기능 상세 설명
1. 사용자 관리 (User Management)
Role Permission이 'Admin'인 사용자만 이 화면에 접근할 수 있습니다.

1-1. 사용자 목록 (User List)

User List에서 확인 및 관리할 수 있는 항목:
| 항목 | 내용 |
|---|---|
| ID | 사용자 ID (클릭 시 사용자 정보 수정 팝업 열림) |
| 사용자 이메일 | |
| SSO ID | 외부 연동 ID (별도 서버 설정 필요) |
| Name | 사용자 이름 |
| Group | 사용자가 속한 그룹 |
| Role | 사용자의 역할 (Admin/User) |
| Role Name | 사용자에게 부여된 역할 이름 |
| Phone | 연락처 |
| Locked | Toggle 버튼으로 계정 잠금 기능 |
| SMS / Email | Toggle 버튼으로 수신 여부 설정 |
1-2. 사용자 추가 (Add User)
User List에서 [Add User] 버튼 클릭 후 아래 정보를 입력합니다:

| 순번 | 항목 | 내용 |
|---|---|---|
| 1 | Group | 그룹 선택 (다중 선택 가능) |
| 2 | Role | 역할 선택 (Admin/User) |
| 3 | ID | 사용자 ID 입력 |
| 4 | Role Name | 역할 이름 선택 |
| 5 | 이메일 입력 | |
| 6 | Name | 이름 입력 |
| 7 | SSO ID | 외부 연동 ID 입력 (별도 서버 설정 필요) |
| 8 | Phone | 연락처 입력 |
| 9 | Password | 비밀번호 입력 |
| 10 | Password Confirmation | 비밀번호 확인 |
1-3. 사용자 편집 (Edit User)
User List에서 ID를 클릭하면 사용자 정보 편집 화면이 열리며, [Edit] 버튼을 클릭하여 수정할 수 있습니다. Reset Password 버튼으로 비밀번호 초기화도 가능합니다.

2. 사용자 그룹 관리 (User Group Management)

2-1. 그룹 추가 (Add Group)
[Add Group] 버튼을 클릭하여 그룹 정보와 소속 사용자를 등록합니다.

- Group Name: 그룹 이름 입력
- Description: 설명 입력
- User In Group: 체크박스로 사용자를 선택하여 'Selected User List'에 추가/삭제
2-2. 그룹 편집 (Edit Group)
그룹 목록에서 편집 아이콘을 클릭하여 그룹 이름, 설명, 소속 사용자를 수정할 수 있습니다.

3. 권한 관리 (Permission)
권한은 크게 Role Permission (역할 권한)과 Monitoring Target Permission (모니터링 타겟 권한)으로 구분됩니다.

3-1. Role Permission (역할 권한)
사용자가 접근할 수 있는 화면의 권한을 설정합니다.

Add Role 시 설정 항목:

| 항목 | 내용 |
|---|---|
| Role | 사용자 역할 선택 (Admin/User) |
| Role Name | 역할 이름 입력 |
| Password Change Cycle | 비밀번호 변경 주기 |
| Permission List | 화면별 권한 설정 (Dashboard Management, Monitoring Management, Setting Management) |
3-2. Monitoring Target Permission (모니터링 타겟 권한)
참고 문서: Setting > Account > Permission > Monitoring Target Permission
사용자 그룹별로 모니터링할 수 있는 타겟의 권한을 설정합니다.

- Monitoring Target: 타겟별 권한 설정
- Business Target: 비즈니스별 권한 설정
- Permission 컬럼에 체크하여 모니터링 권한을 부여
3-3. 권한 그룹/개별 설정 (Group vs Member 권한)
참고 문서: 권한 설정 사용 가이드

핵심 규칙:
- Group과 Member 권한은 동시에 적용되지 않으며, 둘 중 하나만 선택 가능
- Member 권한이 Group 권한보다 우선 적용
| 상태 | 설명 |
|---|---|
| Group Activation ON | 하위 Target Activation은 상속 상태(비활성화)로 표시 |
| Group Activation OFF | Target Activation이 개별 편집 가능 상태로 전환 |
| Target Activation ON | 해당 타겟에 직접 권한이 부여된 상태 |
| Target Activation OFF | 권한이 없는 상태 |

4. 외부 인증 (SSO) 기능
4-1. Azure SSO 인증 (MS Entra ID 연동)
참고 문서: SSO 인증 (KT PoC)
Azure 사용자로 exemONE에 로그인하는 기능입니다.

사전 조건: Azure > Key Vault(키 자격 모음)가 생성되어 있고, 사용자/앱에 권한이 부여된 상태
연동 플로우:
exemONE 접근 → Azure 로그인 화면 이동 → 로그인 → exemONE으로 리다이렉트
설정 단계:
1단계: exemone-gateway 설정 파일에 SSO 옵션 추가
- 설정 파일:
{EXEMONE_HOME}/installer/exemone/containers/exemone-gateway/configs/gateway.yaml
gateway:
sso:
sso-path: "/"
authorization-path: "/sso/azure/kt"
redirection-url: "{app-domain}/sso"
redirection-error-url: "https://{app-domain}/CUSTOM/ssoErrorPage.html"
app-domain: "{app-domain}"
azure:
redirection-url: "/azure/ad/callback"
client-id: "{client-id}"
tenant-id: "{tenant-id}"
client-secret: "{client-secret}"
vault-name: "{vault-name}"
2단계: exemone-api 설정 파일에 SSO 모드 활성화
- 설정 파일:
{EXEMONE_HOME}/installer/exemone/containers/exemone-api/configs/application.yaml
xm:
sso:
sso-mode: true
redirection-logout-url: https://{app-domain}/manager
3단계: gateway 재시작
$ exemone/installer/exemone/scripts/restart.sh gateway
4단계: api 재시작
$ exemone/installer/exemone/scripts/restart.sh api
5단계: 앱 도메인으로 로그인 시 Azure 계정으로 자동 로그인

6단계: 사용자 자동 등록 확인 - SSO 로그인 시 자동으로 다음 정보가 입력됩니다:
- 그룹: Default
- ID/SSO ID: Azure 계정 인증 ID 값
- 이메일: Azure 계정 이메일
- 이름: Azure 사용자 이름

4-2. SSO 사용자 외부 동기화 (삼성카드 모니모 방식)
참고 문서: SSO 인증 (삼성카드 모니모)
SSO 연동을 위한 사용자 외부 동기화 기능으로, IF 테이블 및 트리거를 통해 외부 시스템에서 전달된 사용자 정보를 xm_user 테이블에 자동 등록합니다.
설정 단계:
1단계: API 설정 파일에 외부 동기화 옵션 추가
- 위치:
/container/exemone-api/config/application.yml
xm:
user:
externalSync:
enabled: true
cron: 0 * * * * * # 1분 주기 (원하는 표현식으로 수정 가능)
targetCode: ssc
defaultUserRoleName: USER
defaultAdminRoleName: ADMIN
2단계: 사용자 IF 테이블 생성 (exemone PostgreSQL에서 실행)
3단계: 트리거 및 함수 생성 - 사용자 등록 시 custom 필드에 11자리 유니크 값을 자동 생성
확인 방법:
xm_user_if_ssc테이블에 사용자 정보 추가xm_user테이블에 신규 사용자 자동 등록 확인custom컬럼에 11자리 유니크 값 자동 생성 확인
4-3. Google OTP 2차 인증
참고 문서: Google OTP 적용 가이드
Google OTP를 통한 2차 인증(Two-Factor Authentication) 기능입니다.
설정 방법:
1단계: API 설정 파일에 OTP 옵션 추가
- 위치:
$EXEMONE_HOME/containers/exemone-api/configs/application.yaml
xm:
twoFactorAuthentication: OTP # 전체 OTP 사용 (NONE → 사용자별 OTP 사용)
login:
externalAuthentication:
enabled: false

2단계: API 모듈 재기동
$ ./scripts/restart.sh api
로그인 절차:
- exemONE 로그인 실행
- Google OTP 등록 팝업 출현 → QR코드 또는 접속 코드로 등록

- 'Authenticator' 앱에 등록 확인 후, 2차 로그인 화면에서 코드 입력

- 로그인 완료

5. 추가 참고: Session Timeout 설정
사용자 역할 권한별 Session Timeout 기능을 적용하여, 설정된 시간 초과 시 자동 로그아웃됩니다.
활성화 방법:
- API 설정 파일에서
sessionTimeoutMode: true설정 - Gateway 설정 파일에서
session-timeout-mode: true설정 - Setting > Permission > Role Permission > Add/Edit Role 화면에서
Session Time값 설정

주의사항
- 계정 관리(User & User Group, Permission) 메뉴는 Admin 역할을 가진 사용자만 접근 가능합니다.
- SSO ID는 사용자 추가/편집 시 설정하며, 별도의 서버 설정이 필요합니다.
- Azure SSO 연동 시 Azure 관리자로부터 Client-Id, Tenant-Id, Vault-Name, App-Domain 정보를 사전에 전달받아야 합니다.
- Google OTP 설정에서
twoFactorAuthentication: OTP는 전체 사용자에게 OTP를 적용하며,NONE으로 설정하면 사용자별로 개별 적용할 수 있습니다. - 권한 설정 시 Member 권한이 Group 권한보다 우선 적용되므로, 개별 사용자에게 특별한 권한을 부여할 때는 Member 모드를 사용하면 됩니다.