Avatar
1
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
Khi nào nên dùng OpenID và Oauth2
Hi anh, khi nào mình nên cài đặt OpenID và Oauth2 trong hệ thống ạ, em thấy về authorization, mình sử dụng phân quyền theo ma trận hoặc phân theo : Ai- Làm gì- Được phép dùng tài nguyên nào... là đủ r để kiểm tra 1 người có quyền tác động tài nguyên hay thực thi chức năng này hay không, vậy em muốn hỏi là khi nào mình nên dùng OpenID và Oauth2
  • Answer
Remain: 5
2 Answers
Avatar
monkey Professional
monkey Professional
Nếu 1 người dùng chỉ hoạt động trong 1 ứng dụng, 1 website thì không cần thiết phải có OpenID và OAuth2. Tuy nhiên khi 1 người nào đó muốn sử dụng 1 tài khoản để sử dụng ở nhiều nơi mà không cần phải đăng nhập qua username password thì phải cần đến OpenID và OAuth2.

OAuth2 là một giao thức cho phép user chia sẻ một số thông tin + quyền của mình cho ứng dụng bên thứ 3. Ví dụ em đang cho phép stackask này xác thực tài khoản facebook của em và từ đó stackask có thể lấy được một số thông tin về avatar hay tên.

OpenID Connect được xây dựng trên OAuth2, tuy nhiên nó có sử dụng thêm jwt token, được gọi là ID token, để cho phép user có thể login trên cả các ứng dụng desktop và mobile.

Vậy theo anh thì sự khác biệt ở đây là OpenID Connect sẽ chỉ dành cho việc login vào ứng dụng bên thứ 3 thôi chứ không giống như OAuth2 sẽ cấp quyền cho ứng dụng đó để làm một số việc việc được.

Vậy nên khi nào mà em chỉ muốn cho bên thứ 3 login thôi thì em sẽ dùng OpenID Connect, còn khi nào em muốn bên thứ 3 có thể sử dụng thông tin + quyền của user thì có thể dùng OAuth2.

Tham khảo: https://www.okta.com/identity-101/whats-the-difference-between-oauth-openid-connect-and-saml/

  • 0
  • Reply
Avatar
Thành Lê Văn Professional
Thành Lê Văn Professional
OAuth2 ==> Authorization

OpenID Connect ==>Authentication

Đúng như cách mà nó nói thôi.

Oauth2 sử dụng để cho phép ai đó, ứng dụng nào đó có thể truy cập các dữ liệu của chúng ta, thực hiện các hành động..etc..

Ví dụ đơn giản nhất là bạn có một căn nhà, mình đến nhà bạn chơi. Bạn sẽ cấp cho mình quyền được làm gì trong căn nhà của bạn. VÍ dụ bạn cấp mình quyền mở tivi, đổi kênh tivi, mở tắt điều hòa, lấy đồ trong tủ lạnh để ăn, sử dụng.

Để cấp quyền phía trên thì chúng ta sử dụng Oauth2.

 

OpenID bản 1.0 nó không base trên OAuth2  đâu, về sau OpenID Connect mới base trên OAuth2.

Với OpenID  thì sẽ xác nhận bạn là chủ của căn nhà và OpenID  sẽ không có các quyền như mở tivi, điều hòa... Vì nó chỉ authen thôi.

1 số website sử dụng OpenID  :

https://vnexpress.net/

https://medium.com/
  • 0
  • Reply