Keycloak 개요 및 기본 개념
1️⃣ Keycloak이란 무엇인가?
1. Keycloak 소개
Keycloak은 오픈소스 Identity and Access Management (IAM) 솔루션입니다. 인증(Authentication), 권한부여(Authorization), 사용자 관리(User Management)를 손쉽게 통합할 수 있도록 도와줍니다.
- 개발자/엔지니어가 직접 인증 시스템을 만들지 않아도 되도록 설계됨
- 다양한 표준 프로토콜(OAuth2.0, OpenID Connect, SAML)을 지원
📌 누가 개발했나?
Keycloak은 Red Hat에서 개발했으며, 현재도 활발히 유지/기여되고 있는 프로젝트입니다.
2. Keycloak 아키텍처 한눈에 보기
출처: Keycloak 공식 문서
📌 설명:
- 사용자(Client)는 브라우저나 앱을 통해 서비스 접근
- Keycloak이 로그인 요청을 받아 인증
- 인증 후 토큰(JWT)을 발급하여 애플리케이션으로 전달
2️⃣ Keycloak을 사용하는 이유
1. 직접 인증 구현의 어려움
기존에는 각 애플리케이션마다 로그인, 비밀번호 저장, 세션 관리, 토큰 발급 등을 직접 구현해야 했습니다.
이런 방식은 다음과 같은 문제를 일으킵니다:
기존 인증 구현 시 | Keycloak 사용 시 |
---|---|
사용자 관리 직접 구현 | Keycloak Admin Console 제공 |
로그인 UI 직접 개발 | 기본 로그인 UI 제공 |
보안 이슈 대응 직접 | 지속적인 보안 패치 제공 |
인증 프로토콜 직접 구현 | OAuth2, OIDC, SAML 기본 지원 |
2. Keycloak을 사용하는 이유 요약
- ✅ 인증/인가 표준 지원 (OAuth2, OIDC, SAML)
- ✅ SSO (한 번 로그인 → 여러 서비스 접근)
- ✅ LDAP/AD 연동 가능
- ✅ MFA(2차 인증), OTP, 이메일 인증 등 제공
- ✅ Social Login (Google, Facebook 등 간편 연동)
- ✅ Admin Console로 사용자 및 설정 관리 편리
3️⃣ 전통적 인증 vs SSO (Single Sign-On) 비교
1. 전통적 인증 방식
- 각 서비스마다 별도 로그인 필요
- 동일한 사용자가 여러 계정 생성 가능
- 비밀번호 재사용/관리 이슈
[서비스 A] → 로그인
[서비스 B] → 또 로그인
[서비스 C] → 또 로그인 😫
2. Keycloak 기반 SSO
- 한 번 로그인하면 여러 서비스에서 로그인 상태 유지
- 중앙 집중식 사용자 관리
- 비밀번호 변경, MFA 정책도 통합 관리
[Keycloak 로그인] → [서비스 A] 접근 가능
→ [서비스 B]도 접근 가능 ✨
→ [서비스 C]도 접근 가능 😎
🖼️ SSO 흐름도
사용자
│
▼
서비스 A → Keycloak 인증 요청 → 로그인 성공 → 토큰 발급
│ ↑
▼ │
서비스 B ------------------------------
4️⃣ Keycloak의 주요 기능 요약 (SSO, OAuth2, OIDC, MFA, LDAP 등)
기능 | 설명 |
---|---|
✅ SSO | 하나의 로그인으로 여러 앱에 접근 |
✅ OAuth2 / OIDC | 표준 프로토콜로 보안 인증 처리 |
✅ MFA | OTP, 이메일, SMS 등의 2차 인증 지원 |
✅ LDAP / AD 연동 | 기업 내 Active Directory 또는 LDAP 연동 가능 |
✅ 사용자 관리 | Role, Group 기반 권한 설정 |
✅ Social Login | 구글, 깃허브, 페이스북 등 로그인 연동 |
✅ Admin UI | 웹 기반으로 Realm/Client/User 설정 가능 |
📌 OAuth2 vs OIDC 간단 정리
프로토콜 | 목적 | 발급 토큰 |
---|---|---|
OAuth2 | 권한 위임 | Access Token |
OIDC | OAuth2 + 사용자 인증 | Access + ID Token |
📘 예시: 로그인 시 동작 흐름 (OIDC 기반)
1. 사용자 로그인 요청 → Keycloak 로그인 화면
2. 로그인 성공 → ID Token, Access Token 발급
3. 클라이언트는 토큰을 사용해 API 호출
4. API는 토큰을 검증하고 결과 제공
🖼️ OIDC 흐름도 예시:
출처: Medium Blog - OIDC Deep Dive
이 포스팅은 Keycloak을 처음 접하는 개발자와 엔지니어가 전반적인 구조와 이유, 개념을 빠르게 파악하는 데 목적이 있습니다. 이후 단계로는 다음 주제를 다루면 좋습니다:
- Keycloak 설치 및 실행
- Realm, Client, User 실습
- Keycloak + 애플리케이션 연동(OAuth2)
- LDAP 연동 및 Social Login 추가 방법
마지막 수정일자