keycloak

Geunhyung Pyun·2023년 11월 26일

keycloak을 알기 전 먼저는 SSO(Single Sign-On)를 먼저 알아야 한다.

SSO(Single Sign-On)

  • 1회 사용자 인증으로 다수의 애플리케이션 및 웹 사이트에 대한 사용자 로그인을 허용하는 인증 솔루션.
  • 하나의 사용자 정보를 기반으로 여러 시스템을 하나의 통합 인증을 사용하게 하는 것이 목적.
  • 요즘 사용자들은 브라우저에서 직접 애플리케이션에 자주 액세스하기에 조직은 보안 및 UX 모두를 개선하는 액세스 관리 전략에 우선 순위
  • 암호 보안을 강화하고 더 나은 UX를 제공할 수 있는 것이 특징이다.

왜 이것을 알아야 하는가?
keycloak은 SSO를 가능하게 해주는 오픈소스 계정관리 솔루션이기 때문이다.


keycloak

공식사이트에 따르면 이렇게 얘기한다.

Open Source Identity and Access Management

오픈소스 ID 및 접근 관리 솔루션이라고 생각하면 된다.
이를 이용해서 인증과 인가를 쉽게 할 수 있고 SSO를 가능하게 해준다.

여러가지 기능을 제공한다.

  • SSO 기능 제공
    • SSO를 제공할 수 있어 통합 인증이 필요한 곳에 적용이 가능하다.
  • 관리자 콘솔
    • 웹 기반 GUI를 제공하여 쉽게 인증, 인가 및 계정, 권한 관리가 가능하다.
  • 소셜 로그인
    • 소셜 로그인을 통해서 관리자 콘솔을 사용할 수 있다.
  • 프로토콜 지원
    • OAuth, SAML, OpenID Connect. 총 3개의 프로토콜을 지원한다.
  • 외부 소스 동기화
    • 사용자 데이터베이스(LDAP, RDBMS, 동적 디렉터리 등)가 있는 경우 해당 DB와 동기화가 가능하다.

용어

  1. Realm
  • 접근 범위
  • 기본적으로 Master Realm이 있다.
  • 1개 이상의 Client를 하나로 묶어서 관리할 수 있는 범위
  • SSO 적용은 Realm 단위로 한다.
  1. Client
    애플리케이션 단위

  2. User
    Client에 인증을 요청하는 사용자 단위

  3. Role

  • User에게 부여할 권한
  • keycloak은 role-based 접근방식을 사용한다.
  • User는 반드시 1개 이상의 Role을 가져야 한다.
profile
개발자를 원하는 사람.

0개의 댓글