IT

[Security] Keycloak 소개

data-cloud 2025. 1. 19. 12:48
반응형

 

 

 

🔐 Keycloak 이란?

ID 및 액세스 관리 솔루션을 제공하는 오픈소스이다.
쉽게 말하면 인증(Authentication)과 인가(Authorization)를 쉽게 해주고 SSO(Single-Sign-On)를 가능하게 해주는 오픈소스이다.

📖 SSO 란?
Single Sign-On의 약자로 한 번의 인증 과정으로 여러 컴퓨터 상의 자원을 이용 가능하게 하는 인증 기능을 뜻한다. 싱글 사인온, 단일 계정 로그인, 단일 인증이라고 한다.
만약 [Web App1]과 [Web App2]라는 2개의 서비스가 있을 때, [Web App1]에 로그인 후 작업을 하다가 [Web App2]에서 작업을 할 일이 생긴다면 [Web App2]에서도 로그인이 필요하다. 하지만 다음 그림처럼 SSO를 도입하게 된다면, 한 번의 로그인만으로 [Web App1]과 [Web App2] 등 모든 프로그램에 접근이 가능하게 된다.

 

 

반응형

🔐 Keycloak 주요 기능

  • 다중 프로토콜 지원
    - OpenID Connect, OAuth 2.0 및 SAML 2.0의 세가지 프로토콜을 지원한다.

  • SSO
    - 싱글 사인온 및 싱글 사인아웃을 지원한다.

  • 관리자 콘솔
    - 웹 기반 GUI로 관리자 콘솔을 제공한다.
    - 권한 및 세션을 포함하여 사용자 관리가  가능하다.
    - 세션을 관리하고 계정 기록을 확인할 수 있다.

  • 사용자 ID 및 액세스
    - 사용자 지정 역할 및 그룹으로 사용자 데이터베이스를 생성할 수 있도록 하여 독립 실행형 사용자 ID 및 액세스 관리자로 사용할 수 있다.

  • 외부 ID 소스 동기화
    - 사용자 데이터가 별도의 데이터베이스로 관리되고 있는 경우, 해당 데이터베이스와 동기화할 수 있다.

  • 소셜 로그인
    - 관리자 패널에서 설정을 통해 소셜 ID를 사용할 수 있다.

  • 페이지 사용자 정의
    - 사용자에게 표시되는 모든 페이지에 대해 사용자 지정을 할 수 있다.

 

 

 

🔐 Keycloak 주요 용어

  • Realm
    - 인증, 권한 부여가 적용되는 범위의 단위이다.
    - SSO 기능을 적용한다고 했을 때 SSO가 적용되는 범위가 하나의 Realm 단위가 된다.

  • Client
    - 인증, 권한 부여 행위를 수행할 어플리케이션을 나타내는 단위이다.
    - 하나의 realm 안에는 여러 개의 client가 들어갈 수 있으며 realm의 관리자가 각각의 client를 관리할 수 있다.

  • User
    - 인증을 필요로하는 사용자를 나타낸다.
    - 기본적으로 User 정보는 username, email, firstname, lastname으로 구성되어 있지만 custom user attribute를 사용하여 원하는 속성을 추가할 수 있다.

  • Role
    - User에게 부여할 권한의 내용을 나타낸다.

 

 

 

 

References.

1. https://caffeineoverflow.tistory.com/30

 

반응형