Định nghĩa về OAuth một cách dể hiểu nhất:
OAuth là một phương thức chứng thực, mà nhờ đó một web service hay một application bên thứ 3 có thể đại diện cho người dùng để truy cập vào tài nguyên người dùng nằm trên một dịch vụ nào đó.
Các trào lưu cũng như sự lan rộng của khái niệm oauth bắt đầu khi mà các dịch vụ mạng xã hội như google hay facebook nở rộ, đặc biệt khi các công ty như google cung cấp API cho bên thứ 3 để có thể truy cập vào tài nguyên của người dùng, qua đó mở nên một thị trường mới gọi là Ứng dụng bên thứ 3
Two-Legged Authentication
Ứng dụng bên thứ 3 (A) gửi client id và client secret tới server xác thực (B).
Sever xác thực (B) kiểm tra client id/secret và trả lại token tới Ứng dụng bên thứ 3 (A)
Three-Legged Authentication
Ứng dụng bên thứ 3 (A) gửi client id và callback URL tới Sever xác thực (B)
Sever xác thực (B) đưa tới trang đang nhập cho Người dùng (C)
Người dùng (C) đăng nhập sử dụng Autodesk ID và đồng ý cho phép Ứng dụng bên thứ 3 (A) sử dụng dữ liệu thay mặt họ.
Sever xác thực (B) trả về “authorization code” tới callback URL đã cung cấp của Ứng dụng bên thứ 3 (A)
Ứng dụng bên thứ 3 (A) gửi yêu cầu tới Sever xác thực (B) để lấy “access token” bằng cách sử dụng “authorization code”.
Sever xác thực (B) trả về “access token” tới Ứng dụng bên thứ 3 (A)
Giải thích thuật ngữ:
Client ID: bản chất là tên của ứng dụng. Đôi khi có tên khác: “consumer key” or “API key”
Client Secret: bản chất là mật khẩu của ứng dụng. Đôi khi có tên khác: “consumer secret ” or “API secret”
Authorization Code: Chỉ có trong "Three-Legged Authentication". Đây là mã xác thực để được trả về theo callback URL, dùng để lấy về mã "Access Token"
Access Token: được trả về cuối của việc xác thực. Dùng để kiểm tra truy cập có được chấp nhận. Acess Token sẽ có thời gian hết hạn
Refresh Token: được trả về cuối của việc xác thực, đi kèm với Access Token, được dùng để nhận lại môt Access Token mới mà không phải đăng nhập lại
Scopes là gì?
Scope hiểu đơn giản là quyền bạn cấp cho Ứng dụng bên thứ 3 có thể sử dụng trên những dữ liệu của bạn. Khi bạn xác thực tài khoản bạn cần cung cấp scope đi kèm. Duới đây là những scopes được Autodesk Forge cung cấp
user-profile:read View your profile info
user:read View your profile info
user:write Manage your profile info
viewables:read View your viewable data
data:read View your data
data:write Manage your data
data:create Write data
data:search Search across your data
bucket:create Create new buckets
bucket:read View your buckets
bucket:update Update your buckets
bucket:delete Delete your buckets
code:all Author or execute your codes
account:read View your product and service accounts
account:write Manage your product and service accounts
Comentarios