Thắc Mắc - Khi Nào Mới Thực Sự Cần Sử Dụng OAuth2? - Voz
Có thể bạn quan tâm
- Forums New posts
- Latests Featured content New posts New profile posts Latest activity
- New posts
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
- Thread starter Thread starter UcCheLaptop
- Start date Start date May 8, 2021
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ácReishou
Senior Member
Coi lại từ basic nhé Giải thích tốn thời gian lắm. https://kipalog.com/posts/Authentication-story-part-1--Authentication-la-lam-gi Pprotein0
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
Senior Member
Reishou said: Coi lại từ basic nhé 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/ 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?
Super Namek
Senior Member
đang muốn làm cái single sing-on cho anh em Namek mà ko biết dùng OAuthOneAboveAll
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 Bbribnt
Đã 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/ 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? 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ố đó.
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 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
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.
Senior Member
Reishou said: Coi lại từ basic nhé 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
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/ 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? Click to expand...Khi thím cho phép login từ bên thứ ba (resource owner) như facebook.google ấy. https://datatracker.ietf.org/doc/html/rfc6749
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
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
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. Bbribnt
Đã 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
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 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
Senior Member
đánh dấu đọc sautiengdonhoarira
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
Junior Member
làm một oauth2 ko đơn giản. theo protocol Post reply Insert quotes…Similar threads
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
- vozNews
- Tuesday at 10:34 AM
- App di động
- niki_lauda
- Oct 29, 2024
- Lập trình / CNTT
- TPA_DragonZ
- Oct 30, 2024
- Lập trình / CNTT
- R1n2308
- Saturday at 11:55 PM
- AMD
Thread statistics
Created UcCheLaptop, May 8, 2021 Last reply from tiengdonhoarira, May 18, 2021 Replies 18 Views 4,351Share this page
Facebook X (Twitter) LinkedIn Reddit Pinterest WhatsApp Share Link- Forums
- Học tập & Sự nghiệp
- Lập trình / CNTT
Từ khóa » Jwt Và Oauth2
-
OAuth Và JWT: Đừng Hiểu Nhầm - Vantien's Blog
-
Tìm Hiểu Về Cơ Chế Xác Thực OAuth2 - Viblo
-
What Are The Main Differences Between JWT And OAuth ...
-
How To Use JWT With OAuth | LoginRadius Blog
-
OAuth2 Vs JWT - What's The Difference (Explained)
-
JSON Web Tokens Vs Oauth 2.0 - Anil Kumar - Medium
-
OAuth 2.0 Là Gì? Tìm Hiểu Cơ Chế Và Cách Hoạt động đăng Nhập
-
Đi Sâu Vào OAuth2.0 Và JWT (Phần 1 Thiết Lập Sân Khấu) - HelpEx
-
OAuth2 With Password (and Hashing), Bearer With JWT Tokens
-
Xác Thực Người Dùng Với JWT Cho Web API - CodeLearn
-
Sử Dụng JWT Với Spring Security OAuth - 2KVN
-
Sự Khác Nhau Giữa OpenID Connect Và OAuth 2.0 | TopDev
-
Tìm Hiểu OAuth2 Với OpenID Connect