Trong bài viết này, mình chỉ tập hợp lại và bổ sung thêm những thông tin hữu ích về OpenID và OAuth2.
OpenID cho phép bạn sử dụng 1 account đã có để đăng nhập nhiều website, mà không cần tạo password mới.
Bạn có thể chọn nhiều thông tin liên kết với OpenID của bạn để chia sẽ với website mà bạn ghé thăm, ví dụ như name hoặc địa chỉ email. Với OpenID, bạn điều khiển được số lượng thông tin mà bạn muốn chia sẽ.
Brad Fitzpatrick (cha của OpenID) cho biết: "Không ai nên sở hữu này. Không có ai làm về lập kế hoạch của bất kỳ tiền từ công việc này. Mục đích là để phát hành mỗi vùng này, hầu hết các liberal theo giấy phép có thể được, do đó, không có tiền hoặc yêu cầu cấp giấy phép hoặc đăng ký để chơi. Phạm lợi ích cộng đồng như là một cái gì cả nếu như thế này tồn tại, và chúng tôi tất cả một phần của cộng đồng. "
OAuth là một dịch vụ bổ sung và khác biệt với OpenID. OAuth cũng khác biệt với OATH, đây là kiến trúc tham chiếu để xác thực chứ không phải là tiêu chuẩn cho phép. Tuy nhiên, OAuth liên quan trực tiếp đến OpenID Connect (OIDC) vì OIDC là một lớp xác thực được xây dựng trên OAuth 2.0
OAuth là một phương thức chứng thực giúp các ứng dụng có thể chia sẻ tài nguyên với nhau mà không cần chia sẻ thông tin username và password. Từ Auth ở đây mang 2 nghĩa:
Dòng tóm tắt minh họa trong hình mô tả sự tương tác giữa bốn vai trò và bao gồm các bước sau:
Tham khảo:
https://tools.ietf.org/html/draft-ietf-oauth-v2-16#section-1.1
https://viblo.asia/p/introduction-to-oauth2-3OEqGjDpR9bL
Open ID
OpenID là một tiêu chuẩn mở và là một giao thức Authencation được phân cấp.
OpenID cho phép bạn sử dụng 1 account đã có để đăng nhập nhiều website, mà không cần tạo password mới.
Bạn có thể chọn nhiều thông tin liên kết với OpenID của bạn để chia sẽ với website mà bạn ghé thăm, ví dụ như name hoặc địa chỉ email. Với OpenID, bạn điều khiển được số lượng thông tin mà bạn muốn chia sẽ.
Thông tin thêm OpenID
Giao thức đăng nhập OpenID được phát triển vào tháng 5/2005 bởi Brad Fitzpatrick, sáng lập viên của cộng đồng LiveJournal, đang làm việc ở Six Apart.Brad Fitzpatrick (cha của OpenID) cho biết: "Không ai nên sở hữu này. Không có ai làm về lập kế hoạch của bất kỳ tiền từ công việc này. Mục đích là để phát hành mỗi vùng này, hầu hết các liberal theo giấy phép có thể được, do đó, không có tiền hoặc yêu cầu cấp giấy phép hoặc đăng ký để chơi. Phạm lợi ích cộng đồng như là một cái gì cả nếu như thế này tồn tại, và chúng tôi tất cả một phần của cộng đồng. "
OAuth
OAuth là một tiêu chuẩn mở cho phép truy cập, thường được sử dụng như một cách để người sử dụng Internet cấp các trang web hoặc các ứng dụng truy cập vào thông tin của họ trên các trang web khác mà không cần cung cấp cho họ mật khẩu. Cơ chế này được sử dụng bởi các công ty như Google, Facebook, Microsoft và Twitter để cho phép người dùng chia sẻ thông tin về tài khoản của họ với các ứng dụng hoặc trang web của bên thứ ba.OAuth là một dịch vụ bổ sung và khác biệt với OpenID. OAuth cũng khác biệt với OATH, đây là kiến trúc tham chiếu để xác thực chứ không phải là tiêu chuẩn cho phép. Tuy nhiên, OAuth liên quan trực tiếp đến OpenID Connect (OIDC) vì OIDC là một lớp xác thực được xây dựng trên OAuth 2.0
OAuth là một phương thức chứng thực giúp các ứng dụng có thể chia sẻ tài nguyên với nhau mà không cần chia sẻ thông tin username và password. Từ Auth ở đây mang 2 nghĩa:
- Authentication: xác thực người dùng thông qua việc đăng nhập.
- Authorization: cấp quyền truy cập vào các Resource.
Các đối tượng trong OAuth2
OAuth bao gồm bốn vai trò làm việc cùng nhau để cấp và cung cấp quyền truy cập vào tài nguyên được bảo vệ - truy cập các tài nguyên bị giới hạn yêu cầu xác thực để truy cập- Resource Owner: Một thực thể có khả năng cấp quyền truy cập vào một tài nguyên được bảo vệ. Khi chủ sở hữu tài nguyên là một người, nó được gọi là người dùng cuối.
- Resource Server (API): Máy chủ lưu trữ các tài nguyên được bảo vệ, có khả năng chấp nhận và đáp ứng các yêu cầu tài nguyên được bảo vệ bằng access token.
- Client (Application): Một ứng dụng yêu cầu tài nguyên được bảo vệ thay mặt cho resource owner và với sự chứng thực của tài nguyên đó.
- Authorization Server (API): Máy chủ phát hành access token cho client sau khi xác thực thành công resource owner và nhận được ủy quyền.
Access Token là gì?
Access token là 1 chuỗi chứa thông tin đăng nhập bảo mật của 1 session đăng nhập, xác định người dùng, nhóm người dùng, đặc quyền truy cập trong một ứng dụng cụ thể.OAuth2 hoạt động như thế nào
Abstract Protocol Flow |
- (A) Client yêu cầu chứng thực từ resource owner. Yêu cầu chứng thực có thể được thực hiện trực tiếp ở resource owner (như hình minh họa), hoặc cách tốt hơn là gián tiếp thông qua một trung gian ví dụ như Authorization server.
- (B) Client sẽ nhận được resource grant từ Resource owner. Resource grant phụ thuộc vào hàm mà Client sử dụng và được hỗ trợ bởi Authorization server.
- (C) Client yêu cầu một access token bằng cách xác thực với Authorization Server.
- (D) Authorization Server xác nhận hợp lệ, và nếu hợp lệ phát hành access token.
- (E) Client yêu cầu tài nguyên được bảo vệ từ Resource owner và xác thực bằng cách đưa ra access token.
- (F) Resource server xác nhận access token. Nếu access token đó hợp lệ, server sẽ thực hiện theo yêu cầu.
Tham khảo:
https://tools.ietf.org/html/draft-ietf-oauth-v2-16#section-1.1
https://viblo.asia/p/introduction-to-oauth2-3OEqGjDpR9bL
Nhatkyhoctap's blog
Nhận xét
Đăng nhận xét