Keycloak 개요 및 기본 개념

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 아키텍처

출처: 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 흐름도 예시:

OIDC Flow

출처: Medium Blog - OIDC Deep Dive


이 포스팅은 Keycloak을 처음 접하는 개발자와 엔지니어가 전반적인 구조와 이유, 개념을 빠르게 파악하는 데 목적이 있습니다. 이후 단계로는 다음 주제를 다루면 좋습니다:

  • Keycloak 설치 및 실행
  • Realm, Client, User 실습
  • Keycloak + 애플리케이션 연동(OAuth2)
  • LDAP 연동 및 Social Login 추가 방법

RSS Feed
마지막 수정일자