본문으로 건너뛰기

exemONE SSO 인증

1. 개요

Azure(MS Entra ID) 계정을 통해 exemONE에 SSO(Single Sign-On) 로그인을 할 수 있도록 연동하는 기능입니다.

연동 플로우:

단계설명
1exemONE 앱 도메인 접근
2Azure 로그인 화면으로 이동
3Azure 계정으로 로그인
4exemONE으로 리다이렉트 및 자동 로그인

전제 조건: Azure > Key Vault(키 자격 증명 모음)가 생성된 상태이며, 사용자/앱에 권한이 부여된 상태여야 합니다.


2. 연동 준비 (Azure 관리자 사전 작업)

2-1. 공통 준비사항

Azure SSO 인증 후 리다이렉트할 URL 형식은 아래와 같습니다.

{APP_DOMAIN}/{CALLBACK_URL}

{APP_DOMAIN} = https://kt.exemone.com # gateway.sso.app-domain 값과 동일
{CALLBACK_URL} = /azure/ad/callback # gateway.sso.azure.redirection-url 값과 동일

-> https://kt.exemone.com/azure/ad/callback

2-2. Azure 관리자를 통한 생성 요청 항목

항목설명
App-Domain상황에 맞게 할당받습니다.
리다이렉션 URL할당받은 app-domain 뒤에 /azure/ad/callback 을 붙여 사용합니다.
Vault-Name담당자가 지정하지 않으면 exemone-vault 명을 사용합니다.

관리자가 도메인 할당 → 어플리케이션 생성 → 볼트 생성 → 권한 처리를 완료한 이후, 아래 정보를 전달받습니다.

전달 항목설명
Client-IdAzure 앱 클라이언트 ID
Tenant-IdAzure 앱 테넌트 ID
Vault-NameAzure Key Vault 이름
App-DomainexemONE 앱 도메인

3. 설정 방법

exemone-gatewayexemone-api 설정 파일 수정을 통해 Azure 외부 로그인 기능을 연동합니다.

3-1. exemone-gateway 설정 파일에 SSO 옵션 추가

설정 파일 경로: {EXEMONE_HOME}/containers/exemone-gateway/configs/gateway.yaml

설정 포맷:

gateway:
port: 8080
access-token-duration-minute: 100
keep-logged-in: true
session-timeout-mode: false
sso:
sso-path: "/" # Exemone 진입점 (고정값)
authorization-path: "/sso/azure/kt" # API 서버 인증 URL (고정값)
redirection-url: "{app-domain}/sso" # SSO 인증 실패 시 Redirect URL
redirection-error-url: "https://{app-domain}/CUSTOM/ssoErrorPage.html" # SSO 인증 실패 시 에러 Redirect URL
app-domain: "{app-domain}" # 앱 도메인
azure:
redirection-url: "{callback-url}" # Azure AD 앱 콜백 URL
client-id: "{client-id}" # Azure 앱 클라이언트 아이디
tenant-id: "{tenant-id}" # Azure 앱 테넌트 아이디
client-secret: "{client-secret}" # Azure 앱 시크릿 (개발용)
vault-name: "{vault-name}" # Azure Vault 이름

설정 예시:

gateway:
port: 8080
access-token-duration-minute: 100
keep-logged-in: true
session-timeout-mode: false
sso:
sso-path: "/"
authorization-path: "/sso/azure/kt"
redirection-url: "https://kt.exemone.com/sso"
redirection-error-url: "https://kt.exemone.com/CUSTOM/ssoErrorPage.html"
app-domain: "https://kt.exemone.com"
azure:
redirection-url: "/azure/ad/callback"
client-id: "91855555-c278-4e77-9e77-5c9999999998"
tenant-id: "3fc55555-7fc7-4c3a-953c-f27777778788"
vault-name: "exemone-vault"

3-2. exemone-api 설정 파일 수정

설정 파일 경로: {EXEMONE_HOME}/containers/exemone-api/configs/api.yaml

SSO 옵션 활성화 및 로그아웃 페이지 설정:

xm:
...
sso:
sso-mode: true
redirection-logout-url: https://{app-domain}/manager
...
항목설명
sso-modetrue로 설정하여 SSO 모드를 활성화합니다.
redirection-logout-url로그아웃 시 리다이렉트할 페이지 URL을 설정합니다.

3-3. 서비스 재시작

[도커 설치 환경]

# gateway 재시작
${EXEMONE_HOME}/scripts/restart.sh gateway

# api 재시작
${EXEMONE_HOME}/scripts/restart.sh api

[바이너리 설치 환경]

# gateway 재시작
${EXEMONE_HOME}/onctl restart gateway

# api 재시작
${EXEMONE_HOME}/onctl restart api

4. 로그인 및 사용자 자동 등록 확인

4-1. 앱 도메인으로 로그인

설정 완료 후 앱 도메인으로 접속하면 Azure 계정으로 자동 로그인됩니다.

4-2. 사용자 자동 등록 확인

Azure 로그인 성공 시 exemONE에 사용자가 아래 정보로 자동 등록됩니다.

항목자동 입력 값
그룹Default
ID / SSO IDAzure 계정 인증 ID 값
이메일Azure 계정 이메일
이름Azure 사용자 이름

SSO ID 관리 경로: Setting > Account > User > User List

  • SSO ID 항목은 외부 연동 ID이며, 사용을 위해 별도의 서버 설정이 필요합니다.