Keycloak 고급 기능 활용

Keycloak 고급 기능 활용

1️⃣ MFA 구성 (OTP, WebAuthn, 인증앱 등)

1. MFA란?

**MFA (Multi-Factor Authentication)**는 사용자 인증 시 2개 이상의 인증 요소를 요구하여 보안을 강화하는 방식입니다.

  • 1단계: ID/PW
  • 2단계: OTP, WebAuthn, 푸시 인증 등

2. OTP 기반 MFA 설정

Keycloak 기본 기능으로 Google Authenticator, Authy 등을 사용할 수 있습니다.

📌 설정 방법:

  1. Realm > Authentication > Flows > Browser 복제
  2. Username Password Form 뒤에 OTP Form 추가
  3. 사용자 설정 → Required Action: Configure OTP 추가

💡 사용자 로그인 시 아래와 같은 화면이 노출됩니다:

1. ID/PW 입력
2. QR코드 스캔 (Google Authenticator)
3. OTP 입력

3. WebAuthn (FIDO2) 설정

WebAuthn은 지문, 보안키(YubiKey), 얼굴인식 등을 사용할 수 있는 생체 인증 방식입니다.

📌 설정 절차:

  1. Realm > Authentication > Required Action > Configure WebAuthn 활성화
  2. 사용자에게 Configure WebAuthn 할당
  3. WebAuthn 호환 브라우저에서 등록 (Edge, Chrome 등)

🔐 인증 흐름:

사용자 로그인
WebAuthn 장치 인증
접속 허용

4. MFA 플로우 예시 다이어그램

+-------------+
|   로그인     |
+------+------+ 
       ↓
+--------------+
|  패스워드 인증 |
+------+-------+
       ↓
+--------------+
|   OTP/WebAuthn |
+------+-------+
       ↓
+--------------+
|     성공       |
+--------------+

2️⃣ Account Linking (구글 + LDAP 등)

1. Account Linking이란?

하나의 사용자가 여러 인증 수단을 연결할 수 있게 해주는 기능입니다.

예:

  • 회사 LDAP 계정 + 개인 Google 계정 연결
  • SSO 시 자동으로 사용자 매칭

2. 예시: Google + LDAP

📌 전제 조건:

  • LDAP 사용자와 Google 계정의 email 또는 username이 동일해야 함
  • Identity Provider 설정에서 Link Only 또는 Email Match 설정

3. Linking 설정

  1. Identity Providers > Google 추가
  2. Mapper에서 emailpreferred_username 으로 매핑
  3. 사용자가 로그인 → 구글 → 동일 이메일 → LDAP 계정과 연결됨

4. 플로우 다이어그램

[ 사용자 로그인 ]
[ 구글 로그인 ]
[ Keycloak: 동일 이메일 LDAP 사용자 존재? ]
   ↓        ↓
 [Yes]     [No]
   ↓         ↓
계정 링크     신규 계정 생성

3️⃣ 사용자 Self-registration 및 이메일 인증

1. Self-registration이란?

Keycloak에서 사용자가 직접 회원가입할 수 있도록 허용하는 기능입니다.


2. 설정 방법

  1. Realm > Login > “User registration” 활성화
  2. Realm > Login > “Verify Email” 활성화

이제 /auth/realms/<realm>/protocol/openid-connect/registrations 경로로 접근 시 회원가입 가능


3. 이메일 인증 설정

📌 SMTP 설정 필요:

Realm > Email > SMTP 설정 입력
  • Host: smtp.yourcompany.com
  • Port: 587
  • From: noreply@yourcompany.com

이메일 인증이 활성화되면 회원가입 후 메일을 통해 인증을 진행해야 로그인 가능


4. 등록 플로우 다이어그램

[ 회원가입 폼 ]
     ↓
[ 이메일 인증 링크 ]
     ↓
[ 로그인 가능 ]

4️⃣ 사용자 Federation 전략

1. Federation이란?

외부 사용자 디렉토리(예: LDAP, Active Directory)와 연동하여 사용자 정보를 가져오거나 인증을 위임하는 방식입니다.


2. Federation vs Identity Provider

구분 Federation Identity Provider
인증 방식 내부 Keycloak 로그인 외부 로그인 위임 (SSO)
예시 LDAP, AD Google, SAML, GitHub
사용자 정보 동기화하여 Keycloak에 존재 인증할 때만 조회

3. LDAP Federation 설정

  1. Realm > User Federation > Add Provider: ldap
  2. 연결 정보 입력:
    • Connection URL: ldap://ldap.company.com
    • Bind DN: cn=admin,dc=company,dc=com
    • Base DN: ou=users,dc=company,dc=com
  3. Sync 설정:
    • Periodic Sync
    • On-demand Sync

4. Federation 아키텍처

+-------------+      +---------------+
|  Keycloak   | <--> |  LDAP Server  |
+-------------+      +---------------+
 [ 로그인 요청 ]

✅ 마무리 요약

기능 요약
MFA OTP, WebAuthn 등 2차 인증으로 보안 강화
Account Linking 여러 계정을 하나로 연결 가능
Self-registration 사용자 직접 회원가입 및 이메일 인증
Federation 외부 LDAP/AD 사용자 인증 및 동기화

RSS Feed
마지막 수정일자