Nhập môn OAuth và OpenID Connect
Là developer chắc hẳn ai cũng đã động tới phần đăng nhập đăng ký, cũng đã từng nghe tới khái niệm OAuth. Trong bài này, chúng ta cùng ôn lại OAuth là gì OpenID Connect là gì, tại sao lại sinh ra 2 khái niệm này, tại sao nếu ai đó nói “Login bằng OAuth” lại không đúng nhé. 🙅♂️
Tại sao cần OAuth
Trước khi có OAuth, chúng ta có vấn đề về Authorization (ủy quyền) như sau.
Làm thế nào để cho phép dịch vụ truy cập vào dữ liệu của mình?
(mà không cần phải chia sẻ mật khẩu)
Giả sử một ví dụ cụ thể đó là ứng dụng game League of Legends: Wild Rift (từ bây giờ mình gọi là LOL cho ngắn nhé, game này mình cũng hay chơi =))) muốn truy cập vào danh sách bạn bè trên Facebook của người dùng, xem ai cũng chơi LOL để kết bạn trong game. Làm thế nào để người dùng ủy quyền cho ứng dụng LOL rằng tôi đồng ý cho ứng dụng truy cập dữ liệu mà không chia sẻ thông tin tài khoản như mật khẩu?
Chia sẻ mật khẩu
Nếu ứng dụng LOL hỏi thông tin tài khoản cả username lẫn password như thế này thì các bạn thấy có ổn không?
Cam kết từ ứng dụng LOL: “Chúng tôi cam kết chỉ truy cập…