앞선 글에서는 Docker 이미지를 만들고, 생성한 이미지를 Container Registry에 푸시하는 것 까지 진행했다. 이번 글에서는 GKE 배포를 위한 설정 파일을 작성해보도록 하자. GKE 배포를 위해서는 프로젝트 루트 폴더에 설정 파일을 생성해야 하는데, 여기에서는 deployment.yaml 이라는 이름의 파일을 생성해 배포 설정을 진...
Cloud Build를 이용한 GKE 자동 배포 설정하기 - 1
들어가기 전 💬 우리 회사는 현재 클라우드 서비스인 GCP(Google Cloud Platform)를 활용해 운영 중이다. 특히 우리 서비스 중 한 API 서버는 GCE(Google Compute Engine) 인스턴스를 이용하고, 부하 분산기를 붙여 오토 스케일링이 가능하도록 운영 중이었는데, 최근에 이 서버를 배포, 관리, 확장하기 쉽도록 이 A...
웹사이트에서 Keycloak 인증 설정하기
이번 포스트에서는 React로 구성된 웹사이트를 생성하고, 이 웹사이트와 앞서 생성했던 API 서버와 통신할 때, 로그인 등의 인증 과정을 Keycloak이 담당할 수 있도록 연동하는 방법에 대해 설명하고자 한다. 플로우를 먼저 설명하면 다음과 같다. React로 구성된 웹사이트에 접속한다. 인증이 필요한 엔드포인트에 접근하려고 하면, 에러...
Keycloak에서 소셜로그인 설정하기
이전 포스트에서는 관리자 콘솔에서 직접 사용자를 생성하고, 패스워드를 설정해서 액세스 토큰을 발급받았다. (username과 password로 로그인하는 방식 이용) 하지만 우리 서비스에는 아이디(username) 및 패스워드를 이용한 방식이 아닌 소셜 로그인 기능이 필요하다. Keycloak에서는 OIDC를 지원하는 다양한 소셜 로그인을 지원하고...
Keycloak Role 설정하기
이전 포스트에서는 인증이 필요한 API와 인증 없이 접근 가능한 API를 테스트해보았다. 그렇다면 이제 Role을 설정하고, Role에 따라 API에 접근할 수 있도록 설정해보자. 여기에서는 user와 admin 두 가지의 Role을 설정해보려고 한다. Role 생성 먼저 Client Role을 생성해야 한다. 관리자 콘솔에 접속하고, 좌측 메뉴의...
Spring Boot와 Keycloak 연동하기
이번 포스트에서는 API 서버의 인증을 Keycloak에서 담당하고, 인증된 사용자의 요청만 허용하도록 설정하는 방법에 대해 알아보자! 사용자가 특정 요청을 보냈을 때, API 서버로 해당 요청이 들어가기 전 Keycloak에서 인증된 사용자인지 판단한다. Keycloak에서 인증된 사용자라고 판단했다면, 각각의 API에 접근하여 원하는 결과를...
Keycloak에서 Realm과 User 생성하기
관리자 콘솔에 접속할 수 있게 되었으니, 이제 Realm과 User를 생성해보고 사용자 콘솔에 로그인 해보도록 하자. Realm, Client, User 먼저 들어가기 전에 Keycloak의 Realm, Client, User에 대해 알아보자. Realm 사용자, 인증, 인가, 권한, 그룹이 관리하는 범위이다. ...
Docker로 Keycloak 실행하기
Keycloak 공식 문서의 Get Started 파트에는 Keycloak 서버를 실행할 수 있는 여러 방법을 소개하고 있는데, 이 글에서는 Docker를 이용해 Keycloak을 실행하는 방법에 대해 설명하려고 한다. Docker 설치하기 먼저 Mac 환경에 Docker를 설치해보자. 간단히 Docker Desktop을 설치하기만 하면 된다. In...
Keycloak 도입기
들어가기 전 💬 회사에서 Keycloak을 도입할 예정이라 관련 문서와 세팅 방법을 찾아보게 되었다. 정확히 Keycloak이 무엇인지, 왜 쓰는지 전혀 무지한 상태에서 찾아보기 시작했고, 어마어마한 삽질이 시작되었다😂 Keycloak은 인증을 대신 담당해주는 오픈소스인데, 회사 내부에 보안 전문가가 있는 것이 아니니까 계속해서 생기는 모든 보안...