Chia sẻ kiến thức lập trình

Single sign-on

Một lần cho tất cả!

Chắc hẳn anh em chúng ta ở đây ai cũng đang sử dụng dịch vụ của #google nhỉ? Và anh em đều có thể thấy rằng chúng ta rất khi phải sử dụng đến username password để đăng nhập, chúng ta chỉ cần đăng nhập vào mail và sau đó có thể sử dụng tất cả các dịch vụ từ google play, google driver, và rất nhiều dịch vụ khác nữa, đó chính là tiện ích của việc sử dụng Single sign-on (SSO).

Lợi ích của SSO

Đúng như tên gọi của nó, SSO chỉ yêu cầu chúng ta đăng nhập một lần và từ đó chúng ta có thể sử dụng tất cả các dịch vụ mà không cần login lại, điều này tạo ra một trải nghiệm xuyên suốt cho người dùng và đồng thời giúp họ tránh bị lộ các thông username, password giúp họ tránh được các nguy cơ bị hacker tấn công và lấy đi mọi thứ của họ, vì thông thường ngay cả những lập trình viên như chúng ta cũng chỉ có một vài cái mật khẩu mà thôi.

Các thành phần tạo nên SSO

SSO về bản chất là việc cấp và duy trì #token cho các dịch nằm trong hệ sinh thái dịch vụ của một doanh nghiệp. Token này thường được tuân theo một tiêu chuẩn nào đó ví dụ OAuth 2.0 (#OAuth20), #Jwt hay mình vẫn dùng là #SHA256 token.

Một hệ thống SSO cơ bản bao gồm:

  1. Cơ sở dữ liệu chứa thông tin username password của người dùng: Cơ sở dữ liệu này có thể xây dựng bằng #MySQL #MongoDB, #Oracle hay vẫn còn rất nhiều các doanh nghiệp đang sử dụng #LDAP
  2. Memory #caching: Là nơi chứa token của người dùng, token này có thể map với userId hoặc username. Token này cũng nên có thời gian hết hạn để tránh việc người dùng bị tấn công và kẻ tấn công sẽ có được quyền truy cập vĩnh viễn.
  3. Các #webserver: Kiểm tra thông tin username, token, xử lý yêu cầu cấp phát token
  4. Load balancer: Hệ thống sẽ chỉ cung cấp một #url duy nhất để tất cả các dịch vụ gọi đến

Tổng kết

SSO về cơ bản là rất tiện lợi, nhưng có rất nhiều vấn đề liên quan đến bảo mật thông tin và dữ liệu người dùng. Đã không biết bao nhiêu bê bối lộ thông tin khách hàng liên quan đến những lỗ hổng của SSO, vậy làm thế nào để khắc phục được những nhược điểm này?

Bài viết hôm nay nhằm mục đích giới thiệu SSO đến mọi người, những bài viết chi tiết hơn về luồng nghiệp vụ, và demo xin phép mọi người trong các bài viết khác nhé, 🙂

Tham khảo

  1. Wiki
  2. renovodata.com
  3. isdecisions.com
Share: