Spring Boot

OAuth2 & Authorization Server

OAuth2 và Authorization Server, các flow (authorization code, client credentials), resource server, scopes

20 câu hỏi phỏng vấn·
Senior
1

OAuth2 là gì?

Câu trả lời

OAuth2 là một giao thức ủy quyền cho phép một ứng dụng bên thứ ba có được quyền truy cập giới hạn vào một dịch vụ HTTP thay mặt cho người dùng, mà không để lộ credentials của người dùng. Nó hoạt động thông qua access token thay vì mật khẩu. OAuth2 được sử dụng rộng rãi cho xác thực ủy quyền (đăng nhập qua Google, GitHub, v.v.) và các REST API được bảo mật.

2

Flow OAuth2 nào an toàn nhất cho các ứng dụng web?

Câu trả lời

Authorization Code flow là flow an toàn nhất vì access token không bao giờ bị lộ ra trình duyệt. Ứng dụng backend trao đổi một authorization code tạm thời để lấy access token thông qua một kênh bảo mật (backend-to-backend). Với PKCE (Proof Key for Code Exchange), flow này càng trở nên an toàn hơn trước các cuộc tấn công chặn bắt.

3

Khi nào nên sử dụng Client Credentials flow?

Câu trả lời

Client Credentials flow được thiết kế cho giao tiếp machine-to-machine (service-to-service) không có ngữ cảnh người dùng. Ứng dụng client xác thực trực tiếp bằng credentials của riêng nó (client_id và client_secret) để lấy access token. Được dùng cho các batch job, microservice hoặc backend API hoạt động nhân danh chính chúng.

4

PKCE (Proof Key for Code Exchange) trong OAuth2 là gì?

5

Tại sao Implicit flow bị deprecated trong OAuth2?

+17 câu hỏi phỏng vấn

Các chủ đề phỏng vấn Spring Boot khác

Nắm vững Spring Boot cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí