Xác thực trong Spring Cloud Config (Spring Cloud Config Authenticate)

Bài viết được sự cho phép của tác giả Trần Hữu Cương

Thông tin cấu hình của 1 project khá quan trọng, nó chứa nhiều thông tin nhạy cảm như username/password… nên ta cần phải bảo mật nó.
Để bảo mật thông tin cấu hình từ cloud config server có 2 cách đơn giản:

  • Xác thực (dùng username/password hoặc token)
  • Mã hóa/ giải mã (mã hóa ở cloud config server, và giải mã ở cloud config client)

Trong bài này mình sẽ thực hiện theo cách thứ nhất là xác thực các request tới cloud config server.

  Bí kíp tạo website nhờ vào GitHub và Cloudflare
  Cloud Devops quan trọng như thế nào?

Xác thực trong Spring Cloud Config (Spring Cloud Config Authenticate)

Trong bài này mình sẽ sử dụng lại ví dụ trong bài trước:

Đối với project Spring Cloud Config Server

Thêm thư viện spring security vào file pom.xml:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

Cấu hình security (username/password) trong file application.yml

security:
 user:
 name: admin1234
 password: admin1234

Đối với project Spring Cloud Config Client

Cấu hình username/password cho cloud config: trong file bootstrap.yml

cloud:
 config:
 uri: http://localhost:8888
 username: admin1234
 password: admin1234

Demo: start project spring-cloud-config-server

Truy cập http://localhost:8888/app/dev để xem thông tin cấu hình của ứng dụng app với profiles là dev

Xác thực trong Spring Cloud Config (Spring Cloud Config Authenticate)

Server bắt buộc phải login mới có thể xem được.

Trong trường hợp này bạn phải nhập username/password đã cấu hình ở bên trên để pass qua màn hình login.

Cách khác là bạn có thể truyền luôn username/password vào trong url: http://admin1234:admin1234@localhost:8888/app/dev. Tuy nhiên trình duyệt web ko hỗ trợ kiểu url này nên bạn có thể thử bằng 1 rest client như postman hoặc mở màn hình cmd và chạy lệnh curl:

curl http://admin1234:admin1234@localhost:8888/app/dev

Xác thực trong Spring Cloud Config (Spring Cloud Config Authenticate)

Còn đối với spring-cloud-config-client, do đã cấu hình sẵn username/password nên nó vẫn có thể lấy được cấu hình từ server như bình thường.

Xác thực trong Spring Cloud Config (Spring Cloud Config Authenticate)

Okay, Done!

Download code ví dụ trên tại đây hoặc tại: https://github.com/stackjava/spring-cloud-config-authenticate

References: https://cloud.spring.io/spring-cloud-config/reference/html/

Bài viết gốc được đăng tải tại stackjava.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev