7

Tôi đang nghiên cứu chuyên sâu về Spring OAuth và tôi đã tìm thấy một số thông tin xung đột. Ai đó có thể làm rõ?Tương tác/oauth/ủy quyền và/oauth/mã thông báo trong Spring OAuth như thế nào?

Cụ thể, this tutorial nói rằng điểm cuối /oauth/token xử lý tên người dùng và mật khẩu trước khi cấp mã thông báo làm mới cho ứng dụng khách. Ngược lại, Spring OAuth Developer Guide đề cập đến các điểm cuối /oauth/authorize/oauth/token nhưng chưa nhận được thông tin cụ thể về cách chúng hoạt động.

Liệu /oauth/authorize làm 100% kiểm tra username/password/nOtherFactors và sau đó tín hiệu /oauth/token endpoint để gửi một mã thông báo làm mới cho khách hàng, vì vậy mà khách hàng sau đó gửi token refresh đến /oauth/token endpoint?

Hoặc tất cả được xử lý bởi điểm cuối /oauth/token?

Biểu đồ dưới đây minh họa những gì Vivian van Zyl khẳng định trong hướng dẫn của mình:

Nhưng sơ đồ thứ hai này dường như có ý nghĩa hơn:

Những sơ đồ là chính xác? Hoặc là sự thật hơi khác so với một trong hai sơ đồ khác? Mối quan hệ giữa /oauth/authorize/oauth/token có khác nhau đối với các loại trợ cấp khác nhau không? Làm sao?

Trả lời

5

Theo đặc tả OAuth 2.0, các điểm cuối ủy quyền và mã thông báo có các mục đích khác nhau.

Điểm cuối ủy quyền là nơi chủ sở hữu tài nguyên (người dùng) đăng nhập và cấp quyền cho ứng dụng khách (ví dụ: ứng dụng web đang chạy trong trình duyệt hoặc ứng dụng chạy trên thiết bị di động). Điều này thường được sử dụng trong các tình huống mà tác nhân người dùng của chủ sở hữu tài nguyên (ví dụ: trình duyệt) được chuyển hướng đến máy chủ định danh (máy chủ ủy quyền) để xác thực. Tác nhân người dùng của chủ sở hữu tài nguyên sẽ có quyền truy cập trực tiếp vào mã thông báo truy cập.

Điểm cuối mã thông báo là nơi khách hàng (ví dụ: API phía máy chủ hoặc ứng dụng dành cho thiết bị di động) gọi để trao đổi Mã ủy quyền, Id ứng dụng và Bí mật ứng dụng cho mã thông báo truy cập. Trong trường hợp này, tác nhân người dùng chỉ được cung cấp mã ủy quyền, không có quyền truy cập trực tiếp vào mã thông báo truy cập. Khách hàng là một bên đáng tin cậy có quyền truy cập vào Id khách hàng và Bí mật ứng dụng khách từ máy chủ ủy quyền (Đó là lý do tại sao tôi đã đề cập API phía máy chủ là ứng dụng khách).

Vui lòng đọc bài viết này mà có lời giải thích tốt hơn link

Xin vui lòng cho tôi biết nếu bạn có bất kỳ câu hỏi khác.

Cảm ơn bạn, Soma.

+0

Cảm ơn bạn và +1 để cung cấp giải thích bằng liên kết. Lemme nhìn vào nó một chút nữa khi tôi có thời gian. Tôi tò mò muốn tìm hiểu xem câu trả lời cho OP này có khác nhau đối với các loại tài trợ khác nhau hay không. Tuy nhiên, tôi không mong đợi bạn viết một luận án về nó. – CodeMed

Các vấn đề liên quan