keycloak 는 사용자 인증 시스템으로 적합한가?

2025. 6. 17. 22:03업무/아키텍처

728x90
반응형

KeyCloak 를 다운로드 받아서 window 에 설치해 보자.

23/07/24 기준 최신버전 링크주소 : https://github.com/keycloak/keycloak/releases/download/22.0.1/keycloak-22.0.1.zip

소스도 확인 해보자. : https://github.com/keycloak/keycloak

 

GitHub - keycloak/keycloak: Open Source Identity and Access Management For Modern Applications and Services

Open Source Identity and Access Management For Modern Applications and Services - keycloak/keycloak

github.com

  1. 파일 압축을 푼다. 
  2. conf 디렉토리 keycloak.conf  db 설정을 변경한다. 
  3. db 설정을 변경하지 않고 kc.bat start-dev 로 실행 하면 h2 db 에 저장된다.
  4. production 모드로 바로 진입해서 postgres keycloak db 생성 후 다음과 같이 설정을 변경하고 kc.bat start-dev 를 실행한다. 
# The database vendor.
db=postgres

# The username of the database user.
db-username=postgres

# The password of the database user.
db-password=password

# The full database JDBC URL. If not provided, a default URL is set based on the selected database vendor.
db-url=jdbc:postgresql://localhost/keycloak
  1. 기본 포트는 8080 포트로 실행된다. 포트를 변경하고 싶으면 help 명령어로 kc.bat --help port 변경 파라미터 찾아보자
  2. 8080 포트 열어보면 초기 관리자 아이디 비밀번호 설정을 할 수 있다. 
  3. 기본 realm 은 master 로 되어있다. 추가로 realm 을 생성해서 설정을 해보자.
  4. 웹으로 외부에서 접근할려면 설정이 필요하다.
./kcadm.bat config credentials \
 --server http://localhost:8080 \ 
 --realm master \ \
 --user user \ 
 --password password
  • OIDC 의 역활에 대하여 알아보자.
  •  Authorization Server : Keycloak (발행, 초기화, 엑세스 토큰 발행)
  • User : Resource Owner (클라이언트 웹을 통하여 Authorization Server 에 로그인하는 인간)
  • Client : Application (web, app, gateway service)
  • Resource Server : Application (micro service, domain service)
  • Oauth2 Client 가 받는 것은 ID Token 과 Access Token 을 받는다.
  • ID Token 은 Authentication event 와 인증받은 사용자에 관한 정보를 나타낸다.
  • Access Token 은 Oauth2 Resource Server 로 부터 보호된 access data 정보를 나타낸다. (Authorization Http Header)
  • Tonken relay 패턴은 client application 에서는 저장만하고 보호된 endpoint downstream 을 통해 Resource Server 에 보내는 것을 말한다.
  • Spring Cloud Gateway 에 build-in filter 를 지원하고 있다.
  cloud:
    gateway:
      httpclient:
        connect-timeout: 2000
        response-timeout: 5s
        pool:
          type: elastic
          max-idle-time: 15s
          max-life-time: 60s
      default-filters:
        - SaveSession
        - TokenRelay

 

 

참고 사이트 : 

https://velog.io/@ashappyasikonw/KEYCLOAK  <설치 방법 설명>

 

KEYCLOAK 서버 설치 및 계정 생성

OAuth2.0 - KEYCLOAK 설치 및 계정 생성

velog.io

 

https://velog.io/@juhyeon1114/Keycloak-Authorization-code-%EC%9D%B8%EC%A6%9D-%ED%9D%90%EB%A6%84 < 프로세스 흐름>

 

[Keycloak] Authorization code방식의 인증 흐름

Keycloak의 엔드포인트를 활용해서 Authorization code방식으로 로그인하기 🔥

velog.io

 

 

728x90
반응형

'업무 > 아키텍처' 카테고리의 다른 글

Jhipster 가 적용할 만한 가?  (4) 2025.06.18
Quarkus 는 사용할만한가?  (0) 2025.06.17