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

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

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.

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/

stackjava.com