Skip to main content

Keycloak

Keycloak 은 웹 애플리케이션과 RESTful 웹 서비스를 위한 오픈소스 SSO(Single Sign-On) 솔루션 입니다. 인증·권한·세션·SNS 연동 등 보안 기능을 표준화된 형태로 제공하며, 조직별 로그인·회원가입·계정 관리 화면을 커스터마이징할 수 있습니다. LDAP / Active Directory 연동도 지원됩니다. Seahorse Cloud 는 사용자·관리자 인증을 Keycloak 에 위임하며, 본 문서는 운영자가 Keycloak Admin Console 을 통해 인증 정책을 관리하는 방법을 안내합니다. 공식 문서: Keycloak Server Admin Guide

Realm (렐름)

Keycloak 은 사용자를 독립된 가상 공간인 Realm 단위로 관리합니다. Realm 별로 보안 정책·도메인 주소·로그인 화면이 분리되며, 운영자는 Realm 에서 회원 탈퇴·로그인 화면 세팅 등을 수행합니다. Realm 메인 Keycloak 에는 두 종류의 Realm 이 있으며, 이 둘의 구분이 매우 중요합니다.
Realm목적대상 사용자
Master RealmKeycloak 시스템 자체 관리 — 다른 Realm 을 생성·관리하는 최상위 영역Keycloak 전체 관리자(admin 계정)만
Seahorse Realm (일반 Realm)실제 서비스(Console·Agent 등) 의 인증·인가 처리Seahorse 서비스의 실제 사용자
Master Realm 에 일반 서비스 사용자를 절대 생성하지 마세요. Master Realm 은 오직 관리자용이며, 일반 사용자는 Seahorse 용 Realm 에 등록되어야 합니다.
사용자에게 비밀번호 재설정·회원가입 승인 이메일 발송 기능을 제공하려면, 네트워크·SMTP 서버·게이트웨이 설정이 필요합니다. 미설정 시 이메일 의존 흐름이 모두 실패합니다.

Keycloak 사용자 관리

Keycloak Realm 페이지에서 사용자 생성·수정·삭제·권한 관리를 수행합니다.

사용자 생성 (운영자 콘솔)

전제 조건: Master Realm 이 아닌 Seahorse Realm 에 있어야 합니다.
1

사용자 메뉴 진입

좌측 메뉴에서 Users 클릭.
2

사용자 추가

Add user 클릭.
3

정보 입력

사용자 이름·이메일·이름(First/Last)·Email Verified 등 필수 정보를 입력.
4

저장

Save 클릭 → 사용자 관리 상세 페이지로 이동.

사용자 등록 경로

Keycloak 에서 신규 사용자가 추가되는 경로는 세 가지입니다.
경로설명
관리자 수동 추가운영자가 Admin Console 또는 REST API 로 추가
자가 등록 (Self-Registration)로그인 화면의 Register 링크로 사용자가 직접 가입 — Seahorse 는 기본 활성
신원 중개 (Identity Brokering)외부 IdP(Google·GitHub 등) 로그인 시 자동 프로비저닝
LDAP / AD 연동사용자 저장소 활성 시 외부 디렉토리에서 자동 동기화

자가 등록 활성화 / 비활성화

1

Realm 설정 진입

메뉴에서 Realm settings 클릭.
2

Login 탭

Login 탭으로 이동.
3

User registration 토글

User registration 을 ON 으로 전환 → 로그인 페이지에 Register 링크 노출.
사용자는 등록을 완료하기 위해 프로필 정보를 양식에 입력해야 합니다. 양식 필드는 운영자가 추가·제거·커스터마이즈할 수 있습니다.

비밀번호 및 자격 증명 관리

사용자의 자격 증명은 Users → 사용자 상세 → Credentials 탭에서 관리합니다. 자격 증명 관리
컬럼설명
Type자격 증명 유형 — Password / OTP / WebAuthn
User Label로그인 시 선택 옵션으로 표시될 라벨 (자유 입력)
Data자격 증명의 비기밀 메타데이터 (기본 숨김)
Actions비밀번호 재설정 / 삭제
우선순위 변경: 행을 드래그 앤 드롭하여 변경. 가장 위에 있는 자격 증명이 로그인 시 먼저 제시됩니다.
  • 운영자가 다른 유형의 자격 증명을 대신 설정 해 줄 수는 없습니다. OTP 등록·변경은 사용자의 책임입니다.
  • 사용자가 OTP 장치를 분실 하거나 자격 증명이 유출된 경우, 운영자가 Credentials 탭에서 해당 자격 증명을 삭제 해 주세요. 사용자는 다음 로그인 시 재등록해야 합니다.

비밀번호 정책 설정

Authentication → Policies → Password Policy 에서 비밀번호 복잡도·재사용 금지·만료 정책을 설정합니다. 비밀번호 정책 Realm settings → Security Defenses 에서 서비스별 최대 로그인 시도 횟수·재인증 타임을 설정할 수 있습니다. Brute Force 방지

사용자 비밀번호 재설정 (관리자)

운영자가 직접 재설정:
1

사용자 선택

메뉴 Users → 대상 사용자 선택 → Credentials 탭.
2

새 비밀번호 입력

Set password 섹션에서 새 비밀번호 입력.
3

임시 비밀번호 여부

Temporary 토글:
  • ON — 사용자가 첫 로그인 시 반드시 변경
  • OFF — 입력한 비밀번호를 계속 사용 가능
Set Password 클릭으로 적용.
사용자에게 이메일로 재설정 요청:
1

사용자 선택

메뉴 Users → 대상 사용자 → Credentials 탭.
2

Reset credentials

Credential Reset 클릭.
3

Update Password 선택

Actions 목록에서 Update Password 선택.
4

이메일 발송

Send email 클릭 → 사용자에게 비밀번호 재설정 링크 전송.
이메일 발송은 SMTP 서버 설정이 완료된 경우에만 정상 동작합니다. SMTP 미설정 시 버튼은 동작하지만 이메일이 실제로 전송되지 않습니다.

사용자 삭제

더 이상 애플리케이션에 접근할 필요가 없는 사용자를 삭제합니다. 사용자 프로필과 데이터도 함께 삭제됩니다.
1

사용자 페이지 진입

메뉴 Users 클릭 또는 검색창으로 사용자 탐색.
2

삭제 실행

사용자 행의 ⋯ ActionsDelete → 확인 다이얼로그에서 삭제 확정.
사용자 삭제는 되돌릴 수 없으며, 해당 사용자가 소유한 Seahorse 리소스(에이전트·API Key 등) 처리 방식은 회원 탈퇴 운영 가이드 를 참고하세요.

Keycloak 세션

사용자가 Realm 클라이언트(Seahorse) 에 로그인하면 Keycloak 은 사용자별 세션 을 유지하며 방문 클라이언트를 기록합니다. Realm 관리자는 세션별로 다음 작업을 수행할 수 있습니다.
  • 활성 사용자와 로그인 위치 확인
  • 사용자를 세션에서 강제 로그아웃
  • 토큰 취소
  • 토큰·세션 타임아웃 설정
Seahorse 의 세션은 두 개의 토큰이 결합된 구조 입니다.
  1. Keycloak 토큰 — 사용자가 인증된 사용자임을 증명. Keycloak 설정으로 수명 제어 가능.
  2. Seahorse Cloud 내부 토큰 — Keycloak 인증 이후 Seahorse 가 별도 발급하는 서비스 세션 토큰. 7 일 고정 이며 설정 변경이 불가합니다.

Keycloak 세션 운영

메뉴의 Sessions 에서 활성 클라이언트·세션의 최상위 뷰를 확인합니다. 세션 개요

클라이언트 세션 조회 (Seahorse·Agent 등)

클라이언트 세션
1

Clients 메뉴

메뉴 Clients 클릭.
2

클라이언트 선택

대상 클라이언트 클릭.
3

Sessions 탭

Sessions 탭에서 해당 클라이언트의 활성 세션 확인.

세션 기본값

세션 기본 설정 Seahorse 기본 제공 세션 설정값 — 운영 정책에 따라 Realm settings 의 Sessions / Tokens 탭에서 조정합니다.

사용자 세션 조회

사용자 세션 메뉴 Users → 사용자 선택 → Sessions 탭에서 해당 사용자의 모든 활성 세션 조회.

활성 세션 일괄 취소

시스템 침해·보안 사고 발생 시 모든 활성 세션을 취소 할 수 있습니다. 세션 일괄 취소
1

Sessions 메뉴

메뉴 Sessions 클릭.
2

Revocation

Actions → Revocation 선택 → Set to now / Push 실행으로 현재까지 발급된 모든 토큰 무효화.
일괄 취소는 모든 활성 사용자를 강제 로그아웃 시킵니다. 정상 운영 중에는 영향이 크므로, 반드시 보안 사고·토큰 유출 등 긴급 상황에만 사용하세요.

이벤트 추적 · 감사 구성

Keycloak 은 로그인·관리 작업 이벤트를 기록할 수 있으며, 이벤트 리스너 SPI 를 통해 외부 로그·이메일 연동도 지원합니다. 기본적으로는 오류 이벤트만 Admin Console 과 서버 로그에 표시되고, 성공 이벤트는 저장되지 않습니다.

사용자 이벤트 감사 활성화

1

Realm settings → Events

메뉴 Realm settingsEvents 탭.
2

User events settings

User events settings 서브탭 → Save events 를 ON 으로 전환.
3

만료 기간 지정

Expiration 필드에 저장 기간 입력 (기본 365 일).이벤트 설정이벤트 만료
4

저장할 이벤트 유형 추가

Add saved types 로 추가 수집할 이벤트 유형 선택 → Add.이벤트 유형 추가
5

이벤트 조회

User events 탭에서 수집된 이벤트 조회. Clear user events 로 전체 삭제 가능.이벤트 목록
Admin 작업 이벤트는 별도의 Admin events settings 에서 동일한 방식으로 활성화합니다. 관리자 활동(사용자 생성·삭제·Realm 변경 등) 추적이 필요하면 반드시 함께 켜세요.

Keycloak 이 수집하는 개인 데이터

Keycloak 은 기본적으로 아래 데이터를 수집합니다.
분류수집 데이터
기본 프로필사용자 이메일, 이름, 성
소셜 로그인소셜 계정 프로필 + 소셜 계정 참조
감사·보안IP 주소, OS 이름, 브라우저 이름 (세션/이벤트 로그)
자격 증명비밀번호 해시, OTP 코드, WebAuthn 공개키 — 암호화 저장, 관리자에게도 비노출
권한 메타데이터자격 증명 유형, 해시 알고리즘, 해시 반복 횟수 등 비기밀 정보
선택 수집등록 양식 커스터마이즈 시 생일·성별·국적 등 추가 필드 / LDAP·소셜 IdP 에서 동기화된 데이터
권한 부여 (UMA)권한 부여 서비스 활성 시 사용자 소유 리소스 정보
자격 증명(비밀번호·OTP·WebAuthn 키) 은 암호화 저장 되어 Keycloak 관리자에게도 노출되지 않습니다. 운영 중 자격 증명 내용을 직접 볼 수는 없고, 재설정 또는 삭제 만 가능합니다.
자세한 내용: Keycloak Server Admin Guide

관련 문서