[Keycloak] 기능 및 구성 요소

혜진·2024년 11월 21일
0
post-thumbnail

Keycloak 기능 및 구성 요소

Keycloak
오픈소스 기반의 인증(Authentication) 및 권한 부여(Authorization) 관리 솔루션으로, 웹 애플리케이션, 모바일 애플리케이션, RESTful 서비스 등에 통합하여 사용자 인증, 싱글 사인 온(SSO), 소셜 로그인, 권한 관리와 같은 기능을 제공한다.

Keycloak 기능

  • 싱글 사인 온(SSO, Single Sign-On)

    한 번 로그인하면 여러 애플리케이션에서 추가 로그인 없이 사용할 수 있다.
  • 소셜 로그인

    Google, Facebook, Twitter 등의 소셜 계정을 사용하여 로그인할 수 있다.
  • 사용자 관리

    관리자 콘솔을 통해 사용자를 생성, 삭제, 그룹화, 권한 부여 등의 작업을 수행할 수 있다.
  • 권한 부여(Authorization)

    리소스 기반의 권한 관리를 제공하며, 각 리소스와 작업에 대해 세분화된 접근 권한 설정이 가능하다.
  • 프로토콜 지원

    OpenID Connect (OIDC), OAuth 2.0, SAML 등 표준 인증 프로토콜을 지원한다.
  • 2단계 인증(2FA)

    SMS, OTP(One Time Password) 등 다양한 2단계 인증 방식을 지원한다.
  • LDAP 및 Active Directory 통합

    조직의 LDAP 서버 또는 Active Directory와 통합하여 사용자 데이터를 동기화하거나 인증에 사용할 수 있다.
  • 확장성

    플러그인을 통해 기능을 확장하거나 커스터마이징할 수 있다.

Keycloak의 구성 요소

  • Realm

    인증과 권한 관리를 위한 논리적 경계를 제공한다. 예를 들어, 하나의 Keycloak 서버에서 여러 리얼름을 사용하여 서로 독립적인 인증 시스템을 운영할 수 있다.
  • 클라이언트(Client)

    Keycloak에서 관리하는 애플리케이션 또는 서비스로, 클라이언트는 Keycloak으로부터 인증을 요청하거나 인증 정보를 검증받는다.
  • 사용자(User)

    Keycloak에서 관리하는 개별 사용자 계정
  • 그룹(Group)

    사용자를 그룹화하여 권한을 관리할 수 있는 단위이다.
  • 역할(Role)

    권한 관리를 위한 추상적인 역할, 사용자나 그룹에 역할을 할당하여 권한을 부여할 수 있다.

Keycloak 작동 원리

Keycloak은 사용자가 애플리케이션에 접근할 때 인증 과정을 중앙에서 처리한다. 이를 위해 클라이언트(애플리케이션)는 Keycloak 서버와 통신하며, 사용자가 인증되면 Keycloak은 토큰을 발급하여 애플리케이션이 이를 사용해 인증 및 권한 부여를 처리하도록 한다.

사용자 인증 흐름

  1. 사용자가 클라이언트(애플리케이션)에 로그인 요청.
  2. 클라이언트는 Keycloak 서버로 리다이렉트.
  3. Keycloak에서 사용자 인증.
  4. 인증 성공 시 JWT(Json Web Token) 또는 SAML 토큰 발급.
  5. 클라이언트는 토큰을 사용해 요청을 처리.

0개의 댓글