지난 포스팅에서는 Jenkins를 KeyCloak을 이용해서 로그인하는 방법에 대해서 알아보았다. 단순 로그인만 통합로그인으로 하는것에서 그치지 않고 이번에는 KeyCloak의 권한(ROLE)에 따라 Jenkins의 사용권한을 통제하는 방법에 대해서 알아보겠다. 전과 마찬가지로 Jenkins와 KeyCloak은 설치가 되어있어야 하며 둘간의 기본적인 연동방법은 위의 링크를 클릭해서 보도록 하자. KeyCloak 설정 - Role 설정 지난시간에 KeyCloak에서 Role을 설정할때 위와 같이 jenkins_admin를 했었다. 권한관리를 하기 위해 Add Role을 눌러서 새로운 권한을 추가시켜준다. jenkins_user 라는 Role을 추가하였다. - User 설정 기존의 User를 이용해도 되지만..
프로젝트를 관리하다보면 여러개의 솔루션을 각각 계정관리를 해야 하는데 KeyCloak을 사용하면 어느정도 통합해서 관리를 할 수 있다. Jenkins도 KeyCloak을 통해서 통합로그인을 할 수 있다. 기본적으로 Jenkins와 KeyCloak이 설치 되어있다고 가정하고 진행을 하도록 하겠다. KeyCloak이 설치되지 않았다면 여기를 참고해서 구성하도록 하자. KeyCloak 설정 가장 먼저 해야 할 일은 KeyCloak에서 Jenkins Client를 추가하는것이다. KeyCloak에서 Client를 추가하는 기본적인 방법은 여기를 참고하도록 하자. 아래 내용을 바로 봐도 무방하다. Clients를 누르면 KeyCloak 자체적으로 생성된, 그리고 내가 생성한 Client 목록이 보인다. 우측 상단..
예전에 CORS(Cross-Origin Resource Sharing)를 filter를 사용해서 설정하는것에 대해 포스팅을 한적이 있다. Spring Security를 사용하면 이렇게 별도의 filter를 만들지 않고 간단하게 CORS 설정을 할 수 있다. SecurityConfig.java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(HttpSecurity http) throws Exception { // http formLogin, headers .. 설정 http.cors(); } @Bean CorsConfi..
Redis를 설치하고 redis-cli 에서 다음과 같이 test를 했었다. 이 뿐만 아니라 get yellow 이런식으로 값을 부르면 다 가지고 온다. 여기에 암호를 설정해 보자. Redis는 접근제한을 두가지 방법으로 할 수 있는데 암호, IP통제가 그것이다. 오늘은 이중 암호를 설정하는 방법에 대해서 알아보겠다. Redis 설치폴더에 들어가면 여러 파일이 있고 이중 Redis 설정파일은 redis.windows-service.conf 이다. 열어보자. 관리자 권한으로 실행을 해야 한다. redis.windows-service.conf ################################## SECURITY ################################### # Require cli..
MinIO는 고가용성을 확보하기 위해 Distributed mode를 지원한다. 그래서 운영환경에서 MinIO를 사용하기 위해서는 Distributed mode가 필요하다. 이를 구성하기 위해 별다른 복잡한 기술이 필요한게 아니라 기존에 설정했던것에 매개변수 정도 추가하면 간단히 구성이 가능하다. MinIO의 distributed mode architecture 이다. 파일이 들어오면 이것을 여러개의 서버에 분산해서 저장을 하는 것이다. 이로인해 이 서버중 한대가 장애가 난다 하더라도 계속해서 이용을 할 수가 있다. 물론 서버와 disk의 투자가 필요하다. 구성방법 Distributed mode 구성에 앞서 지난번에 포스팅한 MinIO 실행 스크립트를 한번 살펴보자. 실수를 방지하기 위해서 그냥 실행명령..
linux의 실행파일이 자주 사용되어지고 또 재기동시 자동으로 시작되어야 한다면 실행파일을 Service에 등록을 하고 사용한다. Systemd를 통해서 Service를 등록할수도 관리할수도 있다. 이 모든 작업을 할때는 root 권한으로 진행을 해야 한다. 필자는 MinIO를 설치했고 이를 실행하기 위한 startup.sh, shutdown.sh 파일을 만들었다. (startup.sh의 경로는 /app/minio/oingdaddy) 이를 Service에 등록하고 또한 OS 재기동이 될때 MinIO Service가 자동으로 실행되도록 할 계획이다. (혹시 궁금하신 분이 있을까 덧붙이자면 MinIO 설치 및 실행파일 생성은 여기를 참고하도록 한다.) CentOS version은 7.9 이다. Service..
지난 시간에는 간단히 Window 환경에 Redis를 설치해 보았다. Windows 10 환경에 Redis 설치해보기 Monolithic 환경에서 점점 벗어나고 MSA 지향적인 환경으로 변화함에 따라 기존의 세션 방식을 사용하기가 어려워졌다. 여러가지 방안이 나왔고 세션을 사용하는 방식 중 가장 많이 쓰이고 있는건 oingdaddy.tistory.com 이번에는 이것을 기반으로 간단한 샘플 프로젝트를 만들어 보자. 기본적인 Springboot 기반의 application만 있으면 된다. 프로젝트 환경 필자는 springboot 2.3.4.RELEASE, JDK 1.8을 사용하여 샘플 프로젝트를 구성하였다. 프로젝트 설정 pom.xml org.springframework.boot spring-boot-st..