Sự lựa chọn tốt nhất để xử lý xác thực/ủy quyền mạnh mẽ!
Tìm hiểu Spring Security OAuth2 đúng cách 🔐
Bảo mật mùa xuân OAuth2?

Spring Security OAuth2 áp dụng các thông số kỹ thuật tiêu chuẩn của Khung ủy quyền OAuth 2.0 và cung cấp các API được phân loại thành các nhóm Máy khách OAuth2, Máy chủ tài nguyên và Máy chủ ủy quyền.
Một giải pháp thay thế mạnh mẽ cho các phương thức xác thực dựa trên phiên truyền thống
Từ xưa đến nay, công nghệ sử dụng phiên/cookie được sử dụng rộng rãi như một phương thức xác thực và ủy quyền truyền thống trong các hệ thống cũ. Tuy nhiên, khi kích thước của hệ thống tăng lên và quá trình xác thực của nhiều thiết bị khác nhau như thiết bị di động, máy tính bảng, PC và IOT được xử lý , cấu hình xác thực của phương thức phiên hiện tại sẽ gặp phải nhiều vấn đề và hạn chế khác nhau, chẳng hạn như vấn đề chia sẻ phiên, gánh nặng tài nguyên máy chủ. , an toàn bảo mật và cấu hình kiến trúc phức tạp Nó được công nhận là thứ được sở hữu .
Đặc biệt, đúng là xác thực dựa trên phiên không phải là giải pháp thay thế hiệu quả vào thời điểm này, khi cơ sở hạ tầng kiểu MSA, thay vì nguyên khối, đang ngày càng trở thành xu hướng.
Theo đó, như một cách để giải quyết những hạn chế và vấn đề trên, nhu cầu xử lý xác thực/ủy quyền bằng phương thức token thay vì phiên xuất hiện và các công nghệ xử lý xác thực như OAuth và JWT ra đời. Bằng cách này, quá trình xác thực/ủy quyền đơn giản hơn và mạnh mẽ hơn có thể được thực hiện bằng dịch vụ OAuth do các công ty toàn cầu Google, Facebook và GitHub cung cấp.

Bài giảng này dành cho những người mới bắt đầu làm quen với kiến thức Spring Security OAuth2 và đã có kiến thức hoặc kinh nghiệm sử dụng cơ bản nhưng muốn tiếp thu kiến thức chuyên sâu hơn, hiểu sâu và áp dụng các nguyên tắc cốt lõi, cấu trúc bên trong và phương thức hoạt động của Spring Security OAuth2 ~ Dành cho người dùng nâng cao.
OAuth bảo mật mùa xuân
Bài giảng hiểu biết cốt lõi là
🔑
Chúng tôi không chỉ học cách sử dụng các API và ngữ pháp đơn giản. Nâng cao hiểu biết của bạn về các công nghệ cốt lõi dựa trên nguyên tắc và cấu trúc của công nghệ được cấp phép.
🎓
Hãy để chúng tôi hiểu chính xác quy trình và nguyên tắc hoạt động của Spring Security OAuth2.
🧰
Bạn có thể phát triển khả năng tùy chỉnh bằng cách mở rộng các chức năng cơ bản do Spring Security OAuth2 cung cấp.
✅
Bạn sẽ hiểu được cách sử dụng công nghệ Spring Security OAuth2 một cách thực tế .
Điểm học tập chính
💡 Bài giảng này tập trung vào ba trục : Máy khách OAuth2, Máy chủ tài nguyên và Máy chủ ủy quyền, là những khái niệm cốt lõi của công nghệ tiêu chuẩn OAuth 2.0 và Spring Security OAuth2 dựa trên nó.
1) Khung ủy quyền OAuth 2.0
Chúng tôi xem xét khái niệm, nguyên tắc và cấu trúc tổng thể của khung ủy quyền OAuth 2.0, một công nghệ tiêu chuẩn RFC.
Trước khi tìm hiểu công nghệ toàn diện của Spring Security OAuth2, trước tiên hãy hiểu những kiến thức cơ bản và lý thuyết cơ bản về công nghệ tiêu chuẩn của OAuth 2.0, đồng thời làm quen với các khái niệm chính xác thông qua thực hành để bạn có thể theo dõi nội dung của Spring Security OAuth2 mà không gặp khó khăn.
2) Máy khách OAuth2
Là một mô-đun máy khách của OAuth 2.0, nó giới thiệu nhiều loại loại ủy quyền và API yêu cầu cho phép máy khách tương tác với máy chủ ủy quyền, đồng thời cung cấp thông tin về cách triển khai kiểm soát quyền truy cập vào máy chủ tài nguyên bằng cách sử dụng mã thông báo được cấp từ máy chủ ủy quyền. Học hỏi.
Chúng tôi cũng giới thiệu cách triển khai chức năng đăng nhập mạng xã hội thông qua liên kết với các nhà cung cấp dịch vụ Máy chủ ủy quyền OAuth 2.0 như Google, Facebook, GitHub, Naver và Kakao. Chúng tôi cũng giới thiệu OpenID Connect, một giao thức xác thực, đồng thời hiểu quy trình cũng như cách đặt các tùy chọn khác nhau để xử lý xác thực.
3) Máy chủ tài nguyên OAuth2
Là một máy chủ bảo vệ tài nguyên người dùng, nó thực hiện vai trò của một máy chủ API. Chúng ta sẽ xem xét cách máy chủ tài nguyên bảo vệ tài nguyên, tìm hiểu cách xác minh tính hợp lệ của mã thông báo cho các yêu cầu bao gồm mã thông báo truy cập và tìm hiểu về quy trình kiểm soát hệ thống cấp phép.
Nếu Mã thông báo truy cập do nhà cung cấp dịch vụ OAuth2 cấp là mã thông báo được tạo ở định dạng JWT, chúng tôi sẽ xem xét việc trích xuất phạm vi và tìm hiểu cách máy chủ tài nguyên phân tích phạm vi có trong Mã thông báo truy cập để xác định xem nó có được ủy quyền hay không.
4) Máy chủ ủy quyền OAuth2
Có rất nhiều sản phẩm và dịch vụ thương mại của Authorization Server trên thị trường, bao gồm cả các sản phẩm và dịch vụ nguồn mở. Mặc dù nhóm phát triển Spring Security đã ngừng dự án Authorization Server framework nhưng dự án Authorization Server đã được tái sinh với thiết kế hoàn toàn mới do có nhiều yêu cầu từ nhiều nhà phát triển.
Trong bài giảng này, bài giảng được tạo ra dựa trên dự án Authorization Server được tái sinh với kiến trúc mới. Chúng tôi đã xem xét chi tiết chức năng của máy chủ ủy quyền thông qua việc liên kết với Máy khách và Máy chủ tài nguyên OAuth2, đồng thời tập trung trang bị cho mình kiến thức để xây dựng và phục vụ máy chủ ủy quyền của riêng mình.
Tìm hiểu về các lớp chính xử lý chức năng của Máy chủ ủy quyền và cách bạn có thể tùy chỉnh chúng. Chúng ta cũng sẽ xem xét các thông số kỹ thuật cho điểm cuối tiêu chuẩn OAuth 2.0 và tìm hiểu cấu trúc cũng như quy trình xử lý các bộ lọc được đặt cho từng điểm cuối.
Bạn có thể hiểu kiến trúc/dòng chảy/nguyên tắc.
Trong số các dự án Spring Framework, Spring Security yêu cầu hiểu biết tổng thể về việc triển khai cấp nguồn nội bộ, bao gồm kiến trúc kỹ thuật, nguyên tắc vận hành và hiểu biết về luồng.
Khi tôi gặp phải lỗi hoặc sự cố không mong muốn khi sử dụng một API nhất định, tôi có xu hướng tìm kiếm trên Google để tìm giải pháp. Tuy nhiên, do chưa có nhiều dữ liệu về Spring Security OAuth2 và hầu hết các trường hợp tương tự đều xuất hiện lặp đi lặp lại nên nếu không hiểu hoặc phân tích chính xác cấu trúc bên trong cũng như nguyên lý hoạt động của Spring Security OAuth2, bạn sẽ gặp rất nhiều khó khăn trong quá trình vận hành dịch vụ.
Do đó, bài giảng này vượt xa việc sử dụng API đơn giản và các ví dụ chức năng thông qua các giải thích chính xác và chi tiết thông qua các sơ đồ, quy trình và gỡ lỗi khác nhau, đồng thời cung cấp kiến thức cho phép phản hồi linh hoạt trong mọi tình huống bằng cách phân tích và hiểu hoàn toàn cấu trúc cũng như quy trình của Spring Security OAuth2. Chúng tôi đang tập trung vào việc đảm bảo rằng chúng tôi có nó. Đây có thể nói là khuôn mẫu và đặc điểm chung của các bài giảng mà người hướng dẫn này đưa ra.
Cấu trúc bài giảng và chương trình giảng dạy chi tiết
Phần 1. Spring Security được phát triển dựa trên Spring Boot
Bài giảng sẽ tập trung vào hai trục xác thực và ủy quyền, là những khái niệm cốt lõi của Spring Security. Vì kiến thức cơ bản và cơ bản về Spring Security rất quan trọng nên Part. Trong 1, nó được thiết kế để giúp bạn hiểu khái niệm chính xác về cấu trúc cốt lõi và xác thực tạo nên Spring Security và các mục chính liên quan đến xác thực, đồng thời giúp phát triển thực tế thông qua các ví dụ và thực hành.
Phần. Nếu học lớp 1, bạn sẽ xác lập rõ ràng các nguyên tắc cơ bản tổng thể của Spring Security và phát triển khả năng mở rộng và áp dụng cấu trúc bảo mật cơ bản khi xây dựng hệ thống bảo mật.
Phần 2. Spring Security OAuth2 được phát triển dựa trên Spring Boot
Tìm hiểu về các khái niệm và quy trình cơ bản của OAuth2 cũng như các công nghệ của Máy khách OAuth2, Máy chủ tài nguyên và Máy chủ ủy quyền, là các mô-đun cốt lõi của Spring Security OAuth2. Phần. Để học Phần 2 một cách trôi chảy, Phần. Vì việc nắm rõ nội dung cơ bản của Phần 1 là cần thiết nên bạn phải tiếp thu kiến thức trước khi tham gia khóa học.
Phần. Trong Phần 2, do các công nghệ khác nhau liên quan đến OAuth2 được cấu tạo phức tạp nên chúng tôi hiểu đầy đủ các khái niệm rộng lớn liên quan đến OAuth2 và dựa trên đó, chúng tôi phân tích và kiểm tra chi tiết và chuyên sâu quá trình kết nối giữa ứng dụng khách, máy chủ tài nguyên và máy chủ ủy quyền.
Nguyên tắc cơ bản về bảo mật mùa xuân
Chúng ta hãy xem các nguyên tắc cơ bản cốt lõi của Spring Security. Tìm hiểu thêm về quy trình khởi tạo và các nguyên tắc của nó, đồng thời đề cập đến các thành phần như HttpBasic và Cors.
Khung ủy quyền OAuth 2.0
Tìm hiểu thông số kỹ thuật chi tiết cho công nghệ tiêu chuẩn OAuth 2.0. Trước tiên, hãy hiểu các thuật ngữ khác nhau được thể hiện trong OAuth 2.0, sắp xếp các khái niệm về các loại luồng ủy quyền và hiểu luồng tổng thể của khung ủy quyền bằng cách sử dụng nguồn mở keycloak.
Ứng dụng khách OAuth 2.0 - oauth2Login()
Tự động hóa các chức năng của ứng dụng khách, tìm hiểu cách liên kết với máy chủ ủy quyền bằng phương pháp Mã ủy quyền, một loại luồng ủy quyền và kiểm tra toàn bộ quá trình từ nhận Mã thông báo truy cập sau khi người dùng phê duyệt và phê duyệt đến xử lý xác thực/ủy quyền và nội bộ Bạn sẽ tìm hiểu về cấu trúc.
Máy khách OAuth 2.0 - oauth2Client()
Ngoài Mã ủy quyền, là loại luồng ủy quyền được cung cấp bởi API oauth2Login(), chúng ta sẽ xem xét cách liên kết với máy chủ ủy quyền bằng cách sử dụng các loại Mật khẩu chủ sở hữu tài nguyên và Thông tin xác thực ứng dụng khách, tìm hiểu cách sử dụng DefaultOAuth2AuthorizedClientManager và @ RegisteredOAuth2AuthorizedClient và hiểu quy trình ủy quyền ứng dụng khách thông qua việc này.
Ứng dụng khách OAuth 2.0 - Đăng nhập xã hội OAuth 2.0
Các nhà cung cấp dịch vụ OAuth2 bao gồm Google, Facebook, GitHub, Naver và Kakao. Chúng tôi sẽ xem xét cách xác thực thông tin đăng nhập bằng Google, Naver và KeyClock cũng như cách triển khai xử lý tiếp theo sau khi xác thực.
API máy chủ tài nguyên OAuth 2.0 - jwt()
Chúng ta sẽ xem cách định cấu hình máy chủ tài nguyên và chức năng của JwtDecode xử lý các yêu cầu Mã thông báo truy cập, đồng thời tìm hiểu cấu trúc và cách sử dụng các đối tượng liên quan đến xác thực được tạo sau khi xác minh mã thông báo thành công. Chúng tôi cũng xem xét các phương pháp thuật toán MAC & RSA được sử dụng để xác minh tính hợp lệ của Mã thông báo truy cập và quy trình xử lý nào được sử dụng để xác minh chúng.
Máy chủ tài nguyên OAuth 2.0 - Triển khai quyền của máy chủ tài nguyên
Tìm hiểu về bộ lọc xử lý các yêu cầu Mã thông báo truy cập và cách chuyển đổi phạm vi được JwtDecode trích xuất thành quyền và kiểm soát quyền truy cập vào tài nguyên bằng các quyền đã chuyển đổi.
Máy chủ tài nguyên OAuth 2.0 - mờ()
Là một quy trình kiểm tra mã thông báo từ xa, bạn sẽ tìm hiểu cách xác định xem Mã thông báo truy cập có được kích hoạt hay không bằng cách liên lạc trực tiếp với máy chủ ủy quyền.
Máy chủ ủy quyền mùa xuân - lớp miền chính
Bạn sẽ tìm hiểu các loại, khái niệm và vai trò của các lớp miền chính tạo nên máy chủ ủy quyền cũng như cách các lớp này có thể được tham chiếu và sử dụng trong Spring MVC.
Máy chủ ủy quyền mùa xuân - Giao thức điểm cuối
Tìm hiểu về các loại giao thức điểm cuối khác nhau, là các chức năng cốt lõi của máy chủ ủy quyền. Toàn bộ quá trình từ điểm cuối khởi tạo yêu cầu ủy quyền đến điểm cuối yêu cầu thông tin người dùng sẽ được kiểm tra chi tiết thông qua sơ đồ và luồng.
Tích hợp Máy khách OAuth 2.0 + Máy chủ tài nguyên + Máy chủ ủy quyền
Chúng ta sẽ tìm hiểu cách liên kết và liên kết từng mô-đun OAuth2 do Spring Security cung cấp và thông qua các ví dụ, chúng ta sẽ xem xét các mục cụ thể thực hiện chức năng của nhà cung cấp dịch vụ OAuth2.
đã tạo ra bài giảng này
Giới thiệu người chia sẻ kiến thức.
Jeong Su-won (men)
- Nhà phát triển Java hiện tại
- Có kinh nghiệm trong các dự án khác nhau về SI/SM/Solution/Mobile/Front&Back-end
- Thực hiện vai trò Kiến trúc sư/PM/PL
- Github
Bài giảng hay mọi người cùng xem nhé