본문 바로가기

패스트캠퍼스/100% 환급 챌린지_2

패스트캠퍼스 환급챌린지 53일차 : Netplix 구독형 멤버십 프로젝트로 배우는 Spring Security 강의 후기

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://abit.ly/lisbva

 

 

안녕하세요 :)

오늘은 챌린지 53일차로, 이뭐벌금(이번 주에 뭐했다고 벌써 금요일...)이네요...

 

오늘 배울 내용은,

Part C. OAuth2.0 과 JWT

Ch 4. 실전: Keycloak 을 활용한 OAuth 2.0

"01. 권한 부여 서버로서의 Keycloak - 1" 입니다.


 

오늘 배운 Keycloak(키클록)은 사용자 인증 및 접근 제어를 관리하기 위한 오픈소스로, 키클로은 인증 서버로 사용할 수 있고, SSO, 권한 부여/인가, 세션 관리, 보안 등 다양한 관리를 할 수 있다는 것을 알 수 있었다.

Keycloak의 개념에 대해 살펴보자.

- Single Sign-On (SSO) : 키클록은 SSO 를 지원한다. 사용자가 한 번의 로그인으로 여러 다른 애플리케이션에 접근 가능하도록 하는 기술이며, 사용자 경험을 개선할 수 있으며 보안을 강화할 수 있다.
- Identity Brokering: 외부 아이덴티티 제공자(e.g. Google, Facebook) 를 통해 인증을 중개할 수 있고, 이를 통해 사용자는 본인의 소셜 계정을 활용하여 로그인 할 수 있다.

- User Federation: LDAP 또는 Active Directory 와 같은 외부 사용자 저장소를 통합하여 사용자 관리를 용이하게 도와준다.

다음으로 Keycloak의 특징에 대해 살펴보자.

- 보안 기능: 토큰 기반 인증, 역할 기반 접근 제어 등 다양한 보안 관련 기능을 제공한다. 
- 확장성: 커스텀 프로바이더를 통해 확장할 수 있으며 다양한 프로토콜을 지원한다(e.g., OpenID Connect, OAuth 2.0, SAML2.0 등).
- 관리자 및 사용자 인터페이스 제공: 관리 콘솔(어드민 페이지)를 통해 사용자, 역할, 권한 설정 등을 손쉽게 관리할 수 있게 제공한다.
- 사용자 자체 등록, 계정 관리 기능 등을 제공하는 사용자 인터페이스도 포함하고 있다.

Keycloak을 로컬 환경에서의 설치할 수 있다. 키클록은 데이터베이스로 PostgreSQL을 사용할 수 있으며, docker-compose 를 활용해서 postgresql 과 keycloak 을 구축할 수 있다. docker-compose 파일에서 사용하는 파라미터는 .env 파일에서 관리한다. 그리고 docker-compose 파일과 같은 경로에 .env 파일을 넣어주면 된다.

Keycloak 실행 및 설정은 docker-compose 파일 실행하면, 8080 포트로 실행이 된다.
> $ docker-compose -f ./docker-compose.yml up -d
localhost:8080 으로 접근하면 계정 admin/password 로 접근 가능하다.
액세스 토큰 디코딩도 가능하다. jwt.io 에서 액세스 토큰을 디코딩하면 세부 내용을 파악할 수 있다.