Chuyển đến nội dung chính

OpenID và OAuth2

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.

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
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:
  • (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

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.