Thắc Mắc - Khi Nào Mới Thực Sự Cần Sử Dụng OAuth2? - Voz

VOZ
  • Forums New posts
  • Latests Featured content New posts New profile posts Latest activity
Log in Register What's new
  • New posts
Menu Log in Register Install the app Install How to install the app on iOS

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • Forums
  • Học tập & Sự nghiệp
  • Lập trình / CNTT
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. thắc mắcKhi nào mới thực sự cần sử dụng OAuth2?
  • Thread starter Thread starter UcCheLaptop
  • Start date Start date May 8, 2021
UcCheLaptop

UcCheLaptop

Senior Member
Em đang làm research xây dựng hệ thống microservices thì thấy người ta hay đề cập đến OAuth2 như là giải pháp cho việc authentication/authorization. User đăng nhập hệ thống OAuth2, hệ thống xác thực trả ra access token dưới dạng JWT, consumer sử dụng access token để call API từ resource server. Nghe qua thì có vẻ ổn nhưng mà càng nghiên cứu em lại càng thấy OAuth2 và JWT không liên quan đến nhau. OAuth2 có thể dùng hoặc không dùng JWT. JWT có thể được dùng một mình nó chả liên quan đến OAuth2. Càng research càng loạn các bác ạ, các bác có kinh nghiệm thông não giúp em khi nào cần dùng OAuth2. Nếu không dùng OAuth2 thì có thể dùng cái gì khác? Dùng JWT một mình nó vs. dùng với OAuth2. Em cảm ơn các bác :beated: Reishou

Reishou

Senior Member
Coi lại từ basic nhé :big_smile: Giải thích tốn thời gian lắm. https://kipalog.com/posts/Authentication-story-part-1--Authentication-la-lam-gi P

protein0

Junior Member
Cái này phụ thuộc vào từng hệ thống cụ thể thôi. T cũng đang dựng backend và sử dụng JWT độc lập. Vì hệ thống này không yêu cầu quản lý token phức tạp, yêu cầu về tốc độ xử lý hơn nên quyết định dùng JWT thuần. UcCheLaptop

UcCheLaptop

Senior Member
Reishou said: Coi lại từ basic nhé :big_smile: Giải thích tốn thời gian lắm. https://kipalog.com/posts/Authentication-story-part-1--Authentication-la-lam-gi Click to expand...
protein0 said: Cái này phụ thuộc vào từng hệ thống cụ thể thôi. T cũng đang dựng backend và sử dụng JWT độc lập. Vì hệ thống này không yêu cầu quản lý token phức tạp, yêu cầu về tốc độ xử lý hơn nên quyết định dùng JWT thuần. Click to expand...
Em hiểu Authentication khác Authorization các thím à. Chỉ là em không hiểu khi nào mới cần đến OAuth2 vì theo như em research với những chức năng đăng nhập trả access_token để truy cập vào resource thì chỉ cần JWT là đủ, hoàn toàn không cần đến OAuth2. Ngay như trong hình này nó cũng chỉ đơn giản đến vậy, không cần OAuth2 luôn. https://auth0.com/learn/json-web-tokens/ 17.png Em chỉ thắc mắc là khi nào, trong use-cases nào mới thực sự cần đến OAuth2. Chứ còn nếu chỉ là login với username + password rồi trả ra access_token để truy cập vào resource thì em thực sự không hiểu OAuth2 đóng vai trò gì ở đây? :too_sad: Super Namek

Super Namek

Senior Member
đang muốn làm cái single sing-on cho anh em Namek mà ko biết dùng OAuth :| iFoQHbw.png OneAboveAll

OneAboveAll

Senior Member
mình có thể dùng JWT độc lập với hệ thống authentication của mình, nhưng nếu không tự build thì dùng oauth2 cho đơn giản và tốt hơn cái mình tự build vì họ làm sẵn hết rồi B

bribnt

Đã tốn tiền
UcCheLaptop said: Em hiểu Authentication khác Authorization các thím à. Chỉ là em không hiểu khi nào mới cần đến OAuth2 vì theo như em research với những chức năng đăng nhập trả access_token để truy cập vào resource thì chỉ cần JWT là đủ, hoàn toàn không cần đến OAuth2. Ngay như trong hình này nó cũng chỉ đơn giản đến vậy, không cần OAuth2 luôn. https://auth0.com/learn/json-web-tokens/ 17.png Em chỉ thắc mắc là khi nào, trong use-cases nào mới thực sự cần đến OAuth2. Chứ còn nếu chỉ là login với username + password rồi trả ra access_token để truy cập vào resource thì em thực sự không hiểu OAuth2 đóng vai trò gì ở đây? :too_sad: Click to expand...
OAuth2 là một tiêu chuẩn để User cấp quyền cho Ứng dụng sử dụng tài nguyên của mình trên một Resource Server bên thứ ba. Lý do để dùng
  • nó là tiêu chuẩn nên khả năng cao là ai cũng hỗ trợ, có thể dùng các thư viện có sẵn,
  • khi các bên không thể hoàn toàn tin tưởng lẫn nhau (chú ý là OAuth2 vẫn có flow dành cho trường hợp có). User rõ ràng không thể tin tưởng giao thông tin đăng nhập Google của mình cho một Ứng dụng nào đó, và Google cũng không thể tự nhiên cho phép Ứng dụng đó truy cập thông tin User. Lúc này mới cần có flow để ba bên hợp tác tạm thời trao đổi cấp quyền sử dụng, OAuth2 là một trong số đó.
Sent from Xiaomi Redmi 5A using vozFApp dragonvn

dragonvn

Member
UcCheLaptop said: Em đang làm research xây dựng hệ thống microservices thì thấy người ta hay đề cập đến OAuth2 như là giải pháp cho việc authentication/authorization. User đăng nhập hệ thống OAuth2, hệ thống xác thực trả ra access token dưới dạng JWT, consumer sử dụng access token để call API từ resource server. Nghe qua thì có vẻ ổn nhưng mà càng nghiên cứu em lại càng thấy OAuth2 và JWT không liên quan đến nhau. OAuth2 có thể dùng hoặc không dùng JWT. JWT có thể được dùng một mình nó chả liên quan đến OAuth2. Càng research càng loạn các bác ạ, các bác có kinh nghiệm thông não giúp em khi nào cần dùng OAuth2. Nếu không dùng OAuth2 thì có thể dùng cái gì khác? Dùng JWT một mình nó vs. dùng với OAuth2. Em cảm ơn các bác :beated: Click to expand...
OAuth2 không liên quan gì tới JWT nhé. JWT là một cách để verify token của thím thôi. Đôi khi token là chuẩn gì cũng được, chuẩn do thím tự định nghĩa cũng được. Khi đó, Authorization Server sẽ cần cung cấp 1 api để thím xác thực token. mình đọc bài này thấy giải thích cũng ổn, thím tham khảo xem: https://letjar.com/spring-boot-oauth2-openid/. hoặc tốt nhất vào thẳng trang chủ mà đọc https://oauth.net/2/ Last edited: May 12, 2021 Doge Coin

Doge Coin

To The Moon
JWT là 1 cái string token thôi. Ví dụ hệ thống nhiều service, sau khi user login vào thì cấp cho 1 cái token, rồi dùng token đó để access vào resouce của các service khác. Còn cái Oauth2 là 1 cái khác, nó là 1 protocol dùng để authz và authn, bên trong dùng JWT token. Cryolite.

Cryolite.

Senior Member
Reishou said: Coi lại từ basic nhé :big_smile: Giải thích tốn thời gian lắm. https://kipalog.com/posts/Authentication-story-part-1--Authentication-la-lam-gi Click to expand...
Mình đọc phần mở đầu trong link thì có vẻ như dev họ thường yếu về network nhỉ 🤔 Niels Henrik Abel

Niels Henrik Abel

Senior Member
UcCheLaptop said: Em hiểu Authentication khác Authorization các thím à. Chỉ là em không hiểu khi nào mới cần đến OAuth2 vì theo như em research với những chức năng đăng nhập trả access_token để truy cập vào resource thì chỉ cần JWT là đủ, hoàn toàn không cần đến OAuth2. Ngay như trong hình này nó cũng chỉ đơn giản đến vậy, không cần OAuth2 luôn. https://auth0.com/learn/json-web-tokens/ 17.png Em chỉ thắc mắc là khi nào, trong use-cases nào mới thực sự cần đến OAuth2. Chứ còn nếu chỉ là login với username + password rồi trả ra access_token để truy cập vào resource thì em thực sự không hiểu OAuth2 đóng vai trò gì ở đây? :too_sad: Click to expand...
Khi thím cho phép login từ bên thứ ba (resource owner) như facebook.google ấy. 1620799935599.png https://datatracker.ietf.org/doc/html/rfc6749 UcCheLaptop

UcCheLaptop

Senior Member
Em hiểu sơ sơ thế này nói lại các thím xem có đúng không: 1. JWT là token format 2. OAuth2 là protocol dành cho authorization 3. Có thể sử dụng JWT độc lập không cần tới OAuth2. Client submit credentials (username + password), server kiểm tra và trả ra JWT. Client dùng JWT để truy cập resource. Flow này tương tự như flow đăng nhập truyền thống trả ra session_id. Flow này dành riêng cho 1st-party. 4. OAuth2 có thể dùng JWT và các format khác không nhất thiết phải là JWT. 5. OIDC là để bổ sung thêm flow đăng nhập (authentication) cho OAuth2 vì bản chất OAuth2 là flow authorization. 6. OAuth2 chỉ nên dùng khi có 3rd-party. Và các 3rd-party này muốn truy cập vào resource của user. real2006

real2006

Member
OAuth chỉ dùng cho authorization thôi, tức nghĩa là trao quyền truy cập cho bên thứ ba. Còn một cái nữa là giao thức OpenID Connect (OIDC) đc xây dựng dựa trên OAuth 2.0 dùng cho authentication. Cái OpenID này thì nó xài JWT format cho token, còn bản thân OAuth2 thì ko có định nghĩa cho format token. UcCheLaptop

UcCheLaptop

Senior Member
Các bác cho em hỏi thêm là nếu OAuth2 chỉ cần khi cho phép 3rd-party sử dụng resource thì với 1st-party như app của mình sử dụng API của mình không cần OAuth2 nhỉ? Với 1st-party như trường hợp mình viết REST API cho app của mình sử dụng thì cứ làm theo cách truyền thống xưa giờ là khi user nhập username+password để login thì mình check rồi trả ra session_id hay jwt cho app lưu lại rồi sử dụng khi call API. B

bribnt

Đã tốn tiền
UcCheLaptop said: Các bác cho em hỏi thêm là nếu OAuth2 chỉ cần khi cho phép 3rd-party sử dụng resource thì với 1st-party như app của mình sử dụng API của mình không cần OAuth2 nhỉ? Với 1st-party như trường hợp mình viết REST API cho app của mình sử dụng thì cứ làm theo cách truyền thống xưa giờ là khi user nhập username+password để login thì mình check rồi trả ra session_id hay jwt cho app lưu lại rồi sử dụng khi call API. Click to expand...
App đơn giản thì đúng là vậy. Nhưng sau này nếu nó to lên, thay vì 1 dịch vụ mà có nhiều dịch vụ muốn dùng chung hệ thống account thì OAuth2 cũng là một hướng, lúc đó auth sẽ là một dịch vụ riêng không chung với resources nữa. 3rd party chỉ là một use case của OAuth2. Trong OAuth2 nó định nghĩa 4 vai trò : user, client, resources server, auth server. Trong đó 3 cái sau có thể là của 1 hay nhiều tổ chức tùy cách dùng. Sent from Xiaomi Redmi 5A using vozFApp UcCheLaptop

UcCheLaptop

Senior Member
bribnt said: App đơn giản thì đúng là vậy. Nhưng sau này nếu nó to lên, thay vì 1 dịch vụ mà có nhiều dịch vụ muốn dùng chung hệ thống account thì OAuth2 cũng là một hướng, lúc đó auth sẽ là một dịch vụ riêng không chung với resources nữa. 3rd party chỉ là một use case của OAuth2. Trong OAuth2 nó định nghĩa 4 vai trò : user, client, resources server, auth server. Trong đó 3 cái sau có thể là của 1 hay nhiều tổ chức tùy cách dùng. Sent from Xiaomi Redmi 5A using vozFApp Click to expand...
Cảm ơn bác em hiểu rồi :big_smile: Usecase của em hiện tại là em nắm cả REST API và cả app thì giờ để cho đơn giản thì em cứ làm theo cách truyền thống không dùng OAuth2, submit username+password trả session_id hoặc jwt. Còn sau này muốn mở rộng cho 3rd truy cập vô thì em build thêm OAuth2 sau có ổn không bác hay là phải làm từ đầu luôn? Trung Sơn

Trung Sơn

Senior Member
đánh dấu đọc sau tiengdonhoarira

tiengdonhoarira

Junior Member
eshop có cổng giao diện đăng nhập, đăng ký. cổng giao diện đó nối với oidc, và eshop là client của oidc, đc oidc cấp phép. user đăng ký hay đăng nhập sẽ đồng thời gắn với client. sau khi đăng ký hay đăng nhập oidc sẽ redirect về trang mà client muốn, có access_token còn quá trình đăng ký đăng nhập oidc sẽ làm (hoặc truyền thống username password, hoặc qua google microsoft facebook). tiengdonhoarira

tiengdonhoarira

Junior Member
làm một oauth2 ko đơn giản. theo protocol Post reply Insert quotes…

Similar threads

tinishero27 thắc mắc wifi tự ngắt kết nối, kết nối khi sử dụng chuột không dây
  • tinishero27
  • Nov 18, 2024
  • Phần mềm
Replies 0 Views 117 Nov 18, 2024 tinishero27 tinishero27 vozNews tin tức MoMo khuyến khích người dùng hoàn tất xác thực sinh trắc học trước hạn chót
  • vozNews
  • Tuesday at 10:34 AM
  • App di động
Replies 16 Views 474 Yesterday at 6:57 PM cloud5trike cloud5trike niki_lauda thắc mắc Cần chuyên gia về Server, java, socket tư vấn.
  • niki_lauda
  • Oct 29, 2024
  • Lập trình / CNTT
2 Replies 26 Views 1K Nov 16, 2024 niki_lauda niki_lauda TPA_DragonZ thắc mắc Xin tư vấn về loại chart dùng để vẽ tree graph
  • TPA_DragonZ
  • Oct 30, 2024
  • Lập trình / CNTT
Replies 2 Views 397 Nov 19, 2024 KimChiChu KimChiChu R1n2308 thảo luận chip AMD của laptop quá nóng nhưng hiệu năng khi sử dụng rất thấp
  • R1n2308
  • Saturday at 11:55 PM
  • AMD
2 Replies 23 Views 1K Yesterday at 10:49 AM iFeeder iFeeder Share: Facebook X (Twitter) LinkedIn Reddit Pinterest WhatsApp Share Link

Thread statistics

Created UcCheLaptop, May 8, 2021 Last reply from tiengdonhoarira, May 18, 2021 Replies 18 Views 4,351

Share this page

Facebook X (Twitter) LinkedIn Reddit Pinterest WhatsApp Share Link
  • Forums
  • Học tập & Sự nghiệp
  • Lập trình / CNTT
Back Top

Từ khóa » Jwt Và Oauth2